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

本文深入探讨了U-Boot作为通用启动加载器的作用,介绍了它与FSBL的关系,以及如何配合FSBL加载Linux内核和用户程序。重点讲解了U-Boot的驱动支持、功能分类和与不同平台的兼容性,特别关注了在ZYNQ平台上的BOOT.BIN结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

本文主要对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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA and ICer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值