在以前的项目中,首先通过JTAG下载比特流文件,然后下载elf文件,最后通过单击Run As运行程序。JTAG的方法是通过TCL脚本初始化PS,然后使用JTAG收发信息进行在线调试。但这样一来,只要断电,程序就会丢失,无法保存。
本文详细介绍了如何制作镜像文件。将镜像文件复制到SD卡,设置dip开关,并使系统从SD启动。然后系统会在每次断电后从SD启动,重新启动。这样程序就固化了,断电重启也不会丢失。
1.固化过程
2.固化准备
首先想到的两个文件是PL需要的bit文件和PS需要的elf文件。但是这两个文件是不够的。我们还需要一段代码来放置位文件和elf文件。这个代码是FSBL.elf
因此,创建镜像文件需要三个文件:
1、 fsbl . elf2、 . bit3、 . elf .
最后得出一个方程:BOOT.bin=FSBL.elf这个项目。咬这个项目。精灵。
(我们用SDK生成FSBL.elf文件)
2.ZYNQ从SD卡的启动过程。
和大多数arm启动过程一样,zynq启动过程分为三个阶段,分别称为阶段0、阶段1和阶段2。
阶段0:传统的BootROM过程。zynq芯片的rom中固化了一个不可变的程序,只要zynq一上电就会执行。它将初始化zynq的NAND、NOR、SD等基本外设控制器。在初始化SD卡等易失性存储设备后,其中的程序将被复制到zynq的OCM(片内存储器)。复制到片上ram执行的程序就是我们做的文件——BOOT.bin。
第一阶段:开机。bin被加载到OCM上以开始执行。BOOT.bin由项目FSBL.elf组成。比特,这个项目。精灵。阶段1需要做的是:首先,配置PS部分。PS初始化后,会配置PL部分,最后加载stage 2的代码。
阶段2:该阶段可选,主要完成Linux系统启动过程。
2.生产过程
打开项目,双击打开逻辑示意图。
双击ZYNQ处理系统进行配置:
选择MIO配置选项,然后如下图所示进行配置:
Mio配置存储器接口配置:
1、检查四通道SPI Flsh。
2、检查反馈时钟。
Mio配置I/o外设配置:
1、检查标清0。
2、检查CD并设置MIO 47。
3、检查WP并设置MIO 46。
时钟配置io外设时钟配置:
QSPI时钟设置为125。
单击确定完成配置。
右键单击system.bd,然后单击生成输出产品。
右键单击system.bd并选择创建HDL包装器。这一步的作用是生成顶层HDL文件。
选择leavelet viva do管理器包装和自动更新,然后单击确定。
生成一个位文件。
导出到硬件。
启动SDK
创建新的应用程序项目
填写项目名称FSBL,然后单击下一步。
项目类型为Zynq FSBL。
按Ctrl+B编译项目。
选择其中一个项目(记住是哪个项目,稍后找到Boot.bin),然后右键单击并选择Creat Boot Image。
在新窗口中,有三个文件,分别是FSBL.elf,比特和。小精灵,如图。制作镜像文件需要这三个文件。直接点击创建镜像,创建Boot.bin,可以作为SD卡启动文件和SPI启动文件。
在之前设置的文件夹中找到BOOT.bin文件,并复制到SD卡中,然后将SD卡插入开发板,最后打开电源。开机后系统从SD卡启动,断电后程序不会消失。
最后提醒我放大SD卡的bin文件。文件名必须是BOOT.bin,否则无法识别。
japan quarterly 日本季刊
标签:程序文件SD