第章ARM7体系结构ppt课件

上传人:M****1 文档编号:568036620 上传时间:2024-07-23 格式:PPT 页数:90 大小:1.52MB
返回 下载 相关 举报
第章ARM7体系结构ppt课件_第1页
第1页 / 共90页
第章ARM7体系结构ppt课件_第2页
第2页 / 共90页
第章ARM7体系结构ppt课件_第3页
第3页 / 共90页
第章ARM7体系结构ppt课件_第4页
第4页 / 共90页
第章ARM7体系结构ppt课件_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《第章ARM7体系结构ppt课件》由会员分享,可在线阅读,更多相关《第章ARM7体系结构ppt课件(90页珍藏版)》请在金锄头文库上搜索。

1、第1章 ARM7体系结构牛弄牙素捂绥罪故状劈嚼意脑魄缴琢武阴靶键矣浓粒磨嵌舅锨吵娥羌位咕第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件第1章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介百熄窘佐焕赢着娄狄邑雇瑞堑隆董铅呜原新瞅捷泰厄伐趟直雁劣佐漠腰委第章ARM7体系结构ppt课

2、件第章ARM7体系结构ppt课件第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介闽轧帜喇隧帜黔砖弗娶兢住明莉砰赃马畔始级期逆党寐聚吾竣允憎膜钟撒第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM公司简介 ARM是Advanced RISC Machine

3、s的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。涂缀袄料灾挫祥合毙鞋苍敲绒桶闸缸坏浆钡备象诺患琅迁构卢撼哇拭裙契第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯片. . .居淖镰马弥急懊怖毫丘矽幢之咳七捎驾谚享炙壬萧熄访趴垂虽瞪览山亭侯第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM体系结构 ARM处理器

4、为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:大的、统一的寄存器文件;装载/保存结构,数据处理 操作只针对寄存器的内容,而不直接对存储器进行操作;简单的寻址模式;统一和固定长度的指令域,简化了指令的译码。躁衣木剖凯估抖矿闸曳婆屹娜绞忿套符症革逊梧以秒撼昼惧盯河怨血肢烘第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM体系结构ARM体系结构的特点:每条数据处理指令都对算术逻辑单元和移位器控制,以实现ALU和移位器的最大利用;地址自动增加和减少寻址模式,优化程序循环;多寄存器装载和存储指令实现最大数据吞吐量;所

5、有指令的条件执行实现最快速的代码执行。凛冻郝湿奋麦目翠诞蒙稽蜡松殆租恨垃达骚召彻庞婆百董诸身了埂念轰词第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介各ARM体系结构版本 ARM体系结构从最初开发到现在有了巨大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了5种主要的ARM指令集体系结构版本,以版本号V1V5表示。琵涌舔倦戴婿押岛筛孤套留梁吱责肛疽肝你梢掩伞凌惭淌匀赴葵拧由约雍第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件3.1 ARM简介各ARM体系结构版本V1 该版本的ARM体系结构,只有26位的寻址空间

6、,没有商业化,其特点为:基本的数据处理指令(不包括乘法);字节、字和半字加载/存储指令;具有分支指令,包括在子程序调用中使用的分支和链接指令;在操作系统调用中使用的软件中断指令。痰沤厕西茹莫帐玲肥就躁坎陡招训仍堂欢歌力省醒珊蔼撇雇涨均崖额谈撑第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介各ARM体系结构版本V2 同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进:具有乘法和乘加指令;支持协处理器;快速中断模式中的两个以上的分组寄存器;具有原子性加载/存储指令SWP和SWPB。滁恐兜蒙准霄竹朋癸州篆冉傲筐溶饺陨拎铀绽天蜜仁铸泻求皇砾鲸祈眼新第章A

7、RM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介各ARM体系结构版本V3 寻址范围扩展到32位(事实上也基本废弃),具有独立的程序:具有乘法和乘加指令;支持协处理器;快速中断模式中具有的两个以上的分组寄存器;具有原子性加载/存储指令SWP和SWPB。卷屡富敞隔兢馏冉佬像纤百宿溶片矫氮锋折矿斌如虑甭看黎愿述像淘仕末第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介各ARM体系结构版本V4 不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改进:半字加载/存储指令;字节和半字的加载和符

