机器人资料002ARM7TDMIS(Rev 4)技术参考手册.doc
《机器人资料002ARM7TDMIS(Rev 4)技术参考手册.doc》由会员分享,可在线阅读,更多相关《机器人资料002ARM7TDMIS(Rev 4)技术参考手册.doc(56页珍藏版)》请在三一办公上搜索。
1、ARM7TDMI-S(Rev 4)技术参考手册第1 章 介绍这一章介绍ARMTDMI-S 处理器。包含以下小节:* 关于ARM7TDMI-S 处理器* ARM7TDMI-S 结构* ARM7TDMI-S 模块内核和功能框图* ARM7TDMI-S 指令集汇总* Rev 3a 和Rev 4 之间的差异1.1 关于ARM7TDMI-S 处理器ARM7TDMI-S 处理器是ARM 通用32 位微处理器家族的成员之一。ARM 处理器具有优异的性能,但功耗却很低,使用门的数量也很少。ARM 结构是基于精简指令集计算机(RISC)原理而设计的。指令集和相关的译码机制比复杂指令集计算机要简单得多。这样的简化
2、实现了:* 高的指令吞吐量* 出色的实时中断响应* 小的高性价比的处理器宏单元1.1.1 指令流水线ARM7TDMI-S 处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作。流水线使用3 个阶段,因此指令分3 个阶段执行。* 取指* 译码* 执行3 阶段流水线如图1-1 所示。注:程序计数器(PC)指向被取指的指令,而不是指向正在执行的指令。在正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。1.1.2 存储器访问ARM7TDMI-S 处理器使用了冯诺依曼(Von Neumann )结构, 指令和数据共用一条3
3、2 位总线。只有装载存储和交换指令可以对存储器中的数据进行访问。数据可以是8 位字节16 位半字或者32 位字。字必须分配为占用4 字节,而半字必须分配为占用2字节。1.1.3 存储器接口ARM7TDMI-S 处理器的存储器接口可以使潜在的性能得到实现,这样减少了存储器的使用。对速度有严格要求的控制信号使用流水线,这样使系统控制功能以标准的低功耗逻辑实现。这些控制信号使许多片内和片外存储器技术所支持的“快速突发访问模式”得到充分利用。ARM7TDMI-S 处理器的存储器周期有4 种基本类型* 内部周期* 非连续的周期* 连续的周期* 协处理器寄存器传输周期1.2 ARM7TDMI-S 的结构A
4、RM7TDMI-S 处理器有两个指令集* 32 位ARM 指令集* 16 位Thumb 指令集ARM7TDMI-S 处理器使用了ARM 结构v4T。关于ARM 和Thumb 指令集的详细信息请参阅ARM体系结构参考手册1.2.1 指令压缩传统的微处理器结构对于指令和数据有相同的带宽。因此,和16 位结构相比,32 位结构处理32 位数据具有更高的性能,并且在寻址更大的地址空间时要有效得多。16 位结构比32 位结构具有更高的代码密度,并且超过32 位结构50%的性能。Thumb 在32 位结构上实现了16 位的指令集,这样可提供:* 比16 位结构更高的性能* 比32 位结构更高的代码密度1.
5、2.2 Thumb 指令集Thumb 指令集是最通用的ARM指令的子集。Thumb 指令长度为16 位,每条指令都对应一条32 位ARM指令,它对处理器模型有相同的效果。Thumb 指令使用标准的ARM 寄存器配置进行操作,这样ARM 和Thumb 状态之间具有极好的互用性在执行方面,Thumb 具有32 位内核所有的优点:* 32 位地址空间* 32 位寄存器* 32 位移位器和算术逻辑单元(ALU)* 32 位存储器传输Thumb 因此提供了长的分支范围,强大的算术操作和巨大的地址空间。Thumb 代码仅为ARM 代码规模的65% 但其性能却相当于连接到16 位存储器系统的ARM 处理器性
6、能的160%,因此Thumb 使ARM7TDMI-S 处理器非常适用于那些只有有限的存储器带宽并且代码密度很高的嵌入式应用。16 位Thumb 和32 位ARM 指令集使设计者极大的灵活性,使他们可以根据各自应用的需求,在子程序一级上实现对性能或者代码规模的优化。例如,应用中的快速中断和DSP 算法可使用完全的ARM 指令集编写并使用Thumb 代码连接。1.3 ARM7TDMI-S 模块内核和功能框图ARM7TDMI-S 处理器结构内核和功能框图见下* ARM7TDMI-S 模块见图1-2* ARM7TDMI-S 内核见图1-3* ARM7TDMI-S 功能框图见图1-4注:数据总线上没有双
7、向路径,图1-2 对这些作了简化。1.4 ARM7TDMI-S 指令集汇总该节提供了ARM 和Thumb 指令集的汇总:* ARM 指令汇总* Thumb 指令汇总指令集详见ARM 体系结构参考手册。1.5 Rev 3a 和Rev 4 之间的差异:ARM7TDMI-S(Rev 4)的变更见下面的章节* 增加的EmbeddedICE-RT 逻辑* 改进的调试通信通道(DCC)带宽* 通过JTAG 对DCC 进行访问* TAP 控制器ID 寄存器* 更加有效的多路传输1.5.1 增加的EmbeddedICE-RT 逻辑EmbeddedICE-RT 对ARM7TDMI-S(Rev 3)当中的Embe
8、ddedICE 逻辑作了改进。EmbeddedICE-RT 可以使您在监控模式下执行调试。在监控模式下,内核在遇到断点或观察点时执行异常处理,并不像在暂停模式中那样进入调试状态。如果内核在遇到断点或观察点时不进入调试状态,它仍然可以像正常情况下一样响应硬件中断请求。如果内核构成了机械系统反馈环的一部分,那么在监控模式下进行调试非常有用,因为如果停止内核会导致系统运转中断。更详细的信息请查阅第5 章 调试您的系统。节电当DBGEN 被拉低时,大部分的EmbeddedICE-RT 逻辑都被禁止以实现最低功耗。程序员模式的改变程序员模式的改变如下:调试控制寄存器增加了两个新的位:Bit4 监控模式使
9、能,使用该位来控制器件对断点或观察点的反应。* 置位时内核执行指令或数据的异常中止。* 当清零时内核进入调试状态。Bit5 EmbeddedICE-RT 禁止 在更改观察点。和断点时使用该位。* 置位时,该位禁止断点和观察点,断点或观察点寄存器可以编程为新的值。* 清零时,新的断点或观察点值生效。协处理器寄存器映射协处理器寄存器映射中的一个新的寄存器(R2) 指示处理器是因为一个真实的中止,还是因为断点或观察点而进入预取指或数据异常中止。更详细的信息请参阅第5 章的中止状态寄存器。1.5.2 改进的调试通信通道(DCC)带宽在ARM7TDMI-S 处理器(Rev 3)中,读取DCC 数据需要对
10、扫描链2 进行两次访问第一次访问,状态位,第二次访问数据本身。为了改进DCC 带宽,在ARM7TDMI-S 处理器(Rev 4)中,读取数据和状态位只需要一次访问。状态位包含在扫描链所读取的地址区域的最低位当中。DCC 控制寄存器中的状态位保持不变以确保向下兼容性。更多信息参考第5 章的调试通信通道一节。1.5.3 通过JTAG 访问DCCDCC 控制寄存器可通过ARM7TDMI-S 处理器(Rev 4)中的JTAG 接口进行控制处理器写操作清零bit0数据读控制位。更多信息请参考第5 章的调试通信通道一节。1.5.4 TAP 控制器ID 寄存器TAP 控制器ID 寄存器值为0x7F1F0F0
11、F。更多信息请参考第5 章的ARM7TDMI-S 器件标识(ID) 代码寄存器一节。第2 章 编程模型这一章讲述ARM7TDMI-S 处理器的编程模型包含以下小节* 关于编程模型* 处理器操作状态* 存储器格式* 指令长度* 数据类型* 操作模式* 寄存器* 程序状态寄存器* 异常* 状态延迟* 复位2.1 关于编程模型ARM7TDMI-S 处理器内核使用ARM v4T 结构实现,该结构包含32 位ARM 指令集和16 位Thumb 指令集。在ARM 体系结构参考手册中详细讲述了编程模型。2.2 处理器操作状态ARM7TDMI-S 处理器有两种操作状态:ARM 状态 32 位,这种状态下执行的
12、是字方式的ARM 指令Thumb 状态 16位,半字方式的Thumb 指令在Thumb 状态中,程序计数器(PC )使用bit1 来选择切换半字。注:ARM 和Thumb 状态间的切换并不影响处理器模式或寄存器内容。2.2.1 状态切换您可以使用BX 指令将ARM7TDMI-S 内核的操作状态在ARM 状态和Thumb 状态之间进行切换详见ARM 体系结构参考手册。所有的异常处理都在ARM 状态中执行。如果异常发生在Thumb 状态中,处理器会返回ARM 状态。在异常处理返回时自动切换回Thumb 状态。2.3 存储器格式ARM7TDMI-S 处理器将存储器看作是一个从0 开始的线性递增的字节
13、集合* 字节0 到3 保存第1 个存储的字* 字节4 到7 保存第2 个存储的字* 字节8 到11 保存第3 个存储的字ARM7TDMI-S 处理器可以将存储器中的字以下列格式存储* 大端(Big-endian )格式* 小端(Little-endian )格式2.3.1 大端格式在大端格式中ARM7TDMI-S 处理器将最高位字节保存在最低地址字节,最低位字节保存在最高地址字节,因此存储器系统字节0 连接到数据线31 24。2.3.2 小端格式在小端格式中一个字当中最低地址的字节被看作是最低位字节,最高地址字节被看作是最高位字节。因此存储器系统字节0 连接到数据线7 0。如图2-2 所示。2
14、.4 指令长度指令长度为下面两种之一* 32 位长度(在ARM 状态中)* 16 位长度(在Thumb 状态中)2.5 数据类型ARM7TDMI-S 处理器支持下列数据类型* 字32 位* 半字16 位* 字节8 位您必须这样进行分配* 字量必须分配为占用4 个字节* 半字量必须分配为占用2 个字节* 字节量可放置在任何一个字节内2.6 操作模式ARM7TDMI-S 处理器具有7 种操作模式* 用户模式 这是ARM 程序通常执行的状态,用于执行大多数应用程序。* 快速中断(FIQ)模式 支持数据传输或通道处理。* 中断(IRQ)模式 用于通用中断处理。* 超级用户模式 是操作系统一种受保护的模
15、式。* 中止模式 在数据或指令预取指中止时进入该模式。* 系统模式 是操作系统一种特许的用户模式。* 未定义模式 当执行未定义的指令时进入该模式。除了用户模式之外其它模式都被归为特权模式。特权模式用于服务中断异常或者访问受保护的资源。2.7 寄存器ARM7TDMI-S 处理器总共有37 个寄存器* 31 个通用32 位寄存器* 6 个状态寄存器这些寄存器并不是在同一时间全都可以被访问的。处理器状态和操作模式决定了程序员可以访问哪些寄存器。2.7.1 ARM 状态寄存器集在ARM 状态中16 个通用寄存器和1 个或2 个状态寄存器可在任何时候同时被访问。在特权模式中与模式相关的分组寄存器可以被访
16、问。图2-3 所示为每种模式所能访问的寄存器。ARM 状态寄存器集包含16 个可直接访问的寄存器r0 r15。一个附加的寄存器当前程序状态寄存器(CPSR)包含条件代码标志和当前模式位,寄存器r0 r13 为保存数据或地址值的通用寄存器,寄存器r14和r15 具有下面的特殊功能连接寄存器 寄存器14 作为一个子程序连接寄存器(LR)当执行连接分支(BL) 指令时,r14 接收r15 的备份。在其它时候可将r14 当成一个通用寄存器对应的分组寄存器r14_svc, r14_irq, r14_fiq,r14_abt 和r14_und 与之相似,当发生中断和异常或者当中断或异常,子程序中的BL指令执
17、行,时用于保存r15 的返回值。程序计数器 寄存器15 用于保存程序计数器PC在ARM 状态中r15 中的bits1:0为0 bits31:2包含PC 值。在Thumb 状态中bit0为0 bits31:1包含PC 值在特权模式中另外一个寄存器被保存的程序状态寄存器(SPSP) 可以被访问。它包含了条件代码标志和作为异常的结果所保存的模式位,此异常导致进入当前模式,关于程序状态寄存器的描述见后面的章节分组寄存器有一个模式标识符,用于指示它们被映射到哪个用户模式寄存器。这些模式标识符如表2-1所示:FIQ 模式有7 个分组寄存器,分别映射到r8 r14 (r8_fiq r14_fiq)在ARM
18、状态中,大多数FIQ 处理程序都不必保存任何寄存器。用户,IRQ ,超级用户,中止和未定义模式各有2 个分组寄存器,分别映射到r13 和r14,每种模式允许有一个专用的堆栈指针和LR。图2-3 所示为ARM 状态寄存器。2.7.2 Thumb 状态寄存器集Thumb 状态寄存器集时ARM 状态集的子集,程序员可直接访问:* 8 个通用寄存器r0 r7* PC* 堆栈指针SP* 连接寄存器LR* CPSR每个特权模式都有分组的SP LR 和SPSR, 该寄存器集如图2-4 所示。2.7.3 ARM 状态寄存器和Thumb 状态寄存器之间的关系Thumb 状态寄存器与ARM 状态寄存器有如下的关系
19、:* Thumb 状态r0 r7 与ARM 状态r0 r7 相同* Thumb 状态CPSR 和SPSR 与ARM 状态CPSR 和SPSR 相同* Thumb 状态SP 映射到ARM 状态r13* Thumb 状态LR 映射到ARM 状态r14* Thumb 状态PC 映射到ARM 状态PC(r15)这些关系如图2-5 所示:注:寄存器r0 r7 为低寄存器,寄存器r8 r15 为高寄存器2.7.4 在Thumb 状态中访问高寄存器在Thumb 状态中高寄存器r8 r15 不是标准寄存器集的一部分。汇编语言程序员对它们的访问受到限制,但可以将它们用于快速暂存可以使用MOV 指令的特殊变量将一
20、个值从低寄存器(r0 r7) 转移到高寄存器,或者从高寄存器到低寄存器CMP 指令可用于比较高寄存器和低寄存器的值。ADD 指令可用于将高寄存器的值与低寄存器的值相加,详细信请参考ARM 体系结构参考手册。程序状态寄存器ARM7TDMI-S 内核包含1 个CPSR 和5 个SPSR 供异常处理程序使用。程序状态寄存器:* 保持条件代码标志* 控制中断的使能和禁止* 设置处理器操作模式位的分配如图2-6 所示注:为了保持与将来的ARM 处理器兼容,并且作为一种良好的习惯,在更改CPSR 时,我们强烈建议您使用读写修改的方法。2.8.1 条件代码标志N, Z, C 和V 位都是条件代码标志。可以通
21、过算术和逻辑操作来设置这些位。这些标志还可通过MSR和LDM 指令进行设置。ARM7TDMI-S 处理器对这些位进行测试以决定是否执行一条指令。在ARM 状态中,所有指令都可按条件来执行。在Thumb 状态中只有分支指令可条件执行。更详细的信息请参考ARM 体系结构参考手册。2.8.2 控制位PSR 的最低8 位为控制位,它们分别是* 中断禁止位* T 位* 模式位当发生异常时,控制位改变,当处理器在一个特权模式下操作时,可用软件操作这些位。中断禁止位I 和F 位都是中断禁止位* 当I 位置位时,IRQ 中断被禁止* 当F 位置位时,FIQ 中断被禁止T 位T 位反映了正在操作的状态* 当T
22、位置位时,处理器正在Thumb 状态下运行* 当T 位清零时,处理器正在ARM 状态下运行操作状态通过CPTBIT 外部信号反映。警告:绝对不要强制改变CPSR 寄存器中的T 位。如果这样做,处理器会进入一个无法预知的状态。模式位M4, M3, M2, M1 和M0 位(M4:0 )都是模式位。这些位决定处理器的操作模式,见表2-2 ,不是所有模式位的组合都定义了有效的处理器模式,因此请小心不要使用表中所没有列出的组合。注:如果将非法值写入M4:0中,处理器将进入一个无法恢复的模式。2.8.3 保留位PSR 中的保留位被保留将来使用,当改变PSR 标志和控制位时,请确认没有改变这些保留位。另外
23、请确保您的程序不依赖于包含特定值的保留位,因为将来的处理器可能会将这些位设置为1 或者0。2.9 异常只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM7TDMI-S 内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常,见异常优先级一节。该节将会详细讲述ARM7TDMI-S 处理器的异常处理* 异常入口/出口汇总* 进入异常* 退出异常2.9.1 异常入口/出口汇总表2-3 所示为异常入口处变量r14 所保存的PC 值以及退出异常处理程序所推荐使用的指令。2.9.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人资料002ARM7TDMISRev 4技术参考手册 机器人 资料 002 ARM7TDMIS Rev 技术 参考手册
链接地址:https://www.31ppt.com/p-2941053.html