
PetalLinux是Xilinx公司推出的嵌入式Linux开发工具,专门针对Xilinx公司的FPGA SoC芯片和开发板,用户可以在PetaLinux工具的帮助下进行完整的开发流程,包括设计,验证,仿真,下载等。 本文将详细介绍PetaLinux的安装流程,虽然实际上基本就是把Xilinx的UG1144翻译一遍。但对于初学者而言,全是英文的Guidance还是很难受的,可能某一步要输入某个命令,但是却并不知道为什么要这么做,这并不好,也容易打击信心,尤其是UG里还有一点小错误。


$ sudo dpkg-reconfigure bash,这里UG1144写错了。
$ mkdir ~/Desktop/petalinux$ ./petalinux-v2016.3-final-installer.run ~/Desktop/petalinux装好了工具,接下来就是要配置环境了。 环境配置方法很简单,先确保你的shell是bash,具体设置方法看上面的“安装前准备工作”部分。 然后运行 source <path-to-installed-PetaLinux>/settings.sh 比如我的安装路径是 ~/Desktop/petalinux,那对应的命令就是
执行 echo PETALINUX 如果显示出你的安装路径,那就证明环境变量配置好了
有一个问题是,每次打开一个新的终端,环境变量都会被重置,需要重新source,作为一个强迫症,我觉得这种重复而无聊的工作必然是可以自动化的。解决方案如下:
修改 ~/.bashrc 这个文件 在最后加上
$ source ~/Desktop/petalinux/settings.sh.bashrc 是终端的初始化配置脚本,每次打开新的终端是的时候,都会执行这个脚本,把环境变量配置脚本加在里面,就能在打开的时候自动配置了。
BSP(Board Support Package)板级支持包,是一个文件包,当你使用特定的硬件平台时,可以帮你隔离底层硬件,更方便地进行上层开发。Xilinx的开发板基本上都有对应的BSP,在PetaLinux环境下可以很方便地生成一个基础工程,在基础工程的基础上进行配置和增删修改等,会比从零开始做简单得多。这里详细介绍了BSP的安装流程。
刚刚说到,BSP相当于一个种子,可以种出一个工程,现在我们就来动手吧。
$ cd ~/Desktop/petalinux_projectpetalinux-create -t project -s ~/Desktop/BSP/zc706.bsp创建工程肯定不可能只从BSP生成嘛,以下步骤可以创建一个自定义的工程,而不是基于某个特定开发板的工程。
$ cd ~/Desktop/petalinux_projectpetalinux-create -t project --template zynq --name test_projVivado中,可以通过以下方法导出硬件描述文件(.hdf) – File -> Export -> Export to hardware 将导出的 hdf 文件放好,待会需要用到。
我们从Vivado中得到了一个硬件,并导出为 .hdf 文件,现在可以把它导入PetaLinux平台。
$ petalinux-config --get-hw-description=~/Desktop生成一个Linux镜像文件。
$ petalinux-build我们有了一个系统镜像,有了一个FPGA的比特流文件,还有了一个u-boot。我们就可以生成一个引导镜像BOOT.bin
命令如下:
$ petalinux-package --boot --fpga xxx.bit --u-boot
其中 xxx.bit 是你在Vivado里生成出来的比特流文件。
然后你就可以看见当前目录下生成了一个BOOT.bin,就是引导镜像文件。
举个栗子,我们成功地做了一个镜像系统,现在需要将其备份,可以通过以下命令将其打包为“Pre-Built镜像”。 首先 cd 到工程根目录。 petalinux-package --prebuilt --fpga xxx.bit 然后就会出现一个prebuilt目录,里面有完整的系统镜像文件。 我们可以用prebuilt的镜像来引导系统,命令如下: petalinux-boot --qemu --prebuilt 3 其中3代表的是 < BOOT_LEVEL >,可以选择为1/2/3,分别代表不同的引导层次,具体请参考UG1144的24页。
上面说到的用prebuilt的镜像引导是其中一种方法,也可以直接引导。 在工程根目录下执行如下命令:
$ petalinux-boot --qemu --u-boot
--jtag,这样就可以通过J-TAG下载到板子上。$ petalinux-boot --qemu --kernel
--dtb参数的,dtb是device tree blob,设备树文件,用来描述外挂的设备地址,如果缺省此参数,则会自动选用 /images/linux/system.dtb 文件那么,到这里,就安装成功并简单地测试了一下了。 UG1144是个好东西,后面还有打包固件包、封装自己的BSP、添加用户库、添加用户应用、自动登录等等的教程。 刚开始看确实很痛苦啊,看了一整天,跟着做,做完了博客里写的部分,才看了不到一半。而且是全英文,虽然我英语不差,但是看起来还是有些吃力。 ┑( ̄Д  ̄)┍话虽如此,还是推荐看英文的UG,毕竟原汁原味,我水平也有限,有一些可能理解不到位。反正,一起加油吧。。。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194956.html原文链接:https://javaforall.cn