Petalinux快速入门向导 (4) 第三章.PetaLinux开发基本流程
source /opt/xilinx/p201/settings.sh
如果已经在bashrc里面添加了这行,则可以省略
2. 创建project
创建工程有几种方式
1)基于cpu模板创建基本的框架,然后在后续用petalinux-config导入vivado导出的xsa(hdf)文件
petalinux-create -t project --template <CPU-TYPE> -n <PROJECT-NAME>
其中,
- <CPU-TYPE>为CPU类型,具体值可为:zynqMP (for UltraScale+ MPSoC)、zynq (for Zynq)、microblaze (for MicroBlaze)
- <PROJECT-NAME>为工程名称
例如:
petalinux-create -t project --template zynqMP -n test1
2) 基于官方提供的bsp包
petalinux-create -t project -s test.bsp
petalinux-config --get-hw-description=<PATH-TO-HDF/XSA-DIRECTORY>
其中,<PATH-TO-HDF/XSA-DIRECTORY>为Vivado硬件描述文件所在目录路径;老版本的硬件描述文件的后缀名为hdf,新版本的后缀名为xsa,其他是相同的。
注意:这里是指xsa文件所在的目录,不是文件名
假设test1.xsa在当前目录,则
cd test1
petalinux-config --get-hw-description=../
4.设置缓存目录
在project-spec/meta-user/conf/petalinuxbsp.conf文件中
gedit project-spec/meta-user/conf/petalinuxbsp.conf
增加以下几行
DL_DIR = "/opt/xilinx/p201/downloads"
SSTATE_DIR = "/opt/xilinx/p201/sstate/aarch64"
RM_WORK_EXCLUDE += "linux-xlnx"
RM_WORK_EXCLUDE += "u-boot-xlnx"
5. 配置u-boot
petalinux-config -c u-boot
(源码会自动下载到components/plnx_workspace/sources/u-boot-xlnx)
根据需求进行修改,然后按ESC保存退出
6. 配置kernel
petalinux-config -c kernel
(源码会自动下载到components/plnx_workspace/sources/linux-xlnx)
根据需求进行修改,然后按ESC保存退出
7. 配置rootfs
petalinux-config -c rootfs
根据需求进行修改,然后按ESC保存退出
8. 编译PetaLinux
petalinux-buid
(可以用time petalinux-build,这样执行完会显示编译总共花了多少时间)
最后生成的二进制文件位于images/linux目录下
-rw-r--r-- 1 av av 16493056 Nov 10 10:02 Image
-rw-r--r-- 1 av av 51120 Nov 10 08:57 bl31.bin
-rw-r--r-- 1 av av 154752 Nov 10 08:57 bl31.elf
-rw-r--r-- 1 av av 2007 Nov 10 08:44 boot.scr
-rw-r--r-- 1 av av 106810856 Nov 10 10:02 image.ub
-rw-r--r-- 1 av av 132716 Nov 10 08:46 pmufw.elf
drwxr-xr-x 2 av av 4096 Nov 10 08:44 pxelinux.cfg/
-rw-r--r-- 1 av av 267110400 Nov 10 10:02 rootfs.cpio
-rw-r--r-- 1 av av 98912037 Nov 10 10:02 rootfs.cpio.gz
-rw-r--r-- 1 av av 98912101 Nov 10 10:02 rootfs.cpio.gz.u-boot
-rw-r--r-- 1 av av 126353408 Nov 10 10:02 rootfs.jffs2
-rw-r--r-- 1 av av 35517 Nov 10 10:02 rootfs.manifest
-rw-r--r-- 1 av av 99264053 Nov 10 10:02 rootfs.tar.gz
-rw-r--r-- 1 av av 7797808 Nov 10 08:38 system.bit
-rw-r--r-- 1 av av 46238 Nov 10 10:01 system.dtb
-rw-r--r-- 1 av av 911294 Nov 10 10:01 u-boot.bin
-rw-r--r-- 1 av av 977408 Nov 10 10:01 u-boot.elf
-rw-r--r-- 1 av av 287638080 Nov 10 10:02 vmlinux
-rw-r--r-- 1 av av 67419 Nov 10 08:44 zynqmp-qemu-arm.dtb
-rw-r--r-- 1 av av 76919 Nov 10 08:44 zynqmp-qemu-multiarch-arm.dtb
-rw-r--r-- 1 av av 10215 Nov 10 08:44 zynqmp-qemu-multiarch-pmu.dtb
-rw-r--r-- 1 av av 123672 Nov 10 08:47 zynqmp_fsbl.elf
cd images/linux
9.1 不带bit
petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --force
9.2 包含bit
petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit --force
cd images/linux;petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit --force;cp image.ub /tftpboot/;cd ../..
10. 其他常用命令
清理目录,删除tmp和sstate cache
petalinux-build -x distclean
清理目录,删除tmp、<PROJECT>/images/, <PROJECT>/build/、<PROJECT>/components/plnx_workspace
petalinux-build -x mrproper
编译sdk
petalinux-build --sdk
把工程目录打包成bsp
petalinux-package --bsp -p xilinx-zcu106-2020.2 --output leo-xilinx-zcu106-2020.2.bsp