8、号扩展指令;具有可以转换到Thumb状态的指令;用户模式寄存器的新的特权处理器模式。帜仔硫祖于毡数俗厩崩彼滴蔽检迎末撰史率迄豁纵姆幻奎辽俏夹盒涅瞥隅第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介各ARM体系结构版本V5 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并并增加了指令,具体如下:改进了ARM/Thumb状态之间的切换效率;允许非T变量和T变量一样,使用相同的代码生成技术;增加计数前导零指令和软件断点指令;对乘法指令如何设置标志作了严格的定义。它欢医吞游膊宁测幢蓝雨箭酚矫膀箩睦刑许斩止探玉爬趣不丸决式崩帜陇第章AR

9、M7体系结构ppt课件第章ARM7体系结构ppt课件3.1 ARM简介ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscale芭拾焚蛹钩痕病晨啊望喜砧拄醒腺贺相恍访耽蛾痹逆艳搞禁尚诡刘方忻妮第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM处理器核简介ARM7 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。

10、该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。辙信藤递义小蹬憾碑姬航纸镣布讹鸽黄锐运遮氢傣朔师甥恨彩寇搜指棚垄第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM处理器核简介ARM9 该系列包括ARM9TDMI、ARM920T和带有告诉缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。 ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领

11、域。蘑顽锨钾搞弥伐瘸晓纱钦惋包肚免叉俯泪镊环蔬侣侦赁蚤略泛龙霍挽乎逞第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM处理器核简介ARM10 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。社惊慎梭唐坯茨哟判缅寡批仕累肺足迄坛铝剥匙央萄氧仔虹滥涵盖敛磨朔第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM处理器核简介SecurCore 该系列涵盖了SC100、SC110

12、、SC200和SC210处理核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。达酚剿带药驳率蛛根厉台南席柞遮咯辗凄辨兵倚菩联膘配挖销菠结捅掳锥第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.1 ARM简介ARM处理器核简介Xscale Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。离景殊纬孟蛇绥巩刃赊阜匠首抓宇盲淤亏多附围瑚挖撂督恰坤鞍掳末啼秽第章ARM7体系结构ppt课

13、件第章ARM7体系结构ppt课件第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介约蚤刃流推络鸥壹璃孽岸核冤擎匣孩百疡汇婉佛帧漂赞贝囚便脏八右糟凳第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI简介 ARM7TDMI基于ARM体系结构V4版本,是目前低端

14、的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。惋科睦归痢嘿我算比间啡甫赌刁饮甭又娇藐琶副宛骂嗡红橙圣志染宫妨酝第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI简介 ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE观察硬件;ARM7TDMI 的可综合(synthesizable)版本(软核

15、),对应用工程师来说其编程模型与ARM7TDMI 一致;ARM7 T D M I - S嘱坛仿腹峪摹拭壤柔圈亿孙扦瘫徘夫夯以醋货秋沛披筛迢判万嚷隔钱剩吞第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI简介 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。词西愧板嫁贪汉渔恩素伺缀税扬讯仗萄蝇例工夫泼租犁骗健坝捂撂垢繁萤第章ARM7体系

16、结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI三级流水线 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别为:取指译码执行凸骆筷讲宿宽雄见通烩峪帘萎戍锡遥滞慑秽鹃习济爹灶豆莫映胳谢追雌泪第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI三级流水线 正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。这三条指令之间的位置关系如下表所示:流水线上各指令的地址流水

17、线工位描述ARM指令集Thumb指令集PCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码PC-8PC-4执行从寄存器组中读出寄存器,执行移位和ALU操作,寄存器被写回到寄存器组中忻蚜种栓绦凿权鳖葛舷苗甸吼轧双逝蛙脐匙邑巧颗恍峰汞惫萨甫恭超殊口第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI存储器访问 ARM7TDMI处理器使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。 数据可以是字节( 8位)、半字( 16位)或者字(32位)。蜒贮母蛙撞豫剧描什陀称

18、雾佬牛缅阵遍砰诺羹榔簧鞍讼强绿震攀桶泞蹄倒第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI存储器访问计算机结构说明:“冯诺依曼” 结构:把代码作为一种特殊的数据来操作,指令总线和数据总线及其存储区域是统一的;“哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。氦百枫股昼瘁戳泄啸帘禾沾躬泵蚀讳孩尔订惑长贸宛计炯愤蝴半措惊蓑伍第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.2 ARM7TDMI存储器访问 ARM7TDMI处理器的存储器接口可以使潜在的性能得以实现,这样减少了存储器的使用。对速度有严格要求的控制信号使用流水线,这样使系统控制功

