- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统4arm编程模式
西安电子科技大学计算机学院 Thumb状态下的寄存器 Thumb状态下的寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为: 8个通用寄存器R0~R7; 程序计数器(PC); 堆栈指针(SP); 链接寄存器(LR); 有条件访问程序状态寄存器( CPSR)。 * Thumb状态下寄存器组织 两种状态下的寄存器映射 * R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R0 堆栈指针 (R13) 连接寄存器 (R14) 程序计数器 (R15) 低寄存器 高寄存器 CPSR模式位设置表 * M[4:0] 模式 可见的Thumb状态寄存器 可见的ARM状态寄存器 10000 用户 R0~R7,SP,LR,PC,CPSR R0~R14,PC, CPSR 10001 快中断 R0~R7,SP_fiq,LR_fiq,PC,CPSR, SPSR_fiq R0~R7,R8_fiq~R14_fiq,PC, CPSR, SPSR_fiq 10010 中断 R0~R7,SP_irq,LR_irq,PC,CPSR, SPSR_fiq R0~R12,R13_irq,R14_irq,PC, CPSR, SPSR_irq 10011 管理 R0~R7,SP_svc,LR_svc,PC,CPSR, SPSR_svc R0~R12,R13_svc,R14_svc, PC,CPSR, SPSR_svc 10111 中止 R0~R7,SP_abt,LR_abt,PC,CPSR, SPSR_abt R0~R12,R13_abt,R14_abt,PC, CPSR, SPSR_abt 11011 未定义 R0~R7,SP_und,LR_und,PC,CPSR, SPSR_und R0~R12,R13_und,R14_und, PC,CPSR,SPSR_und 11111 系统 R0~R7,SP,LR,PC,CPSR R0~R14,PC, CPSR 4.5 ARM体系的异常处理 异常 当正常的程序执行流程发生暂时的停止时,称之为异常 ; 当异常发生时,处理器会把pc设置为一个特定的存储器地址。这一地址放在一个被称为向量表(vector table)的特定地址范围内; 向量表的入口是一些跳转指令,跳转到专门处理某个异常或中断的子程序。 异常类型 复位:当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行 未定义指令:当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真 软件中断:该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用 指令预取中止:若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常 数据中止:若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常 IRQ(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务 FIQ(快速中断请求):当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常 4.5.1 对异常的响应过程 当一个异常出现以后,ARM微处理器会执行以下几步操作 ?1)将下一条指令的地址(PC)存入相应连接寄存器LR_mode,以便程序在处理异常返回时能从正确的位置重新开始执行。 ?2)将CPSR复制到相应的SPSR中。 ?3)根据异常类型,强制设置CPSR的运行模式位。 ?4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 * (湖南师大附中内部资料)高三化学习总复习课件:高三第五次周考试卷分析课0801(课件)(培训课件)班组建设与5S管理培训多媒体计算机系统常用硬件设备教材 * 嵌入式系统 第四讲 ARM微处理器的编程模型 本节内容 ARM微处理器的工作状态 字的长度与ARM指令长度 ARM处理器的运行模式 ARM处理器的寄存器组织 ARM体系的异常处理 ARM存储器接口 ARM存储器层次 RAM存储系统简介 基于ARM核的芯片选择 4.1 ARM微处理器的工作状态 第一种为ARM状态 此时处理器执行32位的字对齐的ARM指令; 第二种为Thumb状态 此时处理器执行16位的、半字对齐的 Thumb 指令; 在程序的执行过中,可随时在两种工作状态之间切换 状态切换方法 ARM和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM微处理器在开始执行代码时,
文档评论(0)