3.1 固化简介
如果需要板卡中程序掉电不丢失,则需要对程序进行固化,ZYNQ7000 SOC芯片可以从Flash启动,也可以从SD卡启动,上电后,ZYNQ根据模式管脚的设定,选用boot的方式。
核心模式开关:
启动模式:
固化ZYNQ程序需要为这个程序做一个镜像文件,该镜像文件需要PL侧的bit文件,PS侧的elf文件,还需要一段代码将bit文件和elf文件配置,这段代码就是FSBL.elf。
因此制作一个镜像文件需要三个文件:
(1)、.bit
(2)、.elf
(3)、FSBL.elf
3.2 SD卡启动
从SD卡启动需要将镜像文件固化到SD卡,设置拨码开关,使系统从SD模式启动。那么每次断电后,系统都会从SD卡启动。
ZYNQ的启动过程与大多数arm类似,启动过程分为三个阶段,阶段0、阶段1、阶段2:
阶段0:
传统的bootROM过程,ZYNQ的ROM中固化了一段不可修改的程序,只要ZYNQ一上电,这段程序就会执行,它将对ZYNQ的NAND、SD等基本外设控制器进行初始化。把SD卡这类易失的存储器件进行初始化后,就会把其中的程序拷贝到ZYNQ的OCM(On Chip Memory)。这个被拷贝到RAM上执行的程序就是要制作的文件——BOOT.bin。
阶段1:
BOOT.bin加载到OCM上开始执行,BOOT.bin由FSBL.elf+工程.bit+工程.elf构成,阶段1首先配置PS部分,PS部分完成初始化后,再配置PL部分,最后去加载阶段2的代码。
阶段2:
可选,配合Linux启动过程。
制作BOOT.bin文件:
对应于原理图上的:
3.3 QSPI Flash固化
设置拨码开关,将镜像文件烧写进FLASH,使系统从QSPI-FLASH模式启动,那么每次断电后,系统都会从FLASH启动。
制作BOOT.bin文件:
对应于原理图上的:
3.4 生成BOOT.bin文件
新建vivado工程,生成bitstream,导出到SDK,程序设计,然后!创建一个FSBL工程,在要固化的工程上右击,选择create boot Image,然后可以看到
然后选择Create Image,即可在当前工程下bootimage目录下看到boot.bin文件,将该BOOT.bin文件复制到SD卡,断电情况下设置拨码开关,之后上电,开机后系统从SD卡启动,掉电后程序也不会消失。(放到SD卡的bin文件,文件名必须是BOOT.bin,否则不识别)
最新评论