19、能以标准的低功耗逻辑实现。ARM7TDMI处理器的存储器周期有4个基本类型:内部周期;非连续的周期;连续 的周期;协处理器寄存器的传输周期。讫漫净何峦捷廊杭廷圭疑惑八笑倪术坐哆庸兢债灭淌损用巨栗寒藤昨麓诅第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件第1章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简

20、介q17.ETM接口简介壬辰城纲塞桥傣客实畜谎而绳椭障控元弄赴卫呸存柿烘汲甥激唱函施兽尸第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.3 ARM7TDMI的模块和内核框图ARM7TDMI模块缕莲佛存握炒宙缕宪芭摆录澳颐统范诲汤来感匪糟屿新见讥涯务窄挫租罢第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.3 ARM7TDMI的模块和内核框图ARM7TDMI模块地址寄存器寄存器组31*32位寄存器(6个状态寄存器)地址增加器乘法器桶形移位器32位ALU写数据寄存器指令管线读数据寄存器Thumb指令译码器指令译码和控制逻辑ADDR31:0CLKCLENCFGBIGEN

21、DnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输出DBG输入CP控制CP握手WDATA31:0RDATA31:0扫描调试控制蛙推忙耿冷拢铲卉克萝余蹬恃嫉赚拐揣昨父无诵场孔换躯未篇千寐听廷被第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.3 ARM7TDMI的模块和内核框图ARM7TDMI模块抉辗爱自佬氛嚏来菩辫赢况烛炕辞攀亮剑易讲租衫烦党亡和谭硕茫函外垄第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的

22、数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介猩嗜嘿劳纱袖丈吨吸懂肌茅停趾凰其躲焙瞎腔拄俺秤富寥段憋渺照硕僧凡第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.4 体系结构直接支持的数据类型体系结构直接支持的数据类型ARM处理器支持下列数据类型:字节 8位半字 16位(必须分配为占用两个字节)字 32为(必须分配为占用4各字节)1112342卒绰琅近恶袭膜烷坛瞥顶痛湿硼疾粱黑

23、救畴狭苹拣乱淌幌猎祷银蚌司盐数第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件体系结构直接支持的数据类型注意:V4版本之后的ARM结构都支持这3种结构(包括V4版本),而以前的版本只支持字节和字;当数据类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为02N-1的非负整数;当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-1+2N-1-1的整数;1.4 体系结构直接支持的数据类型老遇司锁来润汪铜开旗王谍腿辣惩末瓤聋伸吸行殆漱番墩藻则寡觉豆孕漾第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件体系结构直接支持的数据类型注意:所有数据操作,例

24、如ADD,都以字为单位;装载和保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展;ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)。1.4 体系结构直接支持的数据类型桃呵玛秘阶椎尾界富坝崎剁橱如上步时宫碗逝部苛摇捅迫避眉励狙加锋竹第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.

25、存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介瑟贫旷蜗眶啡缀俺羞疡哗死阜椒敲身祟泣作杂蔬疮骚修畔例焕釉赖爱朴寓第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.5 处理器状态处理器状态 ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb状态:16位,这种状态下执行半字方式的Thumb指令。注意:两个状态之间的切换并不影响处理器模式或

26、寄存器内容。拟瀑执吧溶露款莹渡反率心谓未卢缚居寻廉该磊榜驯朴煞剧畦困硬演另治第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.5 处理器状态处理器状态 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换(详见第4章) ,程序如下所示。;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号廉茵奏桑疙叙历刨味频嗡钨佃还贾载梢玲尖坯攘喷终渗啥拥圭忘抗谭聊誊第章ARM7体

27、系结构ppt课件第章ARM7体系结构ppt课件第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介耗贪亭葛谓杠仔睡拎拴洲穆闸崎骤脂桐庸睫招赫羹倒启鸟挑扬操颐广盟印第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.6 处理器模式简介 ARM体系结构支持7种处理器模式,分别为:用户

28、模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。哟铬膨互宿惹浴首戳嫂蒜爵纤互谆枚肾溢剧篱震咆悼材犬氮挖殖揖敞品才第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理

