uboot学习——初步了解及编译体验

首先让我们比较一下Windows平台和嵌入式Linux平台下的启动过程。

Windows平台:上电——>BIOS——>引导操作系统——>识别盘符(C盘、D盘等)——>运行应用程序

嵌入式系统:     上电——>bootloader->linux内核——>挂接根文件系统——>运行应用程序

从两者的启动过程,可以发现boot loader 的作用和BIOS类似,即初始化硬件设备、建立内存空间的映射图,将系统的软硬件环境带到一个合适的状态,最终启动内核。

由于boot loader对硬件的依赖性很强,而嵌入式系统的硬件又往往大不相同,因此boot loader通常要针对不同的硬件修改源码才能正常使用。

U-Boot(Universal Boot Loader)正是boot loader中的佼佼者,它是遵循GPL条款的开放源码项目,支持多嵌入式操作系统内核也支持多个处理器系列,功能灵活而强大。


下面就进行uboot 的编译体验。

uboot版本:u-boot-1.1.6

uboot补丁:u-boot-1.1.6_jz2440.patch

开发平台:JZ2440开发板


uboot的编译过程通常分为以下四步:解压缩、打补丁、配置、编译。

使用tar命令将uboot压缩包解压缩。


进入uboot目录,打补丁,因为我们已经进入了uboot目录,所以打补丁时使用了-p1来让命令忽略路径的第一个参数。


接下来对uboot进行配置。


最后执行make指令进行编译,编译的过程会比较长。


至此uboot的编译已经全部完成,下面把uboot烧写到开发板上的NOR flash进行体验。

NOR启动上电之后十秒内按空格进入uboot,这个菜单是韦东山老师添加的,原版uboot1.1.6并没有这个菜单。


按q退出菜单之后,输入help可以看到uboot的全部命令,在终端输入命令即可进行相关的操作。


前面提到了uboot是boot loader的一种,最终目的也是启动内核。为了实现这个目的,uboot要从flash中把内核读到SDRAM上去,然后启动内核。

所以uboot的基本功能有:关看门狗、初始化时钟、初始化SDRAM,读flash等这些硬件相关的操作。这些功能和单片机程序是一样的,uboot也因此可以被称为单片机程序集大成者。

此外为了开发方便,uboot中还会添加写flash、网关、USB、串口等开发功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值