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作为我们的移植版本。

参考链接:https://www.jb51.net/article/111185.htm

原文地址:https://www.cnblogs.com/w54255787/p/10324747.html

时间: 2024-10-11 21:06:55

uboot——详解各目录下的文件作用的相关文章

tcl/tk实例详解——修改目录下所有文件(使用一个字符串代替另外一个)

#假设目录下全部都是普通文件,如果目录下还有子目录请#参考文章"读取文件夹下所有文件返回路径",#http://blog.csdn.net/dulixin/archive/2008/02/29/2133840.aspx##此脚本的方法主要应用于处理大批量中小文件##主要使用命令:open.string map.read###mydir:需要修改的文件所在目录#str1:被替换的字符串#str2:替换的字符串 set mydir "C:/test"set str1 &

perl readdir函数详解 获取目录下文件

perl readdir函数详解 2013年12月30日  Perl基础  共 763字 字号 小 中 大  暂无评论  阅读 4,384 次 readdir函数从一个用 opendir 打开的目录句柄读取目录记录也就是文件名.用法如下: readdir DIRHANDLE 在标量环境中,readdir函数返回下一个目录记录,否则,它返回undef.在列表环境中,它返回在该目录中所有剩下的记录,如果剩下没有记录了,那么这个返回可能是一个空列表.比如: opendir(THISDIR, ".&qu

批量解压目录下的文件

#!/bin/bash cd lamp ls *.tar.bz2 > ls.list for TAR in `cat ls.list` do tar -jxf $TAR done

linux移植u-boot(一)——U-Boot详解+自定义命令实战

linux移植u-boot(一)--U-Boot详解+自定义命令实战 2015-02-07 一.Bootloader ????简单地说:Bootloader主要功能就是 在系统上电时开始执行,初始化硬件和设备,准备好软件环境,最后调用操作系统. ????具体的包含:关闭你看门狗WATCHDOG,改变系统时钟,初始化存储控制器 ,将操作系统内核代码复制到内存中去运行. ????为了开发方便,可以增加网络功能,从PC上通过串口或者网络下载文件,烧写文件,将flash上的内核代码解压后运行等. Boo

《HTML 5网页开发实例详解》目录

第一篇  从宏观上认识HTML 5 讲述了HTML 5引发的Web革命.HTML 5的整体特性.HTML 5相关概念和框架和开发环境搭建. 第1章 HTML 5引发的Web革命 1.1  你是不是真的了解HTML 5 1.1.1  通过W3C认识HTML 5的发展史 1.1.2  HTML 5.HTML4.XHTML的区别 1.1.3  什么人应该学HTML 5 1.1.4  一个图告诉你如何学习HTML 5 1.2  浏览器之争 1.2.1  说说这些常见的浏览器 1.2.2  浏览器的兼容烦

iOS: 沙盒的详解和目录的获取

沙盒的详解: •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录: –Bundle       //该目录下的文件是用来存储应用程序包的,包中含有应用程序和素材资源 –Documents //该目录下的文件通常用来持久性存储数据并备份,例如归档文件 –Library/Caches //该目录下的文件通常用来持久性存储数据,没有对数据进行备份 –Library/Preference //该目录下的文件用来持久性存储系统的设备信息,并对

NFS和mount常用参数详解 本文目录

NFS和mount常用参数详解 本文目录 NFS权限参数配置 mount挂载参数 原始驱动程序的挂载选项. 新驱动程序的挂载选项. 怎样改变已经挂载的NTFS卷的权限? 怎样自动挂载一个NTFS卷? NFS权限参数配置 ro 只读访问 rw 读写访问 sync 所有数据在请求时写入共享 async NFS在写入数据前可以相应请求 secure NFS通过1024以下的安全TCP/IP端口发送 insecure NFS通过1024以上的端口发送 wdelay 如果多个用户要写入NFS目录,则归组写

Linux中通过setfacl实现目录下创建文件

在Linux 系统中,可以通过setfacl 来实现目录下创建文件或子目录,并继承父目录的权限. 下面以 root 用普通用户 user1 .在目录/mnt下 [[email protected] mnt]# setfacl -m u:user1:rwx share        //为目录添加ower = user1 ,并赋予rwx 的权根. [[email protected]redhat-7 mnt]# setfacl -d -m  u:user1:rwx share    //为目录添加

MVC之前的那点事儿系列(3):HttpRuntime详解分析(下)(转载)

MVC之前的那点事儿系列(3):HttpRuntime详解分析(下) 文章内容 话说,经过各种各样复杂的我们不知道的内部处理,非托管代码正式开始调用ISPAIRuntime的ProcessRequest方法了(ISPAIRuntime继承了IISPAIRuntime接口,该接口可以和COM进行交互,并且暴露了ProcessRequest接口方法).至于为什么要调用这个方法,大叔也不太清楚,找不到微软相关的资料哦.但大叔确定该方法就是我们进入HttpRuntime的正式大门,接着看吧. publi