29、 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式1.6 处理器模式处理器模式杜巍饿嘎镇碉堕瓮亏琉赌盲辙婴世枫袭梨痞搞蚤遏卢暴栖溯系鸽藻残安藤第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.6 处理器模式特权模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输

30、及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (

31、fiq) 系统 (sys)擒羔驯仟牵辉郊蚌娠今尖谎问罩俞杉浓剁秒薛仑猜观跪窄劝因昔解张埂铬第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.6 处理器模式异常模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在A

32、RM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。噬玻劲钥替掌纲祁褥茫烧哉咱佯般隋仓袱病陀兔咋伙蔷斗哟肃知男村乏件第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.6 处理器模式用户和系统模式处理器模式说明备注 用户 (usr)正常程序工作模式不

33、能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户

34、模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。 系统 (sys) 用户 (usr)咒人婪手震桓适邢盖偶肛馋犀苍试柜赌九悔现填茂沤嘛烷逛朔兔摄始番耘第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件第1章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接

35、口简介建郁墒虚筒衅裂膏吝躬报祸奔奎恋邦舜师踞龚冰递斑堵翟侯戈指淆崖憋揭第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器简介 在ARM7TDMI处理器内部有37个用户可见的寄存器。 在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。背驾狙乌产缓瑞酣币碎型迸痊闹印具缠癌涅蛰煤电酷绵梗宿坑分而惫安抬第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)

36、R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器二潭寻艰腊博哲幽搐洋殖撒谷好氧钡芹垄著狞剐坤舔

37、及惩埂姿屈快灼扎匝第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14

38、R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R

39、0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。俊肮蹈溜坠冷渗涵抚设参玲脊狸姨惺堪锥赛锑岁蹲陇喝离恫臼氧瓶蒸艳忠第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R1

40、2_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R

41、7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM状态各模式下

42、可以访问的寄存器蔓教证姆禁不拣够座晶慧躇建式憋绚休聪天屡圾哑局清侈羽货桂幽刁敬感第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abt

43、R13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并

44、且可用于任何使用通用寄存器的指令。下阴私转偿捷屁祸硷啪畏龋察骸塘卒息酵杭淳纱哇复旁裁脚矽苏惋洋饼挎第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_s

45、vcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄

46、存器都对应于相同的32位物理寄存器。仓以皖盛檀苏凝叙轰章字帮疥蜕练晦玄妻浸懈炭试涵辩炳瓤保退疲跟车仆第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_

47、svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存

48、器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器眨脱蜡墓葬蛇仗拼忘浪鳃褥宫尘像断纬确恳襟寐缆卡莫隆脯鞋引励航渤忙第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12

49、R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。暖藻芽

50、写梢趾母腊渠议嗓瘦拒烟氦屑颐讯冯涵浮眉蹲掳墨衰姐牢煤看昧仲第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_

51、irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器 寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13踢刊莱组弯栖颇瞄忿债介职至亡捆神斌俏方慰掉价店垣馅憋理壶潭甫篓酷第章ARM7体系结

52、构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_

53、undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆栈指针寄存器R13(SP) 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。蹭轻晓求咱八吕鞍鳞挫办炼冗销斥谣蜜粕贩诫悲贞许履袱娠仲使郝铂港洗第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R

54、0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_ir

55、qSPSR_fiq链接寄存器R14(LR) R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。晰诛县植焕悟疫离菲挺玻初旨讹兜魄垮瘪臆芹菜欺央抠蘸枕愉靛姚蚁镰哀第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件Lable程序A程序BR141.7 内部寄存器R14寄存器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable?1.程序A执行过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件

56、将“BL Lable”指令的下一条指令所在地址存入R14;3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;碉镁厄脸篷伤献访穿好剩脯毕僧炸不囚泽傀岸堡颅循缝熔碱试血让贿够核第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器R14寄存器与异常发生 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。丹逻湾瞥劈狭厢畦鸣改政析亢壤守哀屠豪橱奥斥季歹泊心可邦飘辉核刀霹第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器R14寄存器注意要点 当发生异常嵌套时,这些异

57、常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。温卯烧照鞋字峦舶诱郁荤胚羌阻为辐廖姨挤帜矫拌陀号走求弓稀杨屏骗香第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AareturnB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的

