基于ARM920T和嵌入式linux的bootloader设计

基于ARM920T和嵌入式linux的bootloader设计

ID:39474161

大小:94.50 KB

页数:5页

时间:2019-07-04

基于ARM920T和嵌入式linux的bootloader设计_第1页
基于ARM920T和嵌入式linux的bootloader设计_第2页
基于ARM920T和嵌入式linux的bootloader设计_第3页
基于ARM920T和嵌入式linux的bootloader设计_第4页
基于ARM920T和嵌入式linux的bootloader设计_第5页
资源描述:

《基于ARM920T和嵌入式linux的bootloader设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于ARM920T和嵌入式linux的bootloader设计摘要:以ARM920T和嵌入式linux为平台,并根据方便移植和通用性的要求,按依赖于cpu与否和执行效率的要求分两部分设计出嵌入式引导程序(bootloader),第一部分用汇编编写,第二部分用C语言编写。在中断处理、硬件初始化以及地址映射和最终引导linux内核等一系列关键技术上做了详细的设计并给出了一般性的方案,该设计思路对其它不同的处理器和应用系统也有很好的借鉴价值。关键词:ARM MMUBootLoader嵌入式系统Abstract Ba

2、sedoneARM920Tandembeddedlinuxsystem,accordingtotheconveniencefortransplant,versatility,reliesoncpuornotandexecutiveefficiencydesignedbootloaderastwoparts.Part1iswritenbyassemblylanguage,parttwoisdesginedbyclanguage.Inessentialtechnologysuchasthebooloadersta

3、rt,theinterruptprocessing,thehardwareinitializationaswellastheaddressmappingandbootlinuxkernelandsoongivendetaileddesignandgeneralplan.thisdesignmentalityhadtheverygoodmodelvaluetootherdifferentprocessorsandapplicationsystem.Keywords:ARMMMUBootloaderembedde

4、dsystem                            1.引言在嵌入式开发中其中不可避免的一环就是bootloader的设计[1],它统筹软硬件资源,使得资源最优配置,嵌入式系统对功耗,性能,以及成本要求很苛刻,它要求在达到用户要求的前提下把成本和资源利用降为最低,Booloader不是驱动开发的一部分,但一个好的booloader可以决定该产品在市场上的成败[2]。采用Samsung公司的ARM920T[3]处理器与Linux2.4.18嵌入式操作系统,根据处理速度和效率的不同采用分阶段实现

5、的方法,在具体实现时不拘泥于该处理器和操作系统版本,使之更有普遍性和通用性。2.bootloader概述引导加载程序bootloader是系统加电后运行的第一段代码[4],功能类似pc机的BIOS,在ARM中一般都是位于地址0x00000000,这段代码可以实现初始化硬件设备,建立内存空间映射图,从而将系统的软硬件带到一个合适的状态,以便最终为调用操作系统内核和用户应用程序准备好正确的环境。Bootloader的启动可以单阶段也可以多阶段,为了方便移植和增加系统的执行效率一般分为两个阶段stage1用汇编编写

6、和stage2用C语言编写,stage1主要进行与CPU与存储设备相关的工作进行必要的初始化工作,是一些依赖于体系结构的代码,例如初始化CPU运行的时钟频率,初始化Flash和内存的数据宽度、读/写访问周期和刷新周期,初始化中断系统,初始化系统中各种片内片外设备和I/O口,初始化系统各种运行模式下的寄存器和堆栈。stage2是用C语言实现一般的流程以及对板级驱动的支持,包括初始化要用到用到的内核映像和文件系统映像,并将PC指针指向操作系统内核的入口处,为操作系统的运行作好准备。这样设计代码具有很好的移植性和可

7、读性,对于相同的CPU只需修改stage2,对于不同的CPU只需修改stage1。3.stage1设计3.1.建立二级中断向量表每当有中断或者异常发生时,ARM处理器便强制把PC指针指向向量表中对应中断类型的地址值。为了加快中断响应,在Flash的0x0地址存放能跳转到0x33ffff00地址处中断向量的跳转指令,即在RAM中建立一个二级中断向量表,起始地址为0x33ffff00,除复位外,其它异常入口地址由Flash跳转得到,部分实现代码如下#define_ISR_STARTADDRESS  (SDRAM_

8、END-0x100)  //0x33ffff00    definepISR_RESET(*(unsigned*)(_ISR_STARTADDRESS+0x0))//x33ffff00#definepISR_UNDEF   (*(unsigned*)(_ISR_STARTADDRESS+0x4))//x33ffff04如表1所示:3.2拷贝Stage2至RAM习惯上把stage2拷贝到RAM地址的最

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。