1.创建vivado工程,建立硬件环境,最终导出hdf文件
既可以在windows系统下的vivado上编写硬件工程并导出hdf文件,也可以在linux系统下的vivado中编写硬件工程并导出hdf文件。(对于windows系统下导出的hdf文件还需要传递到linux系统下的文件夹中。)
2.以hdf硬件文件为基础创建,配置,编译,打包petalinux工程,导出linux系统所需镜像文件。
具体步骤:
(0)设置环境变量
设置环境变量使得我们可以直接使用petalinux的这些指令
(1)创建
//-t 创建工程类型,这里选择peoject
//—-template 创建模版选择,这里选择zynq
//-n创建工程名
(2)配置
需要先进行总配置,再分别进行u-boot,内核,以及根文件系统的配置,由于选择了zynq模板,参数基本不用变,所以直接保存退出即可。(注意接下来的所有指令都要在第一步创立的工程文件中执行)
a.配置总工程
b.配置u-boot
编译过程, 这里有一个报错:
解决办法:
①根据报错提示,进入错误报告的文本中查看错误原因:
根据提示,找到编译记录:
② 找到其中的错误提示,根据提示我们知道,是这个pl.dtsi的脚本文件中的第57行的32-33列在编 译的时候出现了错误,我们进入该脚本文件。
③修改错误脚本
打开文件后,点击右下角的图标,显示行标
定位到第57行的代码:
分析可知,可能实hdf文件中的频率出现了小数点部分,在自动生成的脚本当中该处也写成了小数形式,但是该处的值应该是一个整数类型,因此要删掉小数部分。
④删除完毕后保存退出,重新配置,发现不再报错,并且可以进入配置界面,表明错误被消除了。
c.配置kernel内核
d.配置rootfs根文件系统
(3)编译
理论上可以分别对这些文件进行编译,但是最快的方法还是直接编译整个工程即可
注意:这里依旧出现了在配置工程中出现的错误,按照刚才的解决方法修改对应的脚本文件后再重新编译即可。
报错显示:
修改后显示:
(4)打包
我们需要将编译生成的boot文件,fsbl文件,bitsream文件,以及u-boot文件做一个封装,变成BOOT.BIN文件,从而将其刷入sd卡当中。
①这些文件所在位置:
②文件封装:
3.将生成的文件刷入SD卡,启动开发板
对SD卡的操作为三步,首先要建立一个fat32分区(方便zynq读取),其次,对该分区做格式化,最后将BOOT.BIN与image.ub两个文件拷贝到SD的该分区当中(sd卡理论上要8g以上)。
①建立fat32分区
首先插入sd卡,并在linux系统下进行识别,在右下角可以进行sd卡的linux系统识别:
a.查看sd卡路径:
b.先解除挂载
c.利用fdisk命令对sd卡进行分区设置
(注意这里操作的是sd卡,而不知针对sd卡的一个分区,故不加分区名)
d.设置步骤如下(具体原理不再赘述,可以查看帮助了解各指令含义)
d.删除所有分区
e.建立分区,并设置为fat32形式
f.保存退出
②格式化sd卡分区
(注意:格式化的是sd的该分区,所以应该加上后面的分区名p1)
③拷贝linux文件系统到sd卡创建的分区
同步,解除挂载,然后就可以拔出sd卡,插入zynq中开机
4.调试:
利用串口做调试,来验证是否linux系统是否正常使用
因为在配置的时候都是默认配置,所以这里的用户名和密码都是root,输入用户名和密码之后能够正常进入系统,表明zynq的linux系统开启成功。
补充说明:
想要更好了解petalinux相关指令,可以输入指令:petalinux --help,其中常见的petalinux指令有:
petalinux-boot //启用开发板
petalinux-create //创建
petalinux-config //配置
petaliux-build //编译
petalinux-package //打包
petalinux-util