概述
本文档基于NXP S32G2 Linux BSP 31.0版本对编译环境进行描述
GCC:GCC 10.2.0 for ARM64 cross-compiler,包含在Yocto 3.2 "Gatesgarth"发布包里。
Host PC: 建议使用性能较好的机器,并硬盘剩余容量在250GB以上、内存容量在8GB及以上。
Host OS: Ubuntu-18.04 LTS (建议使用此版本;也可以部署在虚拟机上)
虚拟机的安装不进行说明
修改/etc/apt/sources.list之后,执行如下命令更新软件列表:
$ sudo apt-get update
更新源是清华还是阿里的自己看着办。
下载NXP S32G2 Linux BSP 31.0
安装一些必要的软件
$ sudo apt install python git curl
安装repo
什么是repo
repo是使用python开发的一个用于多版本管理的工具,可以和git协作,简化git的多版本管理。
安装repo的方法:
①根目录下创建bin文件夹
②配置环境变量PATH=~/bin:$PATH
③下载repo脚本git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
④将下载的git-repo文件夹中的repo文件复制到bin下,并且修改权限chmod a+x ~/bin/repo
⑤修改repo文件中的谷歌源为清华源,即将REPO_URL = 'https://gerrit.googlesource.com/git-repo'
配置git环境
下载S32G yocto工程
yocto简介
Yocto ,是一个开源社区。它通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (32 & 64 bit)硬件体系架构。 [1]
Yocto Project™是一个开源的协作软件,提供模板、工具和方法帮你创建定制的 Linux 系统和嵌入式产品,而无需关心硬件体系。适合嵌入式Linux开发人员使用。极大地简化你的开发过程,因为你不用再从头裁剪一个完整的Linux发布版本,后者通常包括许多你并不需要的软件。
Yocto项目通过Poky来构建一个系统,并提供了一个开放源码的开发环境,针对目标为ARM,MIPS,PowerPC和x86架构,而平台包括x86-64和模拟器。
你可以使用Yocto项目的组件来设计,开发,构建,调试,仿真和对使用了Linux, X windows系统, 基于移动设备的GNOME应用框架和Qt框架的完整的软件堆栈进行测试.
Yocto兼容OpenEmbedded项目,你可以简单可靠地进行编译和开发.完全支持通过QEMU模拟器的广泛的硬件和设备的仿真.
Yocto项目可以为多种设备生成映像.
通过Yocto项目开发出来的映像可以在一个QEMU模拟器中进行引导,开发环境可以作为一个开发嵌入式软件的良好的测试平台.
操作流程
编译NXP S32G2 Linux BSP 31.0 Yocto工程
$ ./sources/meta-alb/scripts/host-prepare.sh
$ source nxp-setup-alb.sh -m <machine>
- 针对S32G274A,<machine>支持如下两个:
s32g274aevb,对应S32G274A EVB板;
s32g274ardb2,对应S32G274A RDB2板;
注意:-m 后面的选项根据自己的SOC板子来选,该bsp支持的板子和soc如下:
• Machines: s32g275sim, s32v234bbmini, s32v234evb28899, s32v234evb, s32v234pcie, s32v234tmdp,
s32v344sim, s32r45xsim, s32v234evbubuntu, s32v234sbc
- 针对S32G274A,< Images >支持如下两个:fsl-image-base,fsl-image-auto
bitbake编译完成后,会生成depoly相关文件。可以depoly到对应板卡上,并启动。
Targets specific to NXP:
fsl-image-mfgtool-initramfs
fsl-image-auto
fsl-image-base
fsl-image-base-fit
fsl-image-bluebox
fsl-image-blueboxbootflash
fsl-image-blueboxdt
fsl-image-blueboxls2sdfactory
fsl-image-fit
fsl-image-flash
fsl-image-itbflash
fsl-image-nfs-initramfs
fsl-image-sim
fsl-image-ubuntu-base
fsl-image-ubuntu
fsl-image-ubuntu-ros
fsl-image-vsdk
bitbake的作用
BitBake是一个类似于GNU的make的构建工具,主要是为了管理嵌入式Linxu交叉编译的各个版本和包。
BitBake是一个通用任务执行引擎,用来执行shell和python形式的task,运行效率高支持并行,尤其能处理复杂的有内部task依赖关系的情况。
BitBake的另一个功能,是处理各种metadata,用来帮助任务的执行。
Bitbake本身就源自包管理系统,Gentoo Linux的Portage。
Bitbake是OpenEmbedded项目的基础组件( http://www.openembedded.org/ ),就是为了构建和维护许多的嵌入式Linux版本,项目源码地址:https://cgit.openembedded.org/bitbake/
Bitbake还被应用在Yocto项目中,相关文档介绍: http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html
开始时Bitbake属于OpenEmbedded项目的一部分,后来作为了一个独立维护和发布的工具。现在Bitbake由OpenEmbedded和Yocto项目共同维护。
BitBake操作对象是专属的recipes(食谱)文件,也就是后缀为bb的文件。
bb文件定义了当前包如何构建。
bb文件里面包含了构建package需要的源码地址,source URL (http, https, ftp, cvs, svn, git, local file system)。
还包含了包之间的依赖关系,和编译及安装选项。
bb文件里还用一些标准变量存储了和包构建相关的metadata。
Bitbake根据bb文件进行构建的过程中,会根据依赖关系,来执行本地或交叉编译过程,然后生成安装到本地或目标设备的包。
还可以生成完整的root file system的镜像文件image和kernel。
注意如果是交叉编译,要先配置好适合目标平台的交叉编译工具链。
最后
以上就是疯狂绿草为你收集整理的S32G274A Linux BSP编译环境简述下载NXP S32G2 Linux BSP 31.0的全部内容,希望文章能够帮你解决S32G274A Linux BSP编译环境简述下载NXP S32G2 Linux BSP 31.0所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复