21.在fsbl_handoff.S文件中,目标地址被放入链接寄存器LR中,最后BX LR将执行流跳转至LR中存储的地址处,ARM开始从此处执行DDR中的elf文件。至此FSBL的使命结束,bitstream完成加载,裸机程序或u-boot程序被启动。
第一阶段引导加载程序(FSBL) 用于CPU0的裸机应用程序 用于CPU1的裸机应用程序 FSBL总是在CPU0上运行,是PS上电复位后第一个运行的软件应用程序。FSBL负责编程PL,并将应用程序可执行文件和可链接格式(ELF)文件复制到DDR内存。在将应用程序加载到DDR内存后,FSBL然后开始执行加载的第一个应用程序。 参考设计让CPU0和C...
FSBL将会遍历分区头表来寻找比特流文件、SSBL或裸跑程序所在的位置,然后进行加载DDR或配置。 3、Stage 1 :SSBL(无操作系统时,则不需要) 1、SSBL的引导程序称为BootLoader。Zynq平台中的嵌入式linux就是U-Boot,FSBL帮助我们引导U-Boot到内存中。 2、U-Boot拥有非常强大的功能,提供了许多用户指令、读写内存、flash...
阶段1: 该阶段的启动加载器(FSBL)也可以由用户代码控制。 阶段2:这阶段通常可以是用户的PS端的设计代码,当然也可以是第二阶段的启动加载器(SSBL),这个阶段可以完全由用户控制,是可选的。 ZYNQ外部启动条件: 1、 电源要求:在阶段0 BootROM状态时,PS与PL的电源要求如表所示: 在阶段1 FSBL时,PS与PL都是必须上...
FSBL启动准备工作 在静态情况下,Boot.BIN启动文件存放在SD卡或QSPI等存储介质中,然后Boot.BIN文件中已经包含了FSBL代码,也就是说FSBL代码已经集成在了Boot.BIN文件中,所以FSBL代码也是存放在Boot .BIN文件中。 如果要启动FSBL代码,就需要完成以下几件事情: ...
第一阶段引导加载程序(FSBL)开始于boot之后。启动代码被BOOTROM拷贝到片上存储器中,FSBL的主要任务: (1)使用XPS提供的PS的配置数据进行系统的初始化 (2)使用比特流文件进行PL的配置 (3)向DDR存储器中加载第二阶段引导加载程序或bare-metal引用代码 (4)执行第二阶段引导加载程序或者bare-metal应用 ...
裸机程序比较小,可以将全部程序(fsbl,FPGA的程序,arm程序)一起存储在QSPI Flash,SD卡,EMMC中的任何一个位置。 1.1 固化在QSPI FLASH 使用JTAG和sdk固化。 或者先运行程序,然后通过程序将可执行文件写入到QSPI Flash中,然后将启动方式设置为QSPI Flash启动,下次启动就可以从QSPI Flash启动了。
2.FSBL生成 打开一个vivado工程,进行编译和综合,生产bit文件。然后打开Diagram,并在当前界面显示,如图1所示。 图2 工程设置 点击File-Export-Export Hardware...。勾选Includebitstream,使用默认路径,点击OK,如图2所示。
选择FSBL作为bootloader 选择PL部分.bit文件 选择裸机程序.elf 以上顺序需要注意,如下图 同上,这时只要将BOOT.bin复制到SD卡,板子设置为SD卡启动,在板子重新上电即可。 从QSPI启动 类似只用OCM的情况,将.bin下载然后然后设置板子为QSPI启动,重新上电即可。
FSBL流程图 下图是一个简单的FSBL流程图: 12.5、第二阶段启动流程:Second Stage Bootloader 第二阶段引导加载程序是可选的,并由用户设计。 Zynq-7000 AP SoC BootROM加载程序需要引导映像头,它加载单个分区,通常是FSBL。引导映像的其余部分由FSBL加载和处理。