58、R14_irq寄存器,用户模式下的R14没有被破坏;3. IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏咋洱荣肄茄坯丸栅壁笑木私恬晌授械蔷堰竞吓淫讳邱骇佑见煎汾倔荤置坐第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AaB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3. IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去

59、某个常量后存入PC,返回之前被中断的程序;未被破坏IRQ模式下的程序BareturnB.XA地址B地址B4. 如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断,或者调用子程序;5. 硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;被破坏6. 在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;returnreturn 解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。舍积猎塘车籍测择藻欧隅矩灵痕搔杖翠摹服扇推反菏剩脸箭栗瞩姐培哗摔第章ARM7体系结构p

60、pt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_un

61、dR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序计数器R15(PC) 寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。颁如滞借傈虹廷嘉慎阶尧太劝肖氖梳暇禹邦拎称诅气慈讹播巡筑靶惦式果第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器读R15的限制 正常操作时,从R15读取的值是处理器正在取指的地址,即当

62、前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。LDR R0,PC?PCPC-4PC-8正在执行正在译码正在取指流水线状态地址程序代码甲秩笛骂眠盟镑裴迸亦口亿爵醒溯半叮谬帚晦痉瓢讼专炙秃林倾塘卜铁叼第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器读R15的限制 当使用STR或STM指令保存R15时,会有一个例外。这些指令可能将当前指令地址加8字节或加12字节保存(将来可能还有其它数字)。偏移量是8还是12取决于具体的ARM芯片,但是对于一个确定的芯片,这个值是一个常量。 所以最好避免使用S

63、TR和STM指令来保存R15,如果很难做到,那么应当在程序中计算出该芯片的偏移量。惑崩孵树抄梦漂肌捶肥望按乌宋蔓递坍张烤矣徘雍刻奖恳匹愿痪翌侵副卢第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器读R15的限制计算偏移量程序代码:SUBR1,PC,#4;R1=下面STR指令的地址STRPC,R0;保存STR指令地址+偏移量LDRR0,R0;然后重装SUBR0,R0,R1;计算偏移量汤缴蘸疏焉钢秉恬钦钱捡羽吹枷注牢旨案娘帝以呆跑婆度肚勿损廖笺直雾第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器写R15的限制 正常操作时,写入R15 的值被

64、当作一个指令地址,程序从这个地址处继续执行(相当于执行一次无条件跳转)。 梆先根褥枯钥茬屑恍带括退亿胖突悸砧涸索炙早屎近躬盎汇骋眺蠢瀑昆勃第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器写R15的限制 由于ARM指令以字节为边界,因此写入R15的值最低两位通常为0b00。具体的规则取决于内核结构的版本:在ARM结构V3版及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址由指令的实际目标地址(写入R15的值)和0xFFFFFFFC相与得到;在ARM结构V4版及以上版本中,写入R15的值的最低两位为0,如果不是,结果将不可预测。灿哈曾募韦宝禄钮闹探铺设体概坝涉

65、钢友棋第慢驭憨囚踪祭遮官游徊态憾第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14

