标签:style io color os ar 使用 sp strong 文件
1.Bootloader作用:
在系统上电时,初始化硬件设备、准备好软件环境、最后调用操作系统内核,将系统内核复制到内存中运行。
2.Bootloader的起始地址:
ARM架构的CPU从地址0x0000000开始取第一条指令,该地址也是Bootloader的起始地址。
3.Bootloader的启动方式:
4.Bootloader的两个启动阶段功能:
(1)第一阶段,主要使用汇编实现,完成一些依赖于CPU体系结构的初始化,并调用第二阶段的代码:
硬件初始化包括:关闭WD、关中断、设置CPU的速度和时钟频率、RAM初始化。但都不是必须
(2)Bootloader第二阶段使用C实现,实现更为复杂的功能:
将内核存放于适当位置后,直接跳到它的入口点即可调用内核。调用内核前,需要满足以下条件:
(1)CPU寄存器设置:
(2)CPU工作模式:
(3)Cache和MMU设置:
5.Bootloader与内核的交互:
Bootloader与内核单向交互,将各类参数按照约定存放于固定位置后,再启动内核,内核启动后从该位置获得参数。
参数具有固定的结构,以标记列表(tagged list)的形式来传递启动参数。标记列表以标记ATAG_CORE开始,以标记ATAG_NONE结束。
标记的数据结构为tag,包含一个tag_header结构和一个联合(union)组成。
6.U-BOOT分析与移植
u-boot(universal boot loader),是遵循GPL条款的开源项目。具有如下特点:
目录 |
特性 |
解释说明 |
Board |
开发板相关 |
对应不同配置的电路板(即使CPU相同),比如smdk2410,sbc410x |
Cpu |
平台相关 |
存放cpu相关的目录文件,如arm920t,arm925t,i386等 |
lib_arm |
|
存放对ARM体系结构通用文件,主要用于实现ARM平台通用的函数 |
Include |
通用 |
头文件和开发板配置文件,所有开发板的配置文件都在include/configs目录下,需要手动的修改配置文件中的宏定义 |
Common |
|
通用的多功能函数实现,多是对下一层驱动程序的封装 |
lib_generic |
|
通用库函数的实现 |
Net |
通用设备驱动 |
存放网络相关程序 |
Fs |
|
存放文件系统相关程序 |
Post |
|
存放上电自检程序 |
Drivers |
|
各类具体设备的驱动程序,基本可以通用 |
Disk |
|
硬盘接口程序 |
Rtc |
|
RTC的驱动程序 |
Dtt |
|
数字温度测量器或者传感器的驱动 |
Example |
示例程序 |
一些独立运行的应用程序的例子,如helloworld |
Tools |
工具 |
存放制作S-Record或者U-Boot格式的镜像等工具,如mkimage |
Doc |
文档 |
开发使用文档 |
标签:style io color os ar 使用 sp strong 文件
原文地址:http://www.cnblogs.com/imstrive/p/4067811.html