前言Zedboard开发模式启动流程小结
最近由于项目需要,接触了比较多Zedboard,也查阅了许多相关资料,准备记录下来。欢迎大家一起提问讨论。
1.纯PL:同一般传统的Xilinx FPGA开发流程一致。 2.纯PS:同传统的ARM开发一样。 3.PS + PL(裸跑):在ARM核上裸跑程序(包括ARM对于FPGA的访问)。 4.PS + PL(操作系统):配置操作系统,在操作系统上运行程序。为此需要BOOT.BIN、设备树文件(*.dtb)、操作系统内核镜像(image)以及文件系统 其中,嵌入式系统软硬件协同设计往往使用第4种方式。下面以第4种模式为例,介绍Zedboard的启动流程。
1.阶段0:在器件上电运行后,处理器会自动执行片内BootROM中的代码,BootROM中的代码是固化的,不可修改。BootROM初始化片上NAND、NOR、SD等基本外设控制器,同时将负责阶段1启动的(FSBL)加载到OCM,然后运行FSBL。 2.阶段1:该阶段运行FSBL代码。可以直接使用xilinx的SDK软件自动生成(也可根据需要进行修改) 主要工作: 1) 完成PS端的初始化(这一部分应该包括对DDR外设控制器的初始化) 2) 对PL进行配置(system.bit) 3) 加载阶段2的代码(SSBL)到内存空间(DDR上),并运行SSBL代码 3. 阶段2:该阶段运行的是SSBL(u-boot.elf),完成Linux内核启动之前所必需的硬件初始化,例如串口、USB设备等。并设置好启动参数,然后将Linux内核、设备树镜像从SD卡加载到内存中。之后将控制权交给内核。
新闻热点
疑难解答