基于AT91RM9200 处理器系统中BootLoader与内核的参数传递.doc
《基于AT91RM9200 处理器系统中BootLoader与内核的参数传递.doc》由会员分享,可在线阅读,更多相关《基于AT91RM9200 处理器系统中BootLoader与内核的参数传递.doc(3页珍藏版)》请在三一文库上搜索。
1、基于AT91RM9200 处理器系统中BootLoader与内核的参数传递在嵌入式系统中,BootLoader是用来初始化硬件,加载内核,传递参数。因为嵌入式系统的硬件环境各不相同,所以嵌入式系统的BootLoader 也各不相同,其中比较通用的是U-Boot,它支持不同的体系结构,如ARM,PowerPC,X86,MIPS 等。本文着重介BootLoader与内核之间参数传递这一基本功能。本文的硬件平台是基于AT91RM9200 处理器系统,软件平台是Linux-2.6.19.2 内核。内核映像文件为zImage。1. 系统硬件平台简介AT91RM9200 处理器,它是由Atmel 公司基于
2、ARM920T 内核的微处理器,带有内存管理单元,CPU 时钟最高可达240MHz,它具有丰富的标准接口,EBI 接口,内部集成了静态存储控制器(SMC),SDRAM 控制器,BurST Flash 控制器。有关处理器的说明请参考AT91RM9200 的数据手册。本系统SDRAM(64MB)地址为:0x20000000, NorFlash(8MB)的地址为:0x100000001。2. BootLoader 设计和实现内核源代码目录树下的documentaTION/arm/booTIng2文档规定了基于ARM 体系结构BootLoader 的基本功能。本系统BootLoader 除了完成这些基
3、本的功能外,还结合自身硬件的特点加入了代码搬运等功能。BootLoader 的流程是:系统上电复位后,首先从NorFlash 开始运行(由处理器BMS 引脚连接决定),因为处理器此时的0 地址就是NorFlash 的首地址(0x10000000),BootLoader就是被烧写在这个位置,AT91RM9200 处理器能够映射的地址范围只有0x000000000x001f ffff。 BootLoader 执行的第一步就是将自身代码从NorFlash 中搬运到处理器内部的RAM 中(0x00200000),然后将0 地址映射到内部RAM,并且跳转到内部RAM 的相应地址处继续执行。进入内部RAM
4、 后才进入真正的硬件初始化阶段,这个阶段初始化的各种控制器都是内核所必须的,包括:PMC, EBI, SMC, SDRAM, USART 等。接着就是创建内核参数链表(Tagged list),创建完链表就是搬运事先烧写在NorFlash 中的内核映像和根文件系统映像到SDRAM,根据内核对BootLoader 的基本要求关闭中断,MMU 和数据Cache,并且配置r0=0, r1=0x0000 00fb 或者0x00000106(根据内核中linux/arch/arm/tools/mach-types2规定的机器编号),r2=0x20000100(BootLoader 传递给内核参数链表的物
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于AT91RM9200 处理器系统中BootLoader与内核的参数传递 基于 AT91RM9200 处理器 系统 BootLoader 内核 参数 传递
链接地址:https://www.31doc.com/p-3409480.html