RIoTBoard开发板系列笔记(十三)—— yocto SDK安装与使用
创始人
2024-03-16 10:28:09

yocto是一个很强大的嵌入式image 构建工具,借助yocto可以轻松的构建出一个开发板镜像。如果我们想借助yocto开发一些应用层的程序,有以下两种方法可供选择:
(1)按照yocto的构建规则添加自己的程序和编译脚步,通常稍微繁琐一些。
(2)使用yocto提供的SDK来交叉编译自己的程序。
yocto提供的SDK是一个独立的开发环境,不再依赖yocto,SDK包含的内容:
(1)Cross-Development Toolchain:工具链包含编译器、调试器等各种工具。
(2)Libraries, Headers, and Symbols::与目标image 匹配的Libraries, Headers, and Symbols。
(3)Environment Setup Script::一旦运行 *.sh 文件,就会通过定义变量来建立交叉开发环境,完成SDK使用的准备工作。
yocto 提供了extensible 和 standard 两种SDK,二者的区别如下:
在这里插入图片描述
extensible SDK功能更为强大,可以基于extensible SDK直接构建系统image,对应的size也更大。单纯应用层的程序开发,选择standard SDK即可,交叉编译好后copy 应用程序到开放板运行即可,所以本文主要记录standard SDK的构建和使用方法。

1 SDK构建与安装

yocto的下载方法不再赘述,配置和编译SDK命令如下:

DISTRO=fsl-imx-x11 MACHINE=imx6dl-riotboard source  fsl-setup-release.sh -b build-x11
bitbake -c populate_sdk fsl-image-multimedia

编译好的SDK 位于/tmp/deploy/sdk目录,该目录下会生成以下文件:

zhy@zhy-ThinkPad-E480:~/code/rIoTboard/yocoto/imx-4.14/build-x11/tmp/deploy/sdk$ ls -l
total 475016
-rw-r--r-- 2 zhy zhy      6302 11月 27 22:20 fsl-imx-x11-glibc-x86_64-fsl-image-multimedia-cortexa9hf-neon-toolchain-4.14-sumo.host.manifest
-rwxr-xr-x 2 zhy zhy 464634174 11月 27 22:27 fsl-imx-x11-glibc-x86_64-fsl-image-multimedia-cortexa9hf-neon-toolchain-4.14-sumo.sh
-rw-r--r-- 2 zhy zhy     63419 11月 27 22:19 fsl-imx-x11-glibc-x86_64-fsl-image-multimedia-cortexa9hf-neon-toolchain-4.14-sumo.target.manifest
-rw-r--r-- 2 zhy zhy    153760 11月 27 22:19 fsl-imx-x11-glibc-x86_64-fsl-image-multimedia-cortexa9hf-neon-toolchain-4.14-sumo.testdata.json
-rw-r--r-- 2 zhy zhy      4507 11月 27 20:29 x86_64-buildtools-nativesdk-standalone-4.14-sumo.host.manifest
-rwxr-xr-x 2 zhy zhy  21386212 11月 27 20:30 x86_64-buildtools-nativesdk-standalone-4.14-sumo.sh
-rw-r--r-- 2 zhy zhy         0 11月 27 20:28 x86_64-buildtools-nativesdk-standalone-4.14-sumo.target.manifest
-rw-r--r-- 2 zhy zhy    121607 11月 27 20:28 x86_64-buildtools-nativesdk-standalone-4.14-sumo.testdata.json

执行fsl-imx-x11-glibc-x86_64-fsl-image-multimedia-cortexa9hf-neon-toolchain-4.14-sumo.sh脚本就可以将SDK安装到PC:

./fsl-imx-x11-glibc-x86_64-fsl-image-multimedia-cortexa9hf-neon-toolchain-4.14-sumo.sh

默认会将SDK安装在/opt/目录:

zhy@zhy-ThinkPad-E480:~/code/rIoTboard/yocoto/imx-4.14/build-x11/tmp/deploy/sdk$ ./fsl-imx-x11-glibc-x86_64-fsl-image-multimedia-cortexa9hf-neon-toolchain-4.14-sumo.sh
NXP i.MX Release Distro SDK installer version 4.14-sumo
=======================================================
Enter target directory for SDK (default: /opt/fsl-imx-x11/4.14-sumo): 
You are about to install the SDK to "/opt/fsl-imx-x11/4.14-sumo". Proceed[Y/n]? y
[sudo] password for zhy: 
Extracting SDK..............................................................................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.$ . /opt/fsl-imx-x11/4.14-sumo/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

2 SDK 使用

根据上面的安装log,使用的时候执行以下命令即可:

. /opt/fsl-imx-x11/4.14-sumo/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

接下来使用SDK编译一个简单的程序,首先创建test.cpp,里面添加内容:

#include int main()
{std::cout << "Hello World" << std::endl;return 0;
}

编译的时候直接可以使用CXX这个环境变量:

$CXX test.cpp

编译后会产出a.out程序,可以看出编译出的程序是ARM架构的:

file a.out 
a.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=c939a8eb3d8b83d9b61aa95bd9a70b976d32feec, with debug_info, not stripped

将a.out 复制到RIoTBoard开发板上运行:
在这里插入图片描述

3 参考文章

1 https://www.rpsys.net/yocto-docs/sdk-manual/sdk-intro.html
2 https://zhuanlan.zhihu.com/p/570051717

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...