0
点赞
收藏
分享

微信扫一扫

ZYNQ - 嵌入式Linux开发 -09- Uboot介绍


写在前面

本文主要对U-Boot介绍进行介绍,并讲述了U-Boot和FSBL之间的关系。

U-Boot介绍

U-Boot的作用

U-boot全称是Universal Boot Loader,是一个通用的启动、引导程序。他的主要作用是启动引导Linux内核或者其他内核。支持多种操作系统,如NetBSD,Vxworks,QNX,RTEMS,ARTOS,Lynxos,android;同时支持多种硬件平台处理器,如arc,m68k,microblaze,mips,nds32,nios2。

它在完成启动内核之前,他的镜像文件通常存储在开发板的SD卡或者QSPI的这些外部存储设备中,在使用时一定要将内核镜像文件拷贝到DDR内存当中,所以U-boot需要将内核镜像文件从SD卡或者外存中读取出来,并且拷贝到DDR中,所以在U-Boot程序中包含了SD卡或者QSPI等设备的驱动程序。同时还需要DDR的驱动程序,因为在拷贝到DDR之前将DDR进行初始化。

U-Boot的本质

U-Boot的本质是一个开源的裸机程序,这个裸机程序程序比较复杂,这个跟他的功能有关系,支持功能比较多。

U-Boot的功能

包含了SD卡或者QSPI等设备的驱动程序,还包含其他的总线协议的驱动程序,除此之外还包含文件系统和网络相关的协议等部分。

U-Boot的分类

主要分为以下几类,一类是U-Boot官方提供的U-Boot源码,一类是Soc厂商提供的U-Boot源码,还有开发板厂商进行移植的Soc厂商提供的U-Boot源码。

U-Boot和FSBL之间的关系

U-Boot的作用主要是用于启动Linux内核,FSBL是开发板在开机上电之后运行的第一段代码,作用就是去启动u-boot (在嵌入式1inux系统,ZYNQ平台)

如果想启动开发板进行逻辑程序应用开发,我们要先制作一个启动文件Boot.BIN这个启动文件一般包括fsbl +用户裸机程序+ bit。

那么在静态情况下,BOOT . BIN是存放在QSPI或者SD卡里边的系统启动之后,FSBL代码会第一一个运行,它的作用是去引导、启动用户裸机程序。首先要将用户裸机程序从BOOT.BIN这个组合文件将读取出来并且存放到DDR内存,再起启动用户的裸机程序。

fsbl代码需要能够满足以下几个条件:

  1. fsbl代码有SD卡或者QSPI设备的驱动程序。
  2. fsbl代码要能够初始化DDR芯片。

在嵌入式Linux系统当中,对于zynq平台来说,BOOT. BIN结构如下:
BOOT.BIN = fsbl + u-boot + bitstream


举报

相关推荐

0 条评论