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

简介: 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

目录
相关文章
|
1月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
83 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
存储 Linux 开发工具
如何进行Linux内核开发【ChatGPT】
如何进行Linux内核开发【ChatGPT】
|
3月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
44 6
|
3月前
|
消息中间件 算法 Unix
Linux设备驱动开发详解1
Linux设备驱动开发详解
50 5
|
3月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
|
3月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
113 3
|
2月前
|
Linux
用QEMU模拟运行uboot从SD卡启动Linux
用QEMU模拟运行uboot从SD卡启动Linux
|
3月前
|
传感器 人工智能 网络协议
:嵌入式 Linux 及其用途
【8月更文挑战第24天】
170 0
|
4月前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
**嵌入式Linux学习误区摘要** 1. **过度聚焦桌面Linux** - 许多学习者误将大量时间用于精通桌面Linux系统(如RedHat、Fedora、Ubuntu),认为这是嵌入式Linux开发的基石。 - 实际上,桌面Linux仅作为开发工具和环境,目标不应是成为Linux服务器专家,而应专注于嵌入式开发工具和流程。 2. **盲目阅读Linux内核源码** - 初学者在不了解Linux基本知识时试图直接研读内核源码,这往往导致困惑和挫败感。 - 在具备一定嵌入式Linux开发经验后再有针对性地阅读源码,才能有效提升技能。
|
消息中间件 缓存 Unix
[面试必备]嵌入式Linux内核开发必须了解的三十道题
[面试必备]嵌入式Linux内核开发必须了解的三十道题