uboot之初体验

uboot基础认识

uboot来源

我们可以从uboot的官网下载uboot源代码,这种方式下载的源代码可能没有针对于当前开发板的移植,也可以从soc厂商提供的地址下载,这种方式一般是针对这个Soc已经移植过的uboot,还可以从开发板供应商处获得uboot,这种方式的uboot移植的更加彻底。

编译和烧录

一般在开发板厂商提供的bsp中可以找到移植好的uboot,拿到之后先进行配置,一般使用make命令执行根目录下的config文件即可。配置编译环境之后,即可直接使用make进行编译。得到最后的uboot.bin文件,将这个文件烧录到开发板的Flash中即可。

uboot源码目录分析

我们以官方提供的uboot为例进行分析,官方的uboot基于soc厂商提供的uboot,并且做了精简,删除了很多不必要的库。

基本文件

.gitignore
git忽略文件列表,在uboot分析时可以直接忽略。
XXX.mk
Makefile文件,会被Makefile调用。
image_split
分割uboot.bin到bl1的脚本文件。
MAKEALL
用于编译uboot的脚本。
Makefile
uboot源代码的主要Makefile文件,负责调用每个子目录的Makefile文件进行管理和编译uboot
mk
用户直接编译uboot的快速执行脚本。
mkconfig
uboot的主要配置脚本
rules.mk
uboot的Makefile使用的编译规则

这些文件中,最主要的是mkconfig和Makefile文件,是我们分析的主要目标。

基本目录

api,api_examples
和硬件无关的功能函数API和示例,供uboot本身使用,uboot移植时基本无关。
board
该目录下的每一个目录都代表一个开发板型号,表示该uboot支持的开发板,其中的文件用于描述该开发板的信息。

后期的uboot中该目录中也增加了厂商的目录,用户专门放置该厂商的开发板信息。
common
与具体硬件无关的,普遍适用的代码。例如控制台实现,CRC检验,uboot命令系统和环境变量。
cpu
Soc相关的目录,用户初始化Soc和控制,例如中断,串口,start.S等。里面的每一个文件夹都是一系列Soc。
doc
文档目录
drivers
从linux源代码中取出来的Linux设备驱动,供开发板上必须要用的设备。uboot一定程度上移植了linux中的驱动供自己使用。linux是个操作系统而uboot是裸机程序,所以移植会有不同。所以说uboot中的驱动是Linux驱动的一部分。
examples
示例代码
fs
从linux中移植的文件系统,用于对Flash进行管理。
include
所有的头文件都会集中在这里,而不是和源文件放在一起,包含路径要在这里寻找。
lib_xxx
架构相关的库文件,lib_generic是通用的库文件,lib_fdt是linux内核3.X后续版本中更改启动传参的机制为设备树机制和硬件信息的描述。
net
网络相关的代码,例如tftp,nfs,ping等命令。
sd_fusing
烧录uboot到sd卡的代码。
tools
工具类的代码,例如mkimg等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值