浅谈u-boot

什么是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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值