码迷,mamicode.com
首页 > 其他好文 > 详细

u-boot学习(一):u-boot概述

时间:2014-06-02 23:57:15      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:u-boot

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

看到不错的文章,不要添加收藏夹,想着以后有时间再看,因为很有可能你以后再也不会看它们了。

想写总结的文章,不要想着等到以后有时间了再总结,因为很有可能你以后更没有时间总结它们了。

——送给自己

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

我们知道对于PC机,使用电脑时我们首先按下开机按键,然后等待电脑的启动,开机完成后,我们会进行各种需要的操作,如qq聊天、写CSDN博客等。其实这个过程是:启动BIOS程序,由BIOS程序引导Windows操作系统,再由操作系统识别C盘D盘等硬盘,最后运行应用程序QQ、CSDN等。对嵌入式系统来说,对应BIOS的是Bootloader程序,由Bootloader程序启动Linux内核,再由内核挂载“根文件系统”,最后运行应用程序。这里所说的u-boot是Bootloader中的一种,除了u-boot外,还有LILO、GRUB、Vivi等等。


上面的分析可以看出嵌入式系统的几个层次,以及各层次的关系。

用户应用程序
文件系统
Linux内核
Bootloader引导加载程序
可以这样理解Bootloader程序的作用:它是一段程序,在系统上电后,首先由它来进行一些硬件初始化,如关闭看门狗、改变系统时钟、初始化存储控制器、将更多代码复制到内存中去,从而准备好软件环境,最后调用操作系统内核,将内核复制到内存中。


内核程序比较大,不可能放在内存中,而是放在Flash中,而Bootloader的主要作用就是引导内核,也就是从Flash中读出内核,然后把它加载到内存中。因此,它至少要有能够读Flash的功能、初始化SDRAM的功能,并能够启动内核。这些基本的功能就构成了所谓的启动加载模式功能。那么内核又是怎么存放到Flash上面去的呢,有可能是芯片出厂时直接烧写到了芯片上的,但更多的可能是开发过程中通过u-boot烧写到芯片上去的。那么u-boot除了有读Flash外,还必须有写Flash的功能,通过什么写呢,所以还可能需要网卡、USB等等为开发方便而支持的功能,这就是所谓的下载模式功能。除此之外,u-boot的功能还包括给内核传递参数等细节性的内容,以后的学习中会详细的总结。


了解了u-boot的作用后,就是使用u-boot了,下面给出u-boot的初步体验:

所用开发板是JZ2440。

解压 tar xjf u-boot-1.1.6.tar.bz2
打补丁 cd u-boot-1.1.6; patch -p1 < ../u-boot-1.1.6_jz2440.patch
配置 make 100ask24x0_config
编译 make
上面的步骤完成后,如果执行结果无误,会生成一个u-boot.bin的二进制文件,它就是可以直接烧入ROM、NOR Flash的文件,把该文件下载到开发板上就可以体验使用u-boot 了。其实,除了u-boot.bin二进制文件外,还有u-boot的ELF格式的可执行文件,u-boot的Motorola S_Record格式的可执行文件。除此之外,还会生成一些工具文件,如tool子目录下面的mkimage文件,将它复制到/usr/local/bin目录下,在编译内核时会使用mkimage来生成u-boot格式的内核映像文件uImage(这一点在后面会提到)。


将u-boot.bin文件下载到开发板上后,启动它,然后就能够使用u-boot内的命令了,如print查看环境变量、hlep查看帮助信息、set设置环境变量等等。


参考:本总结参考自 韦东山的<嵌入式Linux应用开发完全手册> 在此向其表示感谢。

u-boot学习(一):u-boot概述,布布扣,bubuko.com

u-boot学习(一):u-boot概述

标签:u-boot

原文地址:http://blog.csdn.net/to_be_it_1/article/details/27706829

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!