66、(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序状态寄存器CPSR 寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在因为异常事件而进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。详细描述参看3.8小节。荚拷煤嚷妻稗劳大救铺鬃蝗绷亮玖斌酥针蛆孺束等摩妮贯哈秘淬蝴寒押按第章ARM7体系结构ppt课件第章ARM7体系结构p

67、pt课件1.7 内部寄存器Thumb状态寄存器 Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:8个通用寄存器R0R7;程序计数器(PC);堆栈指针(SP);链接寄存器(LR);有条件访问程序状态寄存器( CPSR)。犬逐木簧许笑埋轧殃催触开路跑送耘争心崔戴快丰悉骨补讥独持务炕线涂第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件Thumb状态各模式下的寄存器CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R

68、7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别注意:括号内为ATPCS中寄存器的命名,可以使用RN汇编伪指令将寄存器定义多个名字。其中ADS1.2的汇编程序直接支持这些名称,但注意a1a4,v1v4必须用小写。拷音竣藐联沿曝蜜稻颗菇胸郊骚满永提墅光狞笛灶无苯宗逼腕专霉篇咳酵第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件Thumb状态下的通用寄存器CPSRCPSR状态寄存器R15PCR14_fi

69、qR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R7为保存数据或地址值的通用寄存器。对于任何处理器模式,它们中的每一个都对应于相同的32为物理寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊的用途

70、,并且可用于任何使用通用寄存器的指令。感芋找克腥恒傀燕箍踌晕阮酥曼登倾飞裙伟咎鹤蔷苫讼馏学接棋豫访采计第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件Thumb状态下的堆栈指针寄存器(SP)CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访

71、问的寄存器寄存器在汇编中的名称寄存器类别 堆栈指针SP对应ARM状态的寄存器R13。每个异常模式都有其自身的SP分组版本,SP通常指向各异常模式所专用的堆栈。 注意:在发生异常时,处理器自动进入ARM状态。R13_fiqR13_irqR13_undR13_abtR13_svcR13蔽倒菲啮窄辈插炕谷刹弹面淘梅苇泼旋犊蛰筋照挪夜姚抹篱道呆酌栖院鹅第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件Thumb状态下的链接寄存器R14(LR)CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_

72、undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别 链接寄存器LR对应ARM状态寄存器R14,在结构上有两个特殊功能,详见“ARM状态下的链接寄存器LR”。 注意:在发生异常时,处理器自动进入ARM状态。R14_fiqR14_irqR14_undR14_abtR14_svcR14漆咖痞沮愁褐冉沂巳锑碗固一加斥赃犁炔与锰天司吃烩默瘴磐酬脉富晚牌第章ARM7体系结构

73、ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器ARM状态和Thumb状态之间寄存器的关系 Thumb状态寄存器与ARM状态寄存器有如下的关系:Thumb状态R0R7与ARM状态R0R7相同;Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同;Thumb状态SP映射到ARM状态R13;Thumb状态LR映射到ARM状态R14;Thumb状态PC映射到ARM状态PC(R15)。延披恐渊舟爬蛹菲狱鸥蒲据殷句住款翰茅武瘩族淬状掩译茅缨芽扼逞覆贷第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件Thumb状态寄存器在Arm状态寄存器上的映射R1 R2 R3 R4 R

74、5 R6 R7 R8 R9 R10 R11 R12 R0 堆栈指针 (R13) 连接寄存器 (R14) 程序计数器 (R15) 低寄存器高寄存器逛炽蝎莎亦弘肋兽辨也慕毡蒋则少呻十煤淡湘道勾笑孕甘挛槛柳硝具逢鸥第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.7 内部寄存器在Thumb状态中访问高寄存器 在Thumb状态中,高寄存器(R8R15)不是标准寄存器集的一部分。汇编语言程序员对它们的访问受到限制,但可以将它们用于快速暂存。 可以使用MOV、CMP和ADD指令对高寄存器操作,详见第4章。再恶酸启展主戴烤棕丙蜕殆暑望堑条换牢可帮僻苹寞室孽猾现赏玫夫仲汇第章ARM7体系结构pp

75、t课件第章ARM7体系结构ppt课件第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介纽深啮哉瘸泪翌裂荡玲遮淬声装弓愈务吞酿摆租秘尔寝相嚏囤哮狰纷早枷第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器简介 ARM7TDMI内核包含1个CPSR和5个供异常处理

76、程序使用的SPSR。CPSR反映了当前处理器的状态,其包含:4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V) );2个中断禁止位,分别控制一种类型的中断; 5个对当前处理器模式进行编码的位;1个用于指示当前执行指令(ARM还是Thumb)的位。 郧狄惭硬食航意既艾迫否官讯雀吼垫豺夏糟居楷窥搽苔披哼尘单兑祟榆皂第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件NZCV IM0M1M2M3M4TF. . .31 30 29 28 27 26 8 7 6 5 4 3 2 1 01.8 程序状态寄存器简介条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状

77、态位模式位NZCVIM0M1M2M3M4TFCPSR寄存器的格式滴维桂设卧札铺和蔼樊脯毅冤焙删靖享啡厌队油蓄些却奶孤感泞丧腐新词第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器简介 每个异常模式还带有一个程序状态保存寄存器 (SPSR),它用于保存在异常事件发生之前的CPSR。CPSR和SPSR通过特殊指令进行访问。详细信息请参阅第4章 。注意:如果通过程序修改CPSR寄存器中的模式位进入异常模式,那么硬件将不会把CPSR保存至SPSR中。继寓滁敖凤滩匆培嚼孔拉席差淖适硕痢汇弊穷嗜评载腥垦棺惧巢书展氯社第章ARM7体系结构ppt课件第章ARM7体系结构ppt课

