什么是u-boot
uboot是个bootloader,是个大软件,是个最大的裸机程序,但是uboot没有多任务运行的机制,不能实现任务调度等操作系统应用的功能,虽然有协议栈,有文件系统,但是没有多任务运行的内核
uboot是研究裸机最好的范例,这个是本质区别
uboot包含了非常丰富的功能,而且是源代码全开放
U-boot的特点:
- 代码结构清晰、易于移植(见目录结构)
- 支持多种理
- 体系结构(见arch目录)
- 支持众多开发板(目前官方包中有200多种,见board目录)
- 命令丰富、有监控功能
- 支持网络协议、USB、SD等多种协议和设备
- 支持文件系统
- 更新较活跃,使用者多,有助于解决问题
最初是为powerpc开发的启动程序
内核启动以后,uboot就没什么事了,完成任务靠边站了
除了uboot以外,还有什么别的bootloader吗?

什么是协议栈?
就是网络TCP/IP的协议栈,其中有个文件夹叫做‘NET’,这个里面就是TCP/IP网络协议栈,网络功能,都在里面了
在uboot目录下重点说三个目录
- board
- CPU
- drivers
board里面是讲的和某块板子相关的代码,是板级的代码
CPU 目录里是对应的不同处理器的初始化代码,也就是说uboot能支持非常多的处理器,和非常多的不同的开发板,比如说2440也可以跑uboot,6410, 210, 4412 全可以跑uboot,它是个非常开放的系统,完全开源
drivers目录里面就是一些驱动了,GPIO, I2C, PCI, LCD 等驱动都在里面,驱动很多是通用的,可以直接用,根据不同的板子可以自己修改代码来移植
那么uboot在运行的时候,到底选择哪个呢,怎么选的呢
比如,我们现在用的是迅为的4412开发板,怎么选4412需要的代码呢?
u-boot.lds, 这个文件很重要------编译连接脚本,用来描述输出文件的内存布局,在CPU\A9中,也可以在编译以后,根目录里也会出现!
这个文件中有u-boot先执行什么,在哪个文件里执行,也就是4412的启动过程
u-boot.lds
1 OUTPUT_FORMAT(

最低0.47元/天 解锁文章
2029

被折叠的 条评论
为什么被折叠?



