ARM体系架构下的linux启动之一,从bootloader到linux内核

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM体系架构下的linux启动之一,从bootloader到

linux内核

1. bootloader 的启动bootloader 本身叫做嵌入式系统的引导程序。但是,它支持X86,MIPS,PowerPC,ARM 等多种体系架构。对于操作系统的启动来讲,当机器开始上电时,首先加载bootloader,它用来完成最基本的硬件的初始化,

然后加载Linux 内核。

用于ARM 的bootloader 一般为U-BOOT,用它来完成对linux 内核的加载

设置,一般bootloader 烧写在开发板的Flash 里,包括Nor Flash 或Nand Flash,其中由于NorFlash 支持芯片内执行XIP(eXcute In Place),代码可以直接在FLASH 上执行,而NandFlash 需要把代码拷到RAM 中再去执行。但是

RAM 的处理速度比Flash 的处理速度要快得多,一般仍然把代码放在RAM 中

执行。

一般的bootloader 需要完成以下五种功能:

1)RAM 的初始化:为调用linux 内核做准备。

2)串口的初始化:由于一般的嵌入式系统开发板上没有视频终端,只能用串

口进行开发,串口的初始化非常重要。

3)检测处理器类型:用来预处理加载内核的处理器类型的传递工作。

4)设置Linux 的启动参数:包括加载地址,启动方式(从本地分区或NFS 进

行根文件系统加载),以及Linux 根文件系统

的加载方式。通常用一个标记列表来记录linux 内核启动的各个参数。

5)调用linux 内核镜像:此时ARM 的处理器中的几个特殊的寄存器值:

r0=0,r1=处理器类型,r2=标记列表在RAM 中的位置。

2. linux kernel 的启动分析

相关文档
最新文档