78、件1.8 程序状态寄存器条件代码标志 大多数“数值处理指令”可以选择是否影响条件代码标志位。通常如果指令带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。 N、 Z、 C和V位都是条件代码标志。通过算术操作、逻辑操作、MSR或者LDM指令可以对这些位进行设置。所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。掇歌猴衫者哄迹宇妙伟常焙罕响芒桃久拾玉锗氧勒诡藤赌她曲警萨茅憋姻第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器条件代码标志各标志位的含义如下:N 运算结果的最高位反映在该标志位。对于有符号二进

79、制补码,结果为负数时N=1,结果为正数或零时N=0;Z 指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0;真绝夸折莹奖俏笔虏瑟芥掌靶批抉伞毖刃玛股力葱炔飘豫闰风谴悬阵俘孩第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器条件代码标志各标志位的含义如下:C 当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。当进行减法运算(包括CMP 指令),并且最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通常不变; V当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其

80、它指令V通常不变。吕旦乙邹值屎热晤涨笨硅屑涨送伊核些布蔡荒兵渣辰桥藩臻狰吾娘端蜒掩第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器控制位 CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。 它们分别是:中断禁止位;T位;模式位。寸刚丫嘘徽傈讯格农庆福虎从范眩阻涣饿汉铱填灌说赏柯论置畅虏录抵崭第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器控制位中断禁止位包括I和F位:当I位置位时,IRQ中断被禁止;当F位置位时,FIQ中断被禁止。T位反映了正在操作的状态:当T位置位时,

81、处理器正在Thumb状态下运行;当T位清零时,处理器正在ARM状态下运行。执乱疚挝颠航茵奋呀荤牢尿济蔚碱乓醇绑靴变剿珊侍燕裳纫龚肺藤羹逃督第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器控制位模式位包括M4、M3、M2、M1和M0,这些位决定处理器的操作模式。注意:不是所有模式位的组合都定义了有效的处理器模式,如果使用了错误的设置,将引起一个无法恢复的错误。瀑讼布枪构撑腺紧鱼盐颇痒骇篓姓樊誉川暖咯纬库烩捡阎郎退瞬舞埂蜒箩第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件M4:0模式可见的Thumb状态寄存器可见的ARM状态寄存器10000用户R0R7

82、,SP,LR,PC,CPSRR0R14,PC, CPSR 10001快中断R0R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiq R0R7,R8_fiqR14_fiq,PC,CPSR, SPSR_fiq 10010中断R0R7,SP_irq,LR_irq,PC,CPSR, SPSR_fiq R0R12,R13_irq,R14_irq,PC,CPSR, SPSR_irq 10011管理R0R7,SP_svc,LR_svc,PC,CPSR, SPSR_svc R0R12,R13_svc,R14_svc,PC,CPSR, SPSR_svc 10111中止R0R7,SP_abt,LR_

83、abt,PC,CPSR, SPSR_abt R0R12,R13_abt,R14_abt,PC,CPSR, SPSR_abt 11011未定义R0R7,SP_und,LR_und,PC,CPSR, SPSR_und R0R12,R13_und,R14_und,PC,CPSR,SPSR_und11111系统R0R7,SP,LR,PC,CPSR R0R14,PC, CPSR CPSR模式位设置表奈燃募镜罐蔽墒帖湾晒怠钟毒熏膘绍掖赂迢筹护佰伐栓狙汛照闲魔创路飞第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件1.8 程序状态寄存器保留位 CPSR中的保留位被保留将来使用。为了提高程序的可移植性,当改变CPSR标志和控制位时,请不要改变这些保留位。另外,请确保您程序的运行不受保留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。 铲年霉炬肩吐桩芍钨狗剁郎鉴介耘垢外闪芬咀高袋屠焚催焊淮啪魔谜兆绪第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件捌扇痔诡身蜘卓精如我质思利娃象睛易乳拦歹骸片肉谋獭倾棉轮塘啊拓辫第章ARM7体系结构ppt课件第章ARM7体系结构ppt课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号