文章目录
前言
本篇文章主要讲解ZYNQ的启动流程和具体启动文件之间的关系
一、启动流程
对于ZYNQ平台、对于嵌入式Linux系统
Linux内核由U-Boot引导、启动
U-Boot由FSBL引导、启动
FSBL由ZYNQ片内BootROM引导、启动
二、U-Boot
1.U-Boot的本质
U-Boot本质上是一个开源的裸机程序,这个裸机程序比较复杂,这个跟他的功能有关系
支持功能的比较多!
2.U-Boot的作用
U-Boot全称Universal Boot Loader(通用启动、引导程序)。
U-Boot的主要作用或者说终极目标就是去启动、引导Linux内核或者其他内核。
三、FSBL
1.FSBL是什么?
FSBL是开发板在开机上电之后运行的第一段代码
固话QSPI实验中,我们要先制作一个启动文件BOOT.BIN
这个启动文件一般包括fsbl + 用户裸机程序 + bit
那么在静态情况下,BOOT.BIN是存放在QSPI或者SD卡里边的
系统启动之后,FSBL代码会第一个运行,它的作用是去引导、启动用户裸机程序
2.FSBL和U-Boot的关系
U-Boot的作用就是去启动内核,二FSBL的作用就是去启动u-boot
3.FSBL的启动
在静态情况下,BOOT.BIN启动文件存放在SD卡或QSPI等存储介质中,
然后BOOt.BIN文件中已经包含了FSBL代码,也就是说FSBL代码已经集成
在了BOOT.BIN文件中,所以FSBL代码也是存放在BOOt.BIn文件中。
四、BootROM
1.什么是BootROM?
BootROM它是一个程序/代码,并且已经固话在ZYNQ芯片内部。BootROM代码存放片内RoM当中
因为ZYNQ内部包含256K RAM(SRAM)以及128K RoM(SROM)
所以BootROM代码可以固话在SRoM当中,并且在掉电情况下不会丢失,所以才可以用于保存程序。
2.BootROM的作用
BootROM的主要作用用于引导、启动FSBL代码
它要完成引导、启动FSBL代码的这个任务需要完成以下几件事情:
1.找到BOOT.BIN文件所在的位置
2.就是从BOOT.BIN文件中找到FSBL代码
3.找到之后将其拷贝到内存当中(SRAM,ZYNQ片内RAM 256K字节大小)。
4.之后再去运行FSBL代码