这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » LS1028AQorIQLS系列的编译环境FlexBuild使用

共1条 1/1 1 跳转至

LS1028AQorIQLS系列的编译环境FlexBuild使用

助工
2021-03-22 15:44:22     打赏

FlexBuild使用请不要跳过这段话:
开发环境是开发人员在开发过程当中,所需的软硬件平台。开发环境并不是一个固定的样式,在这里,我们详细讲解一个嵌入式Linux开发环境搭建的方法。您已经对嵌入式开发非常了解的话,可以按照自己的需求来搭建环境。如果和本手册环境不一样而产生报错,您可以从国内一些大Linux论坛和网站搜索相关的信息来解决。本册介绍的环境经过飞凌的测试,如果对嵌入式开发不是非常熟悉的朋友,希望您按照飞凌提供的方法来搭建环境。
一、 版本说明及硬件平台操作系统:Ubuntu18.04 64位版
交叉工具链:aarch64-linux-gnu-gcc
SDK版本:LSDK-20.04-V5.4.3
硬件平台:OK1028A-C开发板 ( 基于NXP Layerscape  LS1028A CPU  )
https://www.forlinx.com/product/127.html

二、  编译环境搭建1、编译环境说明flexbuild是NXP官方提供的QorIQ LS系列的编译环境,飞凌在NXP官方版本的flexbuild的基础上针对OK1028A-C平台进行了定制修改,更适合用户快速开发。flexbuild中提供了整个系统编译需要的所有源码,比如linux内核、uboot、firmware、app程序以及一个完整的文件系统。对于文件系统,用户可直接使用,当然您也可以选择从零编译一个文件系统,但是相比飞凌提供的文件系统会缺少一部分配置,不建议您这样做。
Flexbuild默认只支持ubuntu18,当然它也支持docker,由于大多数用户对docker并不熟悉,因此强烈建议您使用飞凌提供的ubuntu18虚拟机进行编译开发。注意:虚拟机用户名为forlinx,密码为forlinx。
LS1028系列 OK1028A-C开发板软件镜像编译整体分为两部分,第一部分为启动第一阶段相关内容,主要包含了rcw、u-boot、网络相关固件、安全相关固件,整体被编译为一个16M的firmware镜像。第二部分是ubuntu文件系统。
2、编译环境搭建2.1、下载flexbuild包并解压 路径:OK1028-C(Linux)用户资料\Linux\源码\OK1028-linux-fs.tar.bz2
注意:编译过程中请全程使用root用户操作

root@ubuntu:~$ sudo -s (此时要求密码,密码为1)
将OK1028-linux-fs.tar.bz2放到虚拟机/home/forlinx/work目录
root@ubuntu:~$ mdkir -p /home/forlinx/work
root@ubuntu:~$ tar xvf OK1028-linux-fs.tar.bz2 -C /home/forlinx/work
root@ubuntu:~$ cd /home/forlinx/work/OK1028-linux-fs/flexbuild
2.2、主要目录/文件简介

packages
源码目录,含有linux firmware apps ramdisk的源码
build
编译目录,用于编译过程产生的临时文件,编译结果位于build/images目录
configs
编译配置,flexbuild适用于多个平台,针对不同平台的配置信息
tools
编译工具,flex-builder flex-installer等
setup.env
用于配置编译环境变量

2.3、设置环境变量root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ source setup.env
注意:整个flexbuild环境以该操作为基础,如果您重启了虚拟机或者Shell终端都需要重新执行该操作。
三、 全部编译第一次进行编译时,建议您使用全部编译命令进行编译,好处是操作简单,只需要一条命令就可以编译出所有需要的文件。
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -m ls1028ardb -r ubuntu:main
生成的文件位于build/images目录:

四、  打包烧写镜像root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ ./sdfuseIMG.sh

将在OK1028-linux-fs目录生成images.tar.bz2,后续可以直接解压到烧写U盘中。
五、  单独编译FirmwareLs系列的芯片在启动时需要加载一些固件,例如rcw(复位控制字),uboot等,在开发过程中如果您对上述文件进行了修改,就需要重新编译并将这些文件制打包成一个firmware镜像文件,烧写到启动设备中,编译firmware的命令为:
清除之前编译的文件:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-firmware
编译Firmware:
EMMC启动:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \
-m ls1028ardb -b emmc
TF卡启动:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \
-m ls1028ardb -b sd
XSPI启动:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \
-m ls1028ardb -b xspi
OK1028支持EMMC、TF卡、XSPI启动,需要将特定的Firmware烧写到对应的介质中。

六、  单独编译内核及模块 LS1028A平台默认的配置文件为:packages/linux/linux/arch/arm64/configs/ok1028_defconfig
清除之前编译文件:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-linux
编译内核:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux -a arm64 -m ls1028ardb

将编译好的内核、设备树文件更新到build/images目录:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkboot -m ls1028ardb
注意:单独编译内核及模块时,务必执行mkboot操作,以便后续打包烧写镜像。

配置内核(如果使用默认配置可略过)
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux:custom -m ls1028ardb -a arm64

生成的配置文件为:build/linux/linux/arm64/LS/output/.config
可以将改动过后的文件覆盖:packages/linux/linux/arch/arm64/configs/ok1028_defconfig
七、  单独编译app程序packages/apps包含了飞凌LS1028A平台相关的上层应用层工具例如OpenSSL如果您对这部分的源码有所改动,需要使用以下命令单独编译:
编译命令如下:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c apps -m ls1028ardb
注意:为了加快编译速度,默认飞凌已经将默认编译好的二进制程序集成到文件系统基础包中,默认编译文件系统时不再编译此类app程序,如果您对packages/apps/目录的代码有修改,可修改configs/build_lsdk.cfg开启对应软件的编译选项,例如CONFIG_APP_DPDK=y。

更新app到文件系统中:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder
-i merge-component -a arm64 -m ls1028ardb

重新生成ubuntu镜像:root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder
-i packRFs -r ubuntu:main -m ls1028ardb


此外,飞凌提供的命令行和Qt测试程序位于packages/rfs/ls1028_ubuntu_main_overlay/forlinx/apps目录,该目录的测试程序将在编译文件系统的过程中自动构建,您可以使用如下方式进行构建:
以qt can测试程序为例:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ mount -o bind /dev build/rfs/rootfs_lsdk2004_ubuntu_main_arm64/dev
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ chroot build/rfs/rootfs_lsdk2004_ubuntu_main_arm64 /bin/bash
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ cd /forlinx/apps/forlinx-qt/can/
root@ubuntu:/forlinx/apps/forlinx-qt/can# qmake

root@ubuntu:/forlinx/apps/forlinx-qt/can# make

root@ubuntu:/forlinx/apps/forlinx-qt/can# make install

退出编译环境:
root@ubuntu:/forlinx/apps/forlinx-qt/can# exit
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ umount build/rfs/rootfs_lsdk2004_ubuntu_main_arm64/dev



原文链接:https://www.forlinx.com/article_view_572.html





关键词: 飞凌嵌入式    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]