第2章 嵌入式微处理器2.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 嵌入式微处理器2

ARM7TDMI处理器的高级调试特性使应用程序、操作系统和硬件的开发变得更加容易。 2.14 调试接口简介 调试主机: 一台运行调试软件的计算机。 协议转换器: 将调试主机发出的高级命令转换到处理器JTAG接口的低级命令。 调试目标: 具体的硬件目标板。 术语 缩语、术语 英文全称 解 释 RISC Reduced Instruction Set Computing 精简指令集 JTAG Joint Test Action Group 联合测试行动小组 CLZ指令用于计算寄存器中操作数最高端0的个数 。 ARM/Thumb之间的函数调用   在无交互的子程序调用中,其过程比较简单。实现调用通常只需要一条指令:   BL function   实现返回也只需要从LR恢复PC即可:   MOV PC, LR      如果子函数和父函数不在同一种状态下执行,因为状态切换,需要对函数调用作更多的考虑:   ① ?BL不能完成状态切换,需要由BX来切换状态。   ②? BX不能自动保存返回地址到LR,需要在BX之前先保存好LR。   ③ ?用“BX LR”来返回,不能使用“MOV PC, LR”,因为这条指令同样不能实现状态切换。返回时要仔细考虑保存在LR中最低位的内容是否正确。   假如用户直接使用汇编语言进行状态交互跳转,上述的几个问题都需要用手工编码加以处理。如果用户使用高级语言进行开发,不需要为ARM/Thumb之间的相互调用增加额外编码,但是最好要对其调用过程加以了解。 将当前指令地址加4或加8复制(取决于异常的类型)到LR中。比如IRQ异常时,LR指向最后执行的指令加上8,最后的指令执行完毕后,才进入IRQ异常处理,所以返回地址应指向下一条指令,即LR-4处。 如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。 SUB LR,LR,#4 ;计算返回地址 STMFD SP!,{R0-R3,LR} ;保存使用到的寄存器 . . . LDMFD SP!,{R0-R3,PC}^ ;中断返回 中断处理代码的开始部分和退出部分 2.9.2 异常入口和出口处理 如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。 中断处理代码的开始部分和退出部分 SUB LR,LR,#4 ;计算返回地址 STMFD SP!,{R0-R3,LR} ;保存使用到的寄存器 . . . LDMFD SP!,{R0-R3,PC}^ ;中断返回 2.9.2 异常入口和出口处理(续) 在异常发生后,ARM7TDMI内核会作以下工作: 在适当的LR中保存下一条指令的地址,当异常入口来自: ARM状态,那么ARM7TDMI将当前指令地址加4或加8复制(取决于异常的类型)到LR中; Thumb状态,那么ARM7TDMI将当前指令地址加4或加8 (取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。 将CPSR复制到适当的SPSR中; 将CPSR模式位强制设置为与异常类型相对应的值; 强制PC从相关的异常向量处取指。 2.9.3 进入异常 ARM7TDMI内核在中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。 注:异常总是在ARM状态中进行处理。当处理器处于Thumb状态时发生了异常,在异常向量地址装入PC时,会自动切换到ARM状态。 当异常结束时,异常处理程序必须: 1. 将LR中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同; 2. 将SPSR的值复制回CPSR; 3. 清零在入口置位的中断禁止标志。 注:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。 2.9.4 退出异常 程序A IRQ服务程序 系统模式 IRQ模式 程序 寄存器组 2.9.5 图示进入异常过程 1. 程序在系统模式下运行用户程序,假定当前处理器状态为Thumb状态、允许IRQ中断; 2. 用户程序运行时发生IRQ中断,硬件完成以下动作: LR_sys SPSR_irq LR_irq LR PC CPSR SPSR SYS 1 ? 0 . . . ? ? ? ? MOD T F I . . . N Z C V 置位I位(禁止IRQ中断) 清零T位(进入ARM状态) 设置MOD位,切换处理器模式至IRQ模式 将下一条指令的地址存入IRQ模式的LR寄存器 将CPSR寄存器内容存入IRQ模式的SPSR寄存器 将跳转地址存入PC,实现跳转 IRQ 0 ? 1 . . . ? ? ? ? BackAddr JumpAddr Jump SYS 1 ? 0

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档