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

u-boot学习(1)

时间:2014-05-24 17:47:46      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:arm linux u-boot

前言;下面将从下面几个方面来介绍u-boot :目录

一:什么是u-boot、u-boot的工作模式和uboot的功能介绍

二;u-boot的编译体验

三;u-boot的基本命令

四;u-boot的代码目录结构

五:u-boot工作流程


一:什么是u-boot、u-boot的工作模式和简单介绍

从软件角度来看,一个嵌入式系统可以分为四个层次:

(1):引导加载程序:包括固件(firmware)中的boot程序(可选)和bootloader两大部分,相当于PC机中的bios和GRUB或LILO。引导程序的主要任务是将内核从硬盘上读到内存中,然后跳转到内核的入口地址处去执行,即启动操作系统,然后u-boot就是bootloader中的一种。

(2):Linux内核:特定于嵌入式平台的定制内核。

(3):文件系统:包括了系统命令和应用程序。

(4):用户应用程序:特定于用户的应用程序。

下面就是固态储存设备的空间分配结构图:

bubuko.com,布布扣

如图所示:lootloader是位于整个flash中的最前端部分,接着是boot的参数配置,然后就是内核部分,节奏就是跟文件系统;

bubuko.com,布布扣


u-boot的工作模式有:启动加载模式和下载模式;

u-boot支持多种嵌入式操作系统,如Linux、NETBSD、Vxwork、QNX、RTEMS、ARTOS、Lynx0S.

支持多个处理器系列,如PowerPC 、ARM、x86、MIPS、Xscale

丰富的设备驱动源代码,如串口。以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等。


U-boot的主要功能:

作为一个较复杂的bootloader来说,其实u-boot的功能已经称得上一个小的微内核。如果配上一些后续的进程(或线程管理),加上一些具体设备的驱动,就能基本实现一个小的嵌入式操作系统。其只要功能如下:

(1):系统引导功能:

         支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统;支持NFS挂载、从FLASH中引导压缩或非压缩系统内核;

(2):基本辅助功能:

        强大的操作系统接口功能,可灵活设置和传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布, 尤其对Linux的支持最为强劲;支持目标板环境参数多种存储方式,如flash .NVflash、EEPROM。

(3):CRC32校验:

      可校验FLASH中的内核、RAMDISK镜像文件是否完好。

(4):设备驱动:

      串口、SDRAM、FLASH、以太网、LCD、NVRAM、键盘、USB、PCMCIA、PCI、RTC等的支持。

(5):上电自检功能:

      SDRAM、FLASH大小自动检测;SDRAM故障检测;CPU型号。

(6):特殊功能:XIP内核引导


二、u-boot的编译体验:

注意本实验平台:交叉工具链是:arm-linux-gcc-3.4.5版本的。u-boot是U-boot-1.1.6版本的。

编译步骤:

(一):解压u-boot大源码包   Tar xjf  u-boot-1.1.6...... 

(二):打补丁;  patch -p1 <  .. /u-boot-1.1.6_jz2440.patch

(三):配置配置成适合自己的单板   make 100ask24x0_config

(四):编译 :  make

编译结果是:生成一个194KB的u-boot.bin,即可移植到flash上去运行。



三;u-boot的基本命令

(1):寻求帮助命令;help(?:help的别名) (h:查询一个命令的缩写)

(2):环境变量相关指令:  printenv  、setenv    注意:环境变量时指操作系统中用来指定操作系统运行环境的一些参数。

(3):文件下载相关命令:  tftp ,串口下载相关命令:loadb

(4):内存操作相关命令:显示内存值md[.b、.w、.i]      修改内存:mm[.b、.w、.i]   

(5):Flash相关命令:flinfo 、 protect  off/on all、erase  、cp。

(6):执行程序相关命令:go  、bootm、run

(7):其他命令;bdinfo、bootcmd

 
四:u-boot的代码目录结构:

1、board中存放于开发板相关的配置文件,每一个开发板都以子文件夹的形式出现。

2、Commom文件夹实现u-boot行下支持的命令,每一个命令对应一个文件。

3、cpu中存放特定cpu架构相关的目录,每一款cpu架构都对应了一个子目录。

4、Doc是文档目录,有u-boot非常完善的文档。

5、Drivers中是u-boot支持的各种设备的驱动程序。

6、Fs是支持的文件系统,其中最常用的是JFFS2文件系统。

7、Include文件夹是u-boot使用的头文件,还有各种硬件平台支持的汇编文件,系统配置文件和文件系统支持的文件。

8、Net是与网络协议相关的代码,bootp协议、TFTP协议、NFS文件系统得实现。

9、Tooles是生成U-boot的工具。 

10、disk硬件接口程序

11、dtt数字温度测量器或者温度传感器的驱动

12、lib_generic通用库函数的实现

13、lib_ppc存放对PowerPC体系结构通用的文件

14、存放对ARM体系结构通用的文件


总结:这些目录中所要存放的文件有着一定规则,基本上可以分为3类:

(1):与处理器体系结构或者开发板硬件直接相关

(2):一些通用的函数或者驱动

(3):U-boot的应用程序、工具或者文档


五:u-boot工作流程

bubuko.com,布布扣

bubuko.com,布布扣



u-boot学习(1),布布扣,bubuko.com

u-boot学习(1)

标签:arm linux u-boot

原文地址:http://blog.csdn.net/chun_1959/article/details/26590821

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