arm处理器启动代码的分析与设计

arm处理器启动代码的分析与设计

ID:15337267

大小:171.24 KB

页数:3页

时间:2018-08-02

arm处理器启动代码的分析与设计_第1页
arm处理器启动代码的分析与设计_第2页
arm处理器启动代码的分析与设计_第3页
资源描述:

《arm处理器启动代码的分析与设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、维普资讯http://www.cqvip.comhttp://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛武汉理工大学甘泉杨健陈永泰ARM处理器启动代码的分析与设计AnalysisandDesignofARMProcessorBootcode摘要:本文以ARM7TDMI作内核的网络控制器$3C4510B为例,简要介绍了ARM体系结构及其特点,重点阐述了ARM处理器启动程序底层的组成结构和各部分的具体内容。关键词:ARM内核;启动代码;中断向量;堆栈随着对高处理能力、网络通信、大部分应用程序都在User模式下运常模式前的CPSR的值

2、。SPSR的作实时多任务,超低功耗这些需求的行,当处理器处于User模式下时,用就是当CPU从异常模式退出时,增长,传统8位处理器已经不能满执行的程序无法访问一些被保护的通过一条简单的汇编指令就能够恢足新产品的要求了,高端嵌入式处系统资源,以利于操作系统控制系复进入异常模式前的CPSR,该值理器已经进入了国内开发人员的视统资源的使用,也不能改变模式,保存在当前异常模式的SPSR中。野,并在国内得到了普遍的重视和否则就会导致一次异常。对于应用。ARM是目前嵌入式领域应用System模式,任何异常都不会导致启动代码的设计最广泛ff:JRISC做处理器结构,以其进入这一模式,而且它使用的寄存

3、启动代码类似于电脯中的低成本、低功耗、高性能等优点占器和User模式下基本相同,主要是BIOS,它从系统上电开始接管据了嵌入式系统应用领域的领先地用于有访问系统资源请求而又避免CPU,依次需要负责初始化CPU在位。本文应用ARM处理器使用额外的寄存器的操作系统任各种模式下的堆栈空间、设定CPU$3C4510B开发设计了四路E1收发务。在特权模式下,它们可以完全的内存映射、对系统的各种控制寄器,参考一些文献X~ARM处理器的访问系统资源,可以自由地改变模存器做初始化、对CPU的外部存储启动代码进行了编写,结合在实际式。在处理特定的异常时,系统进器进行初始化、设定各外围设备的应用时编写调试

4、的经验进行了总入对应的异常模式下。这5种异常基地址、创建正确的中断向量表、为结。模式都有各自额外的寄存器,用于c代码执行创建ZI(零创建)区,然避免在发生异常的时候与用户模式后进入到c代码。在c代码中继续ARM体系结构下的程序发生冲突。如表2所示:对时钟、RS232端口进行初始化,然目前,ARM系列的通用32位在任意一种处理器模式中,都后打开系统中断允许位。最后进入RISC微处理器有ARM7、ARM9、使用同一个寄存器来标识当前处理到应用代码中执行,执行期间响应ARM9E、ARM10等多个产品,器的工作模式,这个寄存器叫做各种不同的中断信号并调用预先设这些处理器可以工作于7种模式CPS

5、R(当前程序状态寄存器),它的置好的中断服务程序处理这些中断。下,如表1所示。0~4位用来表示CPU模式,(如表2整个过程的流程图如图1所示。除User模式以外的其它模式都所示)而且在每·种处理器异常模堆栈初始化叫做特权模式,除User和System以式下,都有一个对应的SPSR(缓存堆栈的初始化要处理的事情是外的其它5种模式叫做异常模式。程序状态寄存器),用来保存进入异为处理器的7个处理器模式分配堆lI。夸文于0o4年7月2o日“

6、I=1.甘采:硕士生;杨健:硕士生豫j泰:副攀长手≯;.要从事无线通信研究。JJ6_⋯.一⋯..一维普资讯http://www.cqvip.comhttp

7、://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛表1ARM处理器工作模式表2各模式下寄存器的分配及CPSR模式位黎鬟魏冀霪§蠹霭一麓。。强嚣。。ll毳

8、§童甏舔塞蘸

9、。0琵蕊0罄处理器模式描述模式可以访问的寄存器栈空间。以下以FIQ模式下的堆栈设置为例说明:0RRr1.r0.#LOCKOUTIFIQ—MODE;把模式放在r1中,LOCKOUT用来屏蔽中断位;MSRcpsr,rl;改变CPU[~4JCPSR寄存器,进入到指定的FIQ模式;MSRspsr,r2;保存前一模式;LDRsp,=FIQ—STACK;把FIQ模式下的堆栈起始

10、值赋给当前的SP,FIQ—STACK是分配给FIQ值得注意的是由于这段启动代码是初始化区。内存的初始化处理的内模式堆栈空间(比如说1K字节)的烧录到ROM中的,而中断向量必须容是:当只读区截止地址等于可读起始地址。位于零地址,所以在存储单元没有可写区基址时,把零初始化区各字按这种方式设置其它模式下的重新映射之前ROM基址的设定应节清零;当只读区截止地址不等于堆栈。该为零地址。可读可写区基址时,如果可读可写DRAM的初始化根据系统配置拷贝(ima

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

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

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