首页 > 学院 > 开发设计 > 正文

Zedboard的启动流程

2019-11-06 08:35:37
字体:
来源:转载
供稿:网友

前言Zedboard开发模式启动流程小结

前言

最近由于项目需要,接触了比较多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的启动流程。


启动流程

典型启动流程

BootROM 器件上电之后,处理器会自动开始执行片内BootROM的代码。BootROM会初始化CPU和一些外设(NAND、NOR、SD等),以便从你所选的设备中将FSBL(First Stage Bootloader)复制到OCM(On Chip Memory),并将控制权交给FSBL。FSBL Xilinx提供了一套FSBL的代码,用户也可以根据需要自行修改。FSBL会将system.bit写入PL(配置FPGA),加载SSBL(Second Stage Boot Loader)或者裸跑程序(直接在ARM核上运行的无操作系统的程序)并执行。SSBL SSBL用来引导操作系统加载到内存中,对于运行在Zynq平台的linux系统而言,U-Boot就是SSBL。U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导,完成Linux内核启动之前所必需的硬件初始化,例如串口、USB设备等。并设置好启动参数,然后将Linux内核、设备树镜像从SD卡加载到内存中。之后将控制权交给Linux内核。 u-boot源码可以从 https://github.com/Xilinx/u-boot-xlnx下载OS Zynq上运行的Linux系统的源码可以从 https://github.com/Xilinx/linux-xlnx 下载application 你想要在这个软硬件系统上执行的应用。

小结

流程小结

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卡加载到内存中。之后将控制权交给内核。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表