ZYNQ开发系列——把PS和PL程序烧写到FLASH中

编程知识 更新时间:2023-05-02 07:42:41

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

ZYNQ开发系列——把PS和PL程序烧写到FLASH中

  • 生成 fsbl.elf
  • 生成 BOOT.bin
  • 下载 BOOT.bin 文件到开发板 Flash


这一篇我们将双串口打印和MIO,EMIO,AXI GPIO点灯的两个功能合并,并且少些到FLASH中

生成 fsbl.elf

FSBL 即 First Stage Boot Loader,当开发板上电后,Boot 流程开始启动,ARM 处理器首先执行芯 片内部的 ROM code,而 ROM code 负责载入 FSBL。FSBL 完成以下任务,
○ 使用 bit 流文件配置 PL 的逻辑功能。
○ 配置 PS 的 MIO 接口。
○ 初始化时钟,PLL。
首先建立 FSBL 应用,SDK 菜单栏 File > New > Application Project,配置工程名为 fsbl,硬件平台选择 目前正在使用的硬件平台,点击 Next,选择Zynq FSBL模板



我们注意到在fsbl工程中,main函数一开始就调用了ps7_init()函数,这个函数在前面的博文中讲过就是用来初始化时钟、DDR、MIO等。这里我们也不太深究里面的内容了,我们先把步骤学会了再说

为了得到更多调试信息,打开文件 fsbl_debug.h,加入如下宏定义语句,


保存,系统会自动编译生成 fsbl.elf 文件。

生成 BOOT.bin

把 fsbl.elf,FPGA 比特流文件 ad936x_ctl.bit,和 SDK 软件 hello.elf打包成一个 BOOT.bin。
选择菜单栏 Xilinx > Create Boot Image,

首先,选择 Output BIF 文件的存储路径,这里选择当前工程目录,然后点击 Add 添加文件, (注意文件的添加次序:首先 fsbl,然后 FPGA bit stream,最后 SDK software


首先添加 fsbl.elf 文件。分区类型选为 bootloader,点击 OK

再添加 FPGA 比特流文件,分区类型选为 datafile,点击 OK

最后添加 SDK 软件编译文件,分区类型选为 datafile,点击 OK,

添加完成后,如下图点击 Create Image

下载 BOOT.bin 文件到开发板 Flash

SDK 菜单栏选择 Xilinx > Program Flash

开发板下电,再上电,将从 QSPI-Flash 启动,串口打印 log 如下。


这些打印就是添加了#define FSBL_DEBUG_INFO语句的结果

这里有一个问题要注意一下。在fsbl工程中的打印是在改波特率函数之前就有的,执行的顺序也是fsbl.elf执行完成之后才会执行hello.elf。因此fsbl中的打印的波特率还是115200,而hello.elf中的打印是按照修改后的921600打印的。这点注意。

最终我们验证了两个串口都在打印,而且6个LED灯都在按照所设计的规律在闪,证明烧写成功

不过,一般情况下,我们烧写程序的时候,不会每次都要打开SDK工具这么麻烦,我们直接使用一个批处理文件就可以了。批处理文件后面补充

批处理指令补充:
保存在一个.bat文件中即可,有了批处理文件,多数量升级就更方便了

set cmdpath=d:\Xilinx\SDK\2018.2\bin\
set program_flash=%cmdpath%program_flash

%program_flash% -f E:\LINUX\share\project\luoji\BOOT.bin -offset 0 -flash_type qspi_single -fsbl E:\LINUX\share\project\luoji\fsbl.elf -cable type xilinx_tcf url TCP:127.0.0.1:3121


@pause

更多推荐

ZYNQ开发系列——把PS和PL程序烧写到FLASH中

本文发布于:2023-04-26 08:31:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/7e7d891d238fb79321e44919cf0bdb1d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:写到   程序   系列   ZYNQ   PS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 104945文章数
  • 26313阅读数
  • 0评论数