广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//(Rev4)技术参考手册技术参考手册技术参考手册技术参考手册广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//关于ARM7TDMI-S处理器zARM7TDMI-S结构zARM7TDMI-S模块内核和功能框图zARM7TDMI-S指令集汇总zRev3a和Rev4之间的差异1.1关于关于关于关于ARM7TDMI-S处理器处理器处理器处理器ARM7TDMI-S处理器是ARM通用32位微处理器家族的成员之一ARM处理器具有优异的性能但功耗却很低使用门的数量也很少ARM结构是基于精简指令集计算机(RISC)原理而设计的指令集和相关的译码机制比复杂指令集计算机要简单得多这样的简化实现了z高的指令吞吐量z出色的实时中断响应z小的高性价比的处理器宏单元1.1.11.1.11.1.11.1.1指令流水线指令流水线指令流水线指令流水线ARM7TDMI-S处理器使用流水线来增加处理器指令流的速度这样可使几个操作同时进行并使处理和存储器系统连续操作流水线使用3个阶段因此指令分3个阶段执行z取指z译码z执行3阶段流水线如图1-1所示ARMThumbPCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码PC-8PC-4执行从寄存器组中读出寄存器执行移位和ALU操作寄存器写回到寄存器组图1-1指令流水线注程序计数器(PC)指向被取指的指令而不是指向正在执行的指令在正常操作过程中在执行一条指令的同时对下一条指令进行译码并将第三条指令从存储器中取出1.1.2存储器访问存储器访问存储器访问存储器访问ARM7TDMI-S处理器使用了冯诺依曼VonNeumann结构指令和数据共用一条32位总线只有装载存储和交换指令可以对存储器中的数据进行访问数据可以是8位字节16位半字或者32位字字必须分配为占用4字节而半字必须分配为占用2广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//内部周期z非连续的周期z连续的周期z协处理器寄存器传输周期1.2ARM7TDMI-S的结构的结构的结构的结构ARM7TDMI-S处理器有两个指令集z32位ARM指令集z16位Thumb指令集ARM7TDMI-S处理器使用了ARM结构v4T关于ARM和Thumb指令集的详细信息请参阅ARM体系结构参考手册1.2.1指令压缩指令压缩指令压缩指令压缩传统的微处理器结构对于指令和数据有相同的带宽因此和16位结构相比32位结构处理32位数据具有更高的性能并且在寻址更大的地址空间时要有效得多16位结构比32位结构具有更高的代码密度并且超过32位结构50%的性能Thumb在32位结构上实现了16位的指令集这样可提供z比16位结构更高的性能z比32位结构更高的代码密度1.2.2Thumb指令集指令集指令集指令集Thumb指令集是昀通用的ARM指令的子集Thumb指令长度为16位每条指令都对应一条32位ARM指令它对处理器模型有相同的效果Thumb指令使用标准的ARM寄存器配置进行操作这样ARM和Thumb状态之间具有极好的互用性在执行方面Thumb具有32位内核所有的优点z32位地址空间z32位寄存器z32位移位器和算术逻辑单元(ALU)z32位存储器传输Thumb因此提供了长的分支范围强大的算术操作和巨大的地址空间Thumb代码仅为ARM代码规模的65%但其性能却相当于连接到16位存储器系统的ARM处理器性能的160%因此Thumb使ARM7TDMI-S处理器非常适用于那些只有有限的存储器带宽并且代码密度很高的嵌入式应用16位Thumb和32位ARM指令集使设计者极大的灵活性使他们可以根据各自应用的需求在子程序一级上实现对性能或者代码规模的优化例如应用中的快速中断和DSP算法可使用完全的ARM指令集编写并使用Thumb代码连接广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//ARM7TDMI-S模块见图1-2zARM7TDMI-S内核见图1-3zARM7TDMI-S功能框图见图1-4EmbeddedICE-RTCPUDBGRNG(0)DBGRNG(1)DBGEXT(0)DBGEXT(1)TAPADDR[31:0]LOCKWRITESIZE[1:0]PROT[1:0]TRANS[1:0]WDATA[31:0]RDATA[31:0]DBGTDIDBGnTRSTDBGTMSDBGTCKENDBGTDO图1-2ARM7TDMI-S模块注数据总线上没有双向路径图1-2对这些作了简化广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//[1:0]PROT[1:0]SIZE[1:0]WRITELOCKWDATA[31:0]RDATA[31:0]ADDR[31:0]APCB6状态寄存器地址增加器增加器总线总线筒形移位器指令管线读数据寄存器Thumb图1-3ARM7TDMI-S内核广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//[1:0]PROT[1:0]SIZE[1:0]WRITEABORTRDATA[31:0]WDATA[31:0]ADDR[31:0]DBGTDODBGnTDOENDBGnTRSTDBGTDIDBGTMSDBGTCKENDBGCOMMTXDBGCOMMRXDBGRNG[0]DBGRNG[1]DBGENDBGEXT[0]DBGEXT[1]DBGnEXECDBGACKDBGBREAKDBGRQLOCKCFGBIGENDnRESETnFIQnIRQCLKENCLKDBGINSTRVALIDARM7TDMI-SDMOREEmbededICE-RT图1-4ARM7TDMI-S功能框图1.4ARM7TDMI-S指令集汇总指令集汇总指令集汇总指令集汇总该节提供了ARM和Thumb指令集的汇总zARM指令汇总zThumb指令汇总指令集详见ARM体系结构参考手册1.5Rev3a和和和和Rev4之间的差异之间的差异之间的差异之间的差异ARM7TDMI-S(Rev4)的变更见下面的章节z增加的EmbeddedICE-RT逻辑z改进的调试通信通道(DCC)带宽z通过JTAG对DCC进行访问zTAP控制器ID寄存器z更加有效的多路传输广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//(Rev3)当中的EmbeddedICE逻辑作了改进EmbeddedICE-RT可以使您在监控模式下执行调试在监控模式下内核在遇到断点或观察点时执行异常处理并不像在暂停模式中那样进入调试状态如果内核在遇到断点或观察点时不进入调试状态它仍然可以像正常情况下一样响应硬件中断请求如果内核构成了机械系统反馈环的一部分那么在监控模式下进行调试非常有用因为如果停止内核会导致系统运转中断更详细的信息请查阅第5章调试您的系统节电节电节电节电当DBGEN被拉低时大部分的EmbeddedICE-RT逻辑都被禁止以实现昀低功耗程序员模式的改变程序员模式的改变如下调试控制寄存器增加了两个新的位Bit4监控模式使能使用该位来控制器件对断点或观察点的反应z置位时内核执行指令或数据的异常中止z当清零时内核进入调试状态Bit5EmbeddedICE-RT禁止在更改观察点和断点时使用该位z置位时该位禁止断点和观察点断点或观察点寄存器可以编程为新的值z清零时新的断点或观察点值生效协处理器寄存器映射协处理器寄存器映射协处理器寄存器映射协处理器寄存器映射协处理器寄存器映射中的一个新的寄存器R2指示处理器是因为一个真实的中止还是因为断点或观察点而进入预取指或数据异常中止更详细的信息请参阅第5章的中止状态寄存器1.5.2改进的调试通信通道改进的调试通信通道改进的调试通信通道改进的调试通信通道(DCC)带宽带宽带宽带宽在ARM7TDMI-S处理器(Rev3)中读取DCC数据需要对扫描链2进行两次访问第一次访问状态位第二次访问数据本身为了改进DCC带宽在ARM7TDMI-S处理器(Rev4)中读取数据和状态位只需要一次访问状态位包含在扫描链所读取的地址区域的昀低位当中DCC控制寄存器中的状态位保持不变以确保向下兼容性更多信息参考第5章的调试通信通道一节1.5.3通过通过通过通过JTAG访问访问访问访问DCCDCC控制寄存器可通过ARM7TDMI-S处理器(Rev4)中的JTAG接口进行控制处理器写操作清零bit0数据读控制位更多信息请参考第5章的调试通信通道一节1.5.4TAP控制器控制器控制器控制器ID寄存器寄存器寄存器寄存器TAP控制器ID寄存器值为0x7F1F0F0F更多信息请参考第5章的ARM7TDMI-S器件标识(ID)代码寄存器一节广州周立功单片机发展有限公司Tel(020)3873097638730916Fax38730925http//关于编程模型z处理器操作状态z存储器格式z指令长度z数据类型z操作模式z寄存器z程序状态寄存器z异常z状态延迟z复位2.1关于编程模型关于编程模型关于编程模型关于编程模型ARM7TDMI-S处理器内核使用ARMv4T结构实现该结构包含32位ARM指令集和16位Thumb指令集在ARM体系结构参考手册中详细讲述了编程模型2.2处理器操作状态处理器操作状态处理器操作状态处理器操作状态ARM7TDMI-S处理器有两种操作状态ARM状态32位这种状态下执行的是字方式的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处理器将存储器看作