arm7启动代码设计方法与流程

arm7启动代码设计方法与流程

ID:15443281

大小:184.09 KB

页数:18页

时间:2018-08-03

arm7启动代码设计方法与流程_第1页
arm7启动代码设计方法与流程_第2页
arm7启动代码设计方法与流程_第3页
arm7启动代码设计方法与流程_第4页
arm7启动代码设计方法与流程_第5页
资源描述:

《arm7启动代码设计方法与流程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ARM7启动代码设计方法与流程ThedesignmethodandflowofARM7startup-code姜京梅,郭树旭Jiang,JingmeiGuo,Shuxu[摘要]ARM处理器是业界领先的32位微处理器,具有功耗低、成本低、性能高等特点。本文结合AT91M55800A,介绍了ARM7启动代码的设计方法和流程,并详细解释了地址重映射,从而使读者对ARM7的启动代码有更深入了解。关键词:ARM,微处理器,启动代码,地址重映射中图分类号:TP273﹢.5文献标识码:A文章编号:Abstract:ARMprocessorisanadvance

2、d32bitmpuwithlowpower,highperformanceandcheapprice.ThepaperdescribethestartupcodeanddiagramofAT91M55800Achip(ARM7)anddetailedtheaddressremapsoastomakethereaderknowthestartupcodeforARM7moreKeywords:ARM,Microcontroller,Startup-code,remap1引言随着Internet的普及,我们已经进入了网络时代,进入了后PC时代。不仅用

3、PC机能上网,用各种各样的嵌入式设备都可以上网。网络时代的来临,32位微处理器越来越受到业界用户的青睐。ARM(AdvancedRISCMachines)处理器是目前公认的业界领先的32位嵌入式RISC微处理器。ARM处理器性能高、功耗低、成本低,特有16/32位双指令集。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。ARM具有非常灵活的存储器地址分配特性,在进行ARM开发时,地址重映射就成了启动代码最难掌握的一部分。本文通过AT91M55800A为例,介绍了ARM7的启动代码,并重点说明了地址重映射。2启动代码基

4、于ARM是复杂的片上系统(SoC),这种复杂系统里的多数硬件模块都是可配置的,需要由软件来设置其需要的工作状态。因此在用户的应用程序启动之前,需要有专门的一段启动代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言写的。启动代码就是完成各种初始化工作,并引导进入C程序。启动代码一般随具体的目标系统和开发系统有所区别,但通常包括以下部分:●定义入口点;●设置中断/异常向量●初始化存储系统(包括地址重映射)●初始化堆栈指针寄存器●初始化中断中用到的变量●开中断●必要时改变处理器的模式●必要时改变处理器的状态

5、●初始化C程序用到的存储区●进入C程序下面通过ATMELAT91M55800A为例来说明启动代码。AT91M55800A是基于ARM7TDMI核的RISC微处理器。它具有高密度的16位指令集和极低的功耗。片上集成了片内8KBSRAM、完全可编程的外部总线接口(EBI)、8优先级中断控制器、58个I/O口、3个USART、主/从式SPI接口、可编程看门狗定时器、8通道10位ADC,2通道10位DAC、片内主振荡器和PLL倍频的时钟产生器、片内32KHz的振荡器的实时时钟、还有先进的电源管理控制器等,为各种超低功耗应用提供了高度灵活和高性价比的解决方

6、案。2.1中断向量表ARM中断向量表必须放置在从0地址开始,连续8×4字节的空间内。每当有中断或者异常发生的时候,PC就会跳转到0~20H之间相应的地址去取程序代码执行。AT91M55800A中断向量表如图所示:0x00000000复位中断0x00000004未定义指令中断0x00000008软件中断0x0000000c指令预取异常0x00000010数据异常0x00000014保留0x00000018普通外部中断0x0000001c外部快速中断0x000000200x00000038复位入口0x00300000内部RAM图1中断向量表2.2初始

7、化存储系统ARM具有非常灵活的存储器地址分配特性,就是启动ROM的地址重映射(remap)。系统在上电之后,紧接着就从地址0开始取得第一条指令的代码执行,所以地址0必须在上电的时候就存在可执行的正确代码,也就是地址0的地方应该是ROM区,至少在上电之后的一小段时间内应该是ROM区。对于ARM而言,中断和异常的入口地址是0~20H。但是因为ROM的访问速度相对较慢,每次中断发生后,都要从读取ROM上面的向量表开始,影响了中断速度。因此,ARM处理器提供一种非常灵活的地址重映射方法,把0地址重新指向到RAM中去,即启动地址重映射(remap)。为保证

8、重映射之后提供正确的中断入口地址,在重映射之前就必须把中断和异常向量表拷贝到内部RAM中。其程序实现如下:movr8,#RAM_BASE

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

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

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