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

    文章

    8653

    浏览量

    361850
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3436

    浏览量

    128229
  • 计算机
    +关注

    关注

    19

    文章

    6652

    浏览量

    84573
  • Uboot
    +关注

    关注

    4

    文章

    123

    浏览量

    27875
收藏 人收藏

    评论

    相关推荐

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

    iTOP-3588开发板Android12源码定制开发uboot开发
    的头像 发表于 06-06 11:46 1010次阅读
    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源码中如何区别am3352bzcz80和am3352bzcz100

    am3352bzcz80和am3352bzcz100主频分别设置720M和1G,为了统一MLO和u-boot.img,需要在uboot源码里做一个判断,根据芯片设置不同的主频,请问在uboot
    发表于 06-04 07:08

    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中start.S源码的指令级的详尽解析

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

    基于ARM9 2410之上uboot移植全过程解析

    @localhost uboot]#cd u-boot-1.1.4 1.3 u-boot 体系结构 1.3.1 u-boot 目录结构 1. 目录树 [uboot@localhost
    发表于 04-05 11:54 4789次阅读

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

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

    一文分析Uboot启动流程

    Uboot是嵌入式系统中最常用的bootloader,这里我们以s3c2410为例分析一下uboot的启动流程。首先通过uboot的链接文件,我们可以看到uboot运行是执行的第一段代
    的头像 发表于 06-20 10:03 4641次阅读

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

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