修改之后重新生成BSP源码,点system.mss左下角的overview->Re-generate BSP Sources 将ps7_init.c和ps7_init.h copy到helloword/src目录下,也可以创建连接,这里就直接copy了. 修改helloword/src/platform.c --init_platform函数,将ps7_init()函数的comment去掉, --包含头文件#include "ps7_init.h" 12. 编译...
④跳转执行SSBL或者裸跑程序。 关于PS配置:# Ps7_init.c和ps7_init.h,用于初始化CLK,DDR和MIO。 Ps7_init.tcl完成的初始化和ps7_init.c代码完成的初始化是相同的。 由于不是通过JTAG运行,所以没有运行p7_init.tcl,直接在裸机程序开始处调用ps7_init()。 Xilinx为我们写好了一个FSBL程序,没有特殊要求可以...
例如,你可以运行ps7_init.tcl文件,之后加载应用程序后加载应用程序到DDR中,然后进行调试。这种情况下,完全没到DDR中,然后进行调试。这种情况下,完全没有必要进行FSBL。 ps7_init.html,该文件描述了初始化的数据。 镜像文件的格式主要包括启动镜像文件的格式和分区头表文件格式两个方面。 启动镜像文件格式包含: (1)...
从上面图片调试可以看到初始化文件(Initialization files)ps7_init.tcl,其与ps7_init()效果相同;同时在调试配置窗口右下角也可以看到“Summary of operations to be performed”也有调试时的运行过程,也有调用ps7_init等,之后再加载要调试的elf;由于不是通过JTAG运行,所以没有运行这里ps7_init.tcl中,所以直接在裸机...
PSS_RST_CTRL[SOFT_RST]系统软复位,作为整个设计的软复位信号,整个系统复位的最终结果,除重新启动状态寄存器值不同外,其他寄存器与用户按下PS_SRST_BB引脚的结果相同,就像其他系统复位一样,所有的ram都被清除,PL也被重置。 看门狗复位:当看门狗定时器被启用并且定时器过期时,看门狗定时器复位由看门狗定时器内部生成。
调用ps7_init函数,主要是对PS端配置信息进行初始化操作,包括MIO,PLL.CLK and DDR。在vivado软件中可以通过图形化的方式对ZYNQ PS端外设进行相关配置,那么这些配置信息会写入到hdf文件,SDK(或petalinux)会对hdf文件进行解析并生成对应的寄存器配置表,然后FSBL工程中会通过ps7_init函数将寄存器配置表写入到对应的寄存器...
前面用vivado的硬件设计就是为了生成这两个文件,ps7_init.c主要初始化CPU的时钟,引脚复用,ddr和外设等。后面的helloword工程只需要这两个文件,其他的文件都不需要。 10.添加helloword工程 在SDK中->File->New->New Application Project->设置如下,点next->选hello world。
初始化 PS 端配置,这些配置也就是在Vivado工程中对ZYNQ核的配置。包括初始化 DDR,MIO,SLCR 寄存器。主要是执行 ps7_init.c 和 ps7_init.h,ps7_init.tcl 的执行效果跟 ps7_init.c 是一样的。 如果有 PL 端程序,加载 PL 端 bitstream 加载second stage bootloader 或者 bare-metal 应用程序到 DDR 存储...
到Status = ps7_init()结束; ---约107ms 到DDRInitCheck 结束 ---约1ms 到PcapCtrlRegVal = XDcfg_GetControlRegister(DcfgInstPtr); ---约0ms 到HandoffAddress = LoadBootImage(); 结束---约676ms FsblHandoff(HandoffAddress); 进入该函数内部后运行...
即Zynq-7000 编程 flash 需要“指定的 fsbl”。这个 fsbl 用于初始化系统(主要是运行 ps7_init()函数)。 XILINX 官网中 Xilinx Answer 70548 和 Xilinx Answer 70148 提供了 VIVADIO 2017.3 版本 QSPI FLASH 下载方法。 读者需要注意,如果不修改引导用的 fsbl,下载 uboot.bin 到 FLASH会失败, 以下就是下载 FL...