详解uboot各目录下的文件作用

 更新时间:2017年04月14日 11:08:54   作者:yooooooo  
这篇文章主要介绍了详解uboot各目录下的文件作用的相关资料,需要的朋友可以参考下

uboot下载地址:http://ftp.denx.de/pub/u-boot/

1、目录分布

2、目录结构变化:

u-boot-2010.03及以前版本

├── api                存放uboot提供的接口函数
├── board              根据不同开发板定制的代码,代码也不少
├── common             通用的代码,涵盖各个方面,已命令行处理为主
├── cpu                与体系结构相关的代码,uboot的重头戏
├── disk                磁盘分区相关代码
├── doc                文档,一堆README开头的文件
├── drivers            驱动,很丰富,每种类型的设备驱动占用一个子目录
├── examples           示例程序
├── fs                 文件系统,支持嵌入式开发板常见的文件系统
├── include            头文件,已通用的头文件为主
├── lib_【arch】        与体系结构相关的通用库文件
├── nand_spl           NAND存储器相关代码
├── net                网络相关代码,小型的协议栈
├── onenand_ipl
├── post               加电自检程序
└── tools              辅助程序,用于编译和检查uboot目标文件

从u-boot-2010.06版本开始把体系结构相关的内容合并,原先的cpu与lib_arch内容全部纳入arch中,并且其中增加inlcude文件夹;分离出通用库文件lib。u-boot-2010.06及以后版本

├── api                存放uboot提供的接口函数
├── arch               与体系结构相关的代码,uboot的重头戏
├── board              根据不同开发板定制的代码,代码也不少
├── common             通用的代码,涵盖各个方面,已命令行处理为主
├── disk                磁盘分区相关代码
├── doc                文档,一堆README开头的文件
├── drivers            驱动,很丰富,每种类型的设备驱动占用一个子目录
├── examples           示例程序
├── fs                 文件系统,支持嵌入式开发板常见的文件系统
├── include            头文件,已通用的头文件为主
├── lib                通用库文件
├── nand_spl           NAND存储器相关代码
├── net                网络相关代码,小型的协议栈
├── onenand_ipl
├── post               加电自检程序
└── tools              辅助程序,用于编译和检查uboot目标文件

3、移植工作涉及的目录情况

从uboot代码根目录,可以看出其已经非常庞大,功能也很丰富。

移植工作最主要的是看对应的处理器和开发板代码,2010.06版本以后处理器相关的代码集中在arch、board目录。(以前版本主要在cpu和board目录)

先看一下arch目录:

arch
├── arm
├── avr32
├── blackfin
├── i386
├── m68k
├── microblaze
├── mips
├── nios2
├── powerpc
├── sh
└── sparc

如果我们移植的是mips的处理器,所以参考一下arch/mips目录:

arch/mips
├── cpu
├── include
└── lib

arch/mips目录下有三个目录,其他的处理器目录下也是这个结构:

cpu子目录对应一种处理器的不同产品型号或者系列;

include子目录是处理器用到的头文件;

lib目录对应用到处理器公用的代码;

下面看看cpu下的内容,arch/mips/cpu目录下的内容:

arch/mips/cpu
├── asc_serial.c
├── asc_serial.h
├── au1x00_eth.c
├── au1x00_serial.c
├── au1x00_usb_ohci.c
├── au1x00_usb_ohci.h
├── cache.S
├── config.mk
├── cpu.c
├── incaip_clock.c
├── incaip_wdt.S
├── interrupts.c
├── Makefile
└── start.S          整个uboot代码入口点

目前最新版本(2011.6版本开始)中cpu目录中建立mips32目录,把incaip和au1x00也分类放在不同的目录中。

u-boot.lds是ld程序也就是连接器的脚本文件,这个文件描述了如何连接目标文件,ld程序会根据这个文件的指示按照需求把不同的目标文件连接在一起生成供烧写到开发板的程序。

该文件放在board对应的目录中。

4、移植u-boot的版本选择情况

由于u-boot的各版本没有重大变化,各版本移植起来基本相同,也正因为如此,大多数版本均有人移植过,主要是arm体系结构的。

如cortex A8使用 u-boot-1.3.4;cortex M3 上u-boot-1.1.6、u-boot-1.2.0等均有人移植过。

考虑到我们目前的编译器较新,编译旧版本u-boot时会出现错误,警告也很多;新版本的u-boot目录结构也较清晰,因此选用较新版本的u-boot。

最新版本(2011.06)Makefile中没有mips的部分,不知道为什么。(2011.03版本中同样也是)

u-boot-2010.12的Makefile没有问题,编译incaip通过,没有任何警告和错误,因此最终选择u-boot-2010.12作为我们的移植版本。

以上所述是小编给大家介绍的uboot各目录下的文件作用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

相关文章

  • 华为鸿蒙DevEco studio2.0的安装和hello world运行教程

    华为鸿蒙DevEco studio2.0的安装和hello world运行教程

    这篇文章主要介绍了关于华为鸿蒙DevEco studio2.0的安装和运行第一个hello world的文章教程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-09-09
  • 如何在Windows中监视IO性能

    如何在Windows中监视IO性能

    这篇文章主要介绍了如何在Windows中监视IO性能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • windows磁盘I/O的性能评估方法详解

    windows磁盘I/O的性能评估方法详解

    这篇文章主要介绍了windows磁盘I/O的性能评估方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 鸿蒙HarmonyOS剪切板的实现

    鸿蒙HarmonyOS剪切板的实现

    这篇文章主要介绍了鸿蒙HarmonyOS剪切板的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 红帽RedHat 8.0新特性(网络、yum源、Web界面管理等)

    红帽RedHat 8.0新特性(网络、yum源、Web界面管理等)

    这篇文章主要介绍了红帽RedHat 8.0新特性(网络、yum源、Web界面管理等),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • window下关闭占用端口使用方法详解

    window下关闭占用端口使用方法详解

    这篇文章主要介绍了window下关闭占用端口使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • XP系统和Ghost安装版优缺点比较

    XP系统和Ghost安装版优缺点比较

    不少论坛或个人都推出了Ghost版系统,装机超简单,节省时间,在网管和装机商等人群中流传极广,只要用Ghost“恢复”一下,软件、驱动、补丁就全了,这其中最著名的应该就是“番茄花园”了。
    2008-03-03
  • 打造个性_安全的电脑系统图文教程

    打造个性_安全的电脑系统图文教程

    如果你准备重装系统,建议先花点时间看一下这篇文章。小谢重装电脑次数虽然不多,但也算是薄有经验。以下是我的一些个人认识。这些个人认识是建立在遇到问题坚持百度的基础上的,所以,要谢谢这些曾经帮助过我的朋友。
    2008-05-05
  • IE奥秘——添加新菜单项(推荐)

    IE奥秘——添加新菜单项(推荐)

    IE奥秘——添加新菜单项(推荐)...
    2007-04-04
  • 无引导设备No boot device available 常见解决方法

    无引导设备No boot device available 常见解决方法

    一般是启动硬盘有问题,或启动文件损坏,可以先用光盘启动看能否启动,以排除其它硬件问题,即确定是硬盘问题,如果cmos禁止了硬盘启动也可能出现这个问题,可以解决
    2008-01-01

最新评论