Uboot #1 简介与初探

日常使用的电脑中存在启动程序叫BIOS,是跟随CPU一起开发且固化在硬件设备上的,负责进行初始化硬件设备同时启动系统。当然如果需要使用BIOS,系统就应该遵循BIOS的规则去设计,包含中断向量和内核地址等都应该在约定地址上。当然我们的系统也可以不按该规则进行设计,有困难直接加一层,承当这一层任务的就是bootloader。bootloader用来引导启动系统,会在启动系统前进行硬件设备的初始化和相关软件环境的布置,如重定位等,最终启动系统。个人觉得和BIOS作用高度重复,因此在没有BIOS的CPU中,bootloader自然而然地顶替了boot的地位,而存在BIOS的系统,则bootloader将会遵循BIOS的规则,让BIOS来启动自己,最终系统仍然能够自己定义规则,此时大部分硬件设备初始化工作还被BIOS承担了。

说了这么多,bootloader其实就是个启动系统的工具,只是在启动之前做了些初始化让系统能够顺利成功地启动。bootloader是这一类相同功能的工具统称,比较出名的是我们这里使用到的Uboot。

本次uboot选择了1.1.6版本,可以在其官网http://www.denx.de/wiki/U-Boot/找到对应版本的下载链接。同时使用了100ask的JZ2440单板补丁进行试验分析。首先解压源代码文件

tar -jxvf u-boot-1.1.6.tar.bz2

然后使用patch指令打上我们的JZ2440单板补丁

patch -p1 < ../u-boot-1.1.6_jz2440.patch

 这里patch指令可以直接使用man指令查看相关用法,-p选项用来屏蔽掉使用补丁的人和制作补丁的人的文件路径差异,-p后的num制定了屏蔽路径的前num个路径名,这里由于我们进入了uboot目录,因此屏蔽掉第一个即可。

 

然后make相应的单板配置选项进行配置,再make编译。这里可以通过阅读uboot目录下的README得知。

make 100ask24x0_config
make

最终得到输出文件u-boot.bin,烧写到我们的板子上即可使用。

简单过一下内容,后面开始做代码分析。

发布了19 篇原创文章 · 获赞 7 · 访问量 6917

猜你喜欢

转载自blog.csdn.net/G_METHOD/article/details/104851244
今日推荐