让我们回到SDK中fsbl的工程目录,找到Binaries里面对应的elf文件,猛烈双击它,在右边的窗口你就可以看到反汇编的结果: 我们在打开的反汇编结果里面查找cd30,这样很快就可以找到对应的C代码行了: 当然像上面这些正常情况下的调试都很顺利,也许你面对的情况是将BOOT.BIN文件烧入到外部存储器之后,系统上电什么反应都没有,...
在Project Explorer窗口中,选择FSBL项目,点击右键,在弹出菜单中选择Build Project,对项目进行编译,如图6所示。 图2 工程设置 编译完成后,会在Debug文件夹中生成ELF文件,该文件既为FSBL文件。 3.FSBL打印调试信息 为了方便调试,查找问题,需要在启动的过程中,打印一些调试信息。FSBL已经提供了很多调试信息,需要进行设置后...
按照下图操作导入boot镜像文件和fsbl.elf文件,将Flash Type设置为qspi-x4-single 如果严格按照步骤进行,此时板子应该已经进入JTAG调试模式,但是没有的话,将拨码开关调整到JTAG模式(按照商家给的手册或者原理图),重新上电,之后点击Program开始下载(必须在JTAG模式下)。 下载完成后,重新上电,把拨码开关调...
(1)FSBL Fallback 为了从error中恢复,FSBL会进行一次fallback,并加载另一个存储在flash存储器中可启动的镜像文件。FSBL更新multiboot寄存器,并产生一个软件复位,以便bootrom执行并加载一个可执行的现存的镜像文件。 (2)FSBL Multiboot FSBL存在一种机制:提供一个可以multiboot的寄存器,寄存器中列出了flash中多个可以启...
若启动不正常可以尝试调试FSBL: . 若要查看FSBL打印调试信息,则在fsbl_debug.h中定义宏FSBL_DEBUG_INFO(#define FSBL_DEBUG_INFO),当然在调试设置中也要设置STDIO为对应UART(默认波特率为115200)或使用其它UART查看打印信息 . 调试FSBL时注意,当改变板子启动方式后需要重新上电或POR复位后才生效...
新建FSBL工程 新建Hello World工程 原理框图 本文用于点亮PS MIO52和PL L15接的LED灯。 Vivado中添加&配置Zynq UltraScale+ MPSoc IP UART设置(仅用于调试,非必需) MIO、EMIO设置 EMIO=1表示只选用1个EMIO,它的编号是78,通过pinL14去点D2灯。
因为MIO、EMIO涉及到PS、PL的操作,因此需要执行综合和实现,并约束引脚,如下图: 依次执行Generate Bitstream,Export Hardware(需勾选Include bitstream)即可。 执行Launch SDK 打开SDK后的Project Explorer界面如下: 新建FSBL工程 File->New->Application Project,界面如下: ...
打开fsbl代码的fsbl_debug.h文件,增加FSBL_DEBUG_INFO的宏定义方便进行查看fsbl的调试信息。 打开main.c文件,找到main函数,定位到296行附近,在这里可以看到因为缺少ddr的部分,该部分代码将不会正常执行,将会跳转到下面的代码中。 代码以下两行代码执行后FSBL 状态打印输出0XA008,在fsbl.h文件中对应DDR missing 的状...
④用.bit配置PL部分(FSBL通过PCAP控制器配置PL部分) ⑤ 加载SSBL或裸机程序到DDR中 ⑥ 跳转到SSBL或裸机程序中执行 对于FSBL程序通常使用SDK中自带模板,但是不同于BootROM不可改变,FSBL可以手动修改实现一些自定义的内容。而且可以像裸机程序一样调试排错(在fsbl_debug.h中定义宏FSBL_DEBUG_INFO(#define FSBL_DEBU...
BOOT.bin由fsbl.elf top_pl.bit app.elf三个文件组成。 同样的方法加入top_pl.bit 和 app.elf,partition type选择数据文件,请务必按顺序。 点击创建镜像完成产生BOOT.bin 15. 下载BOOT.bin到NAND,按照下图设置: 16. 断电在上电可以看到最后一个行打印输出Hello World说明裸机程序运行成功,LED交替闪烁说明FPGA...