0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

uboot源码结构介绍

麦辣鸡腿堡 来源:CSDN博客 作者:内核新视界 2023-12-07 11:16 次阅读

首先引用wiki上的简介:

u-boot 是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构。

u-boot最先是由德国DENX软件中心团队开发,后续众多有志于开放源码bootloader移植工作的嵌入式开发人员将各个不同系列嵌入式处理器的移植工作不断展开和深入,

以支持了更多的嵌入式操作系统的装载与引导。

选择u-boot的理由:

• 开放源码;

• 支持多种嵌入式操作系统内核的引导,如Linux、NetBSDVxWorks, QNX, RTEMS, ARTOS, LynxOS, android;支持多个处理器系列,如PowerPC、ARM、x86、MIPS;

• 较高的可靠性和稳定性;高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;

• 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;

• 较为丰富的开发调试文档与强大的网络技术支持;

• 基于以上理由本篇文章对现在主流的armv8架构的u-boot启动流程进行详细分析,以便所有人快速学习和理解u-boot的工作流程。

u-boot源码结构

这里只对一些常用的目录进行说明:

• arch:各种架构的启动初始化流程代码,链接脚本等均在此目录对应的架构中存放;

• board:包含了大部分厂商的board初始化代码,基本平台化相关的代码都在对应的board目录中,早期的一些board代码在arch/xxx/xxx-+ mach中,现在基本不会放在arch目录下面了;

• cmd:包含了大量实用的u-boot命令的实现,比如md,cp,cmp,tftp,fastboot,ext4load等命令的实现,我们也可以在此处添加自己实现的命令;

• common:包含了u-boot的核心初始化代码,包括board_f,board_r,spl等一系列代码;

• configs:包含了所有board的配置文件,可直接使用;

• drivers:大量驱动代码的存放处;

• dts:编译生成dtb,内嵌dtb到u-boot的编译规则定义目录;

• env:环境变量功能实现代码;

• fs:文件系统读写功能的实现,里面包含了各类文件系统的实现;

• include:所有公用头文件的存放路径;

• lib:大量通用功能实现,提供给各个模块使用;

• net:网络相关功能的实现;

• scripts:编译,配置文件的脚本文件存放处;

• tools:测试和实用工具的实现,比如mkimage的实现代码在此处;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9021

    浏览量

    366368
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3543

    浏览量

    129071
  • 计算机
    +关注

    关注

    19

    文章

    7331

    浏览量

    87614
  • Uboot
    +关注

    关注

    4

    文章

    125

    浏览量

    28122
收藏 人收藏

    评论

    相关推荐

    iTOP-3588开发板Android12源码定制开发uboot开发

    iTOP-3588开发板Android12源码定制开发uboot开发
    的头像 发表于 06-06 11:46 1438次阅读
    iTOP-3588开发板Android12<b class='flag-5'>源码</b>定制开发<b class='flag-5'>uboot</b>开发

    嵌入式学习-ElfBoard ELF 1板卡- Uboot目录结构介绍

    我们将ELF1开发板资料包\\\\02-Linux 源代码\\\\出厂内核和uboot源码\\\\uboot源码\\\\uboot-imx-
    发表于 01-26 15:24

    I.MX6ULL-ElfBoard ELF1板卡- Uboot目录结构介绍

    我们将ELF1开发板资料包\\\\02-Linux 源代码\\\\出厂内核和uboot源码\\\\uboot源码\\\\uboot-imx-
    发表于 01-26 15:27

    uboot源码怎么查看spiflash分区表

    请问 uboot 源码怎么查看 spiflash 分区表在那个工程文件里面?因为我换了 spiflash
    发表于 06-21 07:27

    uboot源码没有文件该怎么打补丁?

    韦东山的执行打补丁命令部分是打到u-boot-1.1.6/board/100ask24x0/100ask24x0.c文件上,但uboot源码好像没有这个文件,这时怎么打补丁的?
    发表于 08-08 05:45

    嵌入式学习丨4412开发板-uboot源码-汇编-源码分析(一)

    在第一章中,介绍了迅为4412 的 iROM、启动方式、源码组成等;在第二章中,介绍uboot 编译等。通过前面对编译的详细分析,了解到 uboot
    发表于 07-28 10:40

    请问uboot源码什么时候释放?

    版主好,我们买了两块imx8mm, 请问uboot源码什么时候释放,我们想研究一下ATF和TEE。感觉开放的资料教程很少,
    发表于 12-31 07:08

    使用yocto生成的uboot和工具,将uboot源码拷贝出来编译没有uboot.imx文件是为什么?

    使用yocto生成的uboot和工具。将uboot源码拷贝出来编译,没有uboot.imx文件,只有uboot.bin文件。
    发表于 01-07 08:05

    uboot源码分析,思路还算清晰

    uboot源码分析,思路还算清晰
    发表于 10-24 15:25 19次下载
    <b class='flag-5'>uboot</b><b class='flag-5'>源码</b>分析,思路还算清晰

    uboot移植详细解释

    uboot移植详细解释
    发表于 10-26 10:08 29次下载
    <b class='flag-5'>uboot</b>移植详细解释

    Uboot中start.S源码的指令级的详尽解析

    Uboot中start.S源码的指令级的详尽解析
    发表于 10-30 08:47 28次下载
    <b class='flag-5'>Uboot</b>中start.S<b class='flag-5'>源码</b>的指令级的详尽解析

    基于Algorand源码中agreement的模块结构介绍

    本篇主要介绍Algorand源码中关于agreement的模块结构及业务逻辑架构,也是源码中比较难以理解的地方,其它诸如节点、区块、密码、P2P网络的
    发表于 09-05 11:25 874次阅读
    基于Algorand<b class='flag-5'>源码</b>中agreement的模块<b class='flag-5'>结构</b><b class='flag-5'>介绍</b>

    嵌入式Linux开发-uboot常用命令介绍(下篇)

    这篇文章是UBOOT命令介绍的下篇,接着上篇文章介绍剩下的几个命令用法。
    的头像 发表于 08-14 08:55 2088次阅读

    怎么使用uboot引导应用程序?

    uboot默认是支持执行应用程序的,就像引导内核一样,我们也可以自己写一个应用程序,让uboot启动时引导。
    的头像 发表于 02-17 16:01 1451次阅读
    怎么使用<b class='flag-5'>uboot</b>引导应用程序?

    uboot的启动BL1和BL2两个阶段介绍

    之前对这个uboot源码了解有些许遗忘。最近做AVB校验,需要uboot到kernel的这个过程。这里再复习一下。 与大多数BootLoader一样,uboot的启动过程分为BL1和
    的头像 发表于 12-04 17:53 2737次阅读