Zybo板运行Linux系统原理总结

对于ZYBO板上装Linux系统,之前只是按照教程进行了一步一步的设计,最终也达到了比较理想的效果,能够成功运行出图形界面,但是对于其中的原理却不是很懂,之前看过了《嵌入式系统软硬件协同设计实战指南》这本书,但是因为没有具体实践,因此对于书本上的内容也理解地不是特别透彻,甚至看过之后的印象只是停留在有这么一个东西,但是具体的实现确实非常茫然。今天通过之前的实践,再次对其原理进行研究。

首先,我对于ZYNQ系统的启动,以及Linux系统的启动进行详细的学习,并绘制了一张还算清晰的图片。可以看到ZYBO启动的步骤是:

在电源,时钟,复位等硬件电路准备号之后,启动BOOT ROM对于ZYBO板中的基本外设进行启动,从这里就可以判断,我们设置的是SD卡启动,然后根据读出的SD卡启动;

在第二阶段,就读取SD卡中的镜像,在我们的SD卡中,首先读取BOOT.bin对整个系统进行配置,其中BOOT.bin是通过fsbl_zynq.elf,zynq_system_wrapper.bit,Du-boot.elf这三个部分组成烧写的,并有一定的顺序,fsbl_zynq.elf即进入FSBL阶段,对PS进行初始化,zynq_system_wrapper.bit对PL部分进行配置,Du-boot.elf加载SSBL到内存空间;

接着进入SSBL阶段,为接下来进入Linux系统做准备,首先进行Linux内核的初始化,并初始化Linux系统所需要的一些外设,接着,拷贝设备树镜像到内存,uImage为Linux镜像,设备树devicetree.dtb主要完成管理系统的硬件资源,对设备进行驱动,uramdisk.image.gz为文件管理系统。

做好Linux系统启动的准备之后,就可以启动Linux系统了。

Zybo板运行Linux系统原理总结_第1张图片

你可能感兴趣的:(FPGA)