ARM7启动代码分析ppt课件.ppt

ARM7启动代码分析ppt课件.ppt

ID:58893242

大小:1.30 MB

页数:64页

时间:2020-09-30

ARM7启动代码分析ppt课件.ppt_第1页
ARM7启动代码分析ppt课件.ppt_第2页
ARM7启动代码分析ppt课件.ppt_第3页
ARM7启动代码分析ppt课件.ppt_第4页
ARM7启动代码分析ppt课件.ppt_第5页
资源描述:

《ARM7启动代码分析ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ARM启动代码分析周海瑞2007-3-181.引言在使用PC过程中,我们都会接触到BIOS,它在PC系统中起着非常重要的作用。一块主板的性能是否优越,在很大程度上取决于主板上的BIOS管理功能是否先进BIOS(basicinput/outputsystem)实际上是一组被固化到PC系统中的硬件控制程序,主要功能有:加电自检及初始化硬件中断处理程序服务请求下面主要介绍BIOS的加电自检及初始化功能:PC刚接通电源时对硬件加电自检,检查PC硬件是否良好,这包括对CPU、640K的基本内存、>1M的扩展内存、RO

2、M、串口、并口、显卡、键盘等进行测试,一旦发现严重问题,系统将给出提示信息或者鸣笛警告初始化硬件,包括配置寄存器、创建中断向量表等引导操作系统一般,PC的BIOS是通用的,但相当复杂,考虑到嵌入式系统的特点(针对具体应用,不可能通用),出于实现复杂度和成本的考虑,一般不配置BIOS,我们必须自己编写代码完成这些工作,这就是启动代码。启动代码的任务就是:初始化硬件、创建中断向量表等,从而将系统的软硬件环境设定在一个合适的状态,为最终运行用户程序准备好环境。2.ARM处理器模式随着对处理能力、网络通信、超低功耗

3、等需求的增长,传统的8位、16位处理器已经不能满足需求了。ARM是目前嵌入式领域应用最广泛的RSIC处理器,以其低成本、低功耗、高性能等优点占据了嵌入式系统应用领域的领先位置。ARM处理器的工作状态工作状态的切换方法ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM处理器在开始执行代码时,应该处于ARM状态。进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使ARM处理器从ARM状态切换到Thumb状态。进入ARM状态:当操作数寄

4、存器的状态位为0时,执行指令BX可以使ARM处理器从Thumb状态切换到ARM状态此外还有其他一些切换方式。ARM的寄存器R14寄存器也称为子程序连接寄存器LR。常用在如下的情况:R14保存子程序的返回地址,当用BL或者BLX指令调用子程序时,将PC的当前值拷贝给R14,执行完子程序后,又将R14的值拷贝回PC,即可以完成子程序的调用返回。R15寄存器用作程序计数器(PC)。在ARM状态下,位【1-0】为0,位【31-2】用于保存PC,在Thumb状态下,位【0】位0,位【31-1】用于保存PCR16用作当

5、前程序状态寄存器(CPSR),它包括条件标志位,中断禁止位,当前处理器模式标志位,以及其他一些相关的控制和状态位。每一种运行模式下又都有一个专用的物理状态寄存器SPSR,当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时,则由SPSR来恢复CPSR。由于用户模式和系统模式不属于异常模式,所以它们没有SPSR。异常ARM支持的异常类型对异常的处理当异常发生时,ARM处理器会执行如下操作:将正在执行的下一条指令的地址存入相应的链接寄存器,以便程序在处理异常返回时能从正确的位置重新开始执行将CPSR复制

6、到相应的SPSR中根据异常的类型,强制设置CPSR的运行模式位强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处执行相应的异常处理例程在异常处理例程执行完毕之后,ARM处理器将链接寄存器中的值送入PC将SPSR复制回CPSR执行异常发生时应该执行的指令注:当多个异常同时发生时,系统会根据固定的优先级决定异常的处理次序。对应于ARM的异常类型,ARM有如下几种处理器模式:ARM支持上面几种处理器模式,在正常情况下,程序都在用户模式下执行,当异常或者硬件中断发生时,则进入相应的处理器模

7、式。例如:在程序正常执行时,如果发生外部普通中断IRQ,CPU就会进入IRQ处理器模式,这时处理器使用r13_irq和r14_irq寄存器,而不再使用r13和r14寄存器。异常处理程序将用到的寄存器值保存在相应的堆栈中,当异常发生时,将这些值加载到对应的寄存器中。3.ARM启动代码概述启动代码是系统加电后运行的第一段软件代码,这里我们将以s3c44b0x为目标来分析启动代码与启动代码相关的硬件:ROM。系统启动以后,s3c44b0x的地址空间映射如下图所示:从上图可以看出:s3c44b0x的最大寻址空间为3

8、2M×8=256M。和s3c4510b、s3c2410a不同,s3c44b0x不支持地址重映射功能。s3c44b0x自身没有ROM,因此必须外接ROM来存放系统掉电后仍需要保存的代码和数据。s3c44b0x有8个管脚nGCS【7-0】,用于片选,如果ROM芯片的使能管脚nCE和s3c44b0x的管脚nGCS0相连(见下图),就相当于把ROM芯片映射到s3c44b0x的bank0地址空间。从前面的地址映射图可以看出

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

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

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