付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章ARM体系结构ARM简介ARM7TDM1ARM的模块、内核和功能框圏ARM处理翠状态ARM处理翠模式ARM内部寄存彖当前程序状态寄存器ARM体糸的异常、中斯及其向量表ARM体糸的存赭糸统2.1 ARM简介2.1.1 ARM公司简介ARM是Advaneed RISC Machines 的缩写, 它是一家撤处理彖行业的知名企业,该企业设计 了大董壽性能、廉价、耗能低的RISC r精简指 令集丿处理翠。ARMa司的特点是只段计芯片,而不生产。 它将技术授权给世界上许多箸名的半导体、轶件 和OEM厂商,并提供服务。2.1.1 ARM公司简介i
2、nyi MEM|eOZY月将技术授权给其它芯片厂商 I | LGJT形成各A特色的ARM芯、片Power/Power PC 9%MIPS6%X86 21%ARM 63%在目前的嵌入式系统开发中,你选用的是基于以下哪种架构的 芯片? SH3/SH41%2.1.2 RISC结构特性RISC是精简指令集计算机的缩写,其目标 是设计出在壽时钟频率下单周期执行,简单而有 败的指令集。ARM内核采用RISC体糸结构,因 此具有RISC的结构特点:具有丸量的通用存储雰; 独特的装载/無存load-storeJ结构;简单的寻址模式;统一和固定長度的指令格式。 ARM体系结构为了使ARM能够更好地满足战入式应用
3、的需 要,ARM体糸结构还甫以下特点:每条数据处理指令可同肘包令算术遊辑单元CALUJ 的运算和移住处理,卖现ALU和移住彖的最丸利用;使用地址自增和自减的寻址方无优化程序循环;裝我/>»存指令对数据的找量传输,卖现最大数据 乐吐量;大多数指令的条件执行,实现最快速的代码执行。2.1.3常用ARM处理器系列ARM公司开发了很多糸列的ARM处理彖核, 当蔚应用比较多的ARM处理彖核糸列有:ARM7 糸列、ARM9糸列,ARM 10糸列、ARM 11糸列、 intel的Xscale糸列和MPCore糸列。目前最新的糸列是Cortex,而ARM6核以及更 早的糸列己经很罕见了。下面主
4、要对ARM7糸列核做简单介绍。ARM7系列简介该糸列包括ARM7TDML ARM7TDMIS、 带有壽速缓存处理薜宏单元的ARM720T和犷充 了 Jazelle的ARM7EJ-S。该系刊戏理彖提供 Thumb 16住压缩指令集和EmbededlCE轶件调试 方式,迨用于更大规棋的SoC设计中。ARM7糸列广泛应用于多嫖体和嵌L入式设备, 包括Internet设备,网 络和调制解调 器设备,以 及移动九话、PDA等无线设等。2.2 ARM7TDMI2.2,1简介ARM7TDMI是基于ARM体糸结构V4版本的低 端ARM核。其弥补了 ARM6很难在低于5V电压下 稳定工作的不足,还增加了后缀所对
5、应的功能: 垃蠢:“ARM核”幷非芯片,ARM核与其它部件如RAM. ROM.片 内外殳组合衣L一起.才能构成现卖的怎片。ARM7TDMI-S ARM7TDMI 的可侏合(synthesizable丿 极本(软核丿,对应用工程坪来说其僞 程糕型与ARM7TDMI -玫; jUEmbededlCE 观余硬件;支持64住柬出;支持片上调发5 支持离®皮16住的Thumb指令集;222存储器的字与半字由于ARM处理發使用冯.诺很曼结构,指令和 数据共用一条32住总线,因此只有装载、存储和 交换指令可以对存储彖中的数据进行访问。ARM处理器直接支持8住的字节、16住的半 字或者32住字的数据
6、类型,其中以能彼4整除的地 址开始连续的4个字节构成一个字,字的数据类型 为4个连续的字节。从偶数地址开始连续的2个字 节构成半字,半字的数据类型为2个连续的字节。ARM指令的長度创好是1个字,Thumb指令 的长度创好是半个字。存儲麥的存儲方式:如果一个教据是从偶地址开始的连续存赭,即 么它就是半字对齐,否则就是非丰字对齐;如果一个数据是以能彼4整除的地址开始的连 续存赭,即么它就是字对齐,否则就是非字对齐。方式丰字对齐字对齐地址0x40020x40040x40040x4008特征Bit0=0Bitl=0,Bit0=0其他住为任惫值其他住为任意值223三级流水线ARM处理發使用流水线来增加处
7、理翠指令洗 的速度,这样可使几个操作同对进行,幷使处理 和存储彖糸统连续操作,能提供0.9MTPS/MHZ的 指令执行速度。ARM7TDMI的流水线分3级,分别为:取指豊、译码譯,执行】处理指令并将结果写®芳存赛 一识别将要彼执行的指令 人奇存專裝栽一条指金正常操作过程中,蛊执行一条指令的同肘对下 一条(第二条)指令进行译码,并将第三条指令从存 儲彖中取出。在ARM状态下,流水线上各指令的地址为: 在Thumb状态下,流水线上各指令的地址为:PCPCPC4PC2PC-8PC4三级流水线结构的指令执行顺序程序存储器周期1 周期2周期3周期4周期5周期6取指译码执行指令的三个卧我Si取指
8、译码执行取指译码执行取指译码执行处理段轨行一条O息第豹“卿2 fflc翔询叱圈1期栅稣 賞辭陨,开輻越赛删鋒 琨義段狸取出指令3。2.3 ARM的模块内核和坊能框图MEmbeddedICE-RT推宏单兀2DBGRNG(O) DBGRNG 一 DBGEXT(0)f DBGEXT f-EmbedTCE? 件仿真功能模 f一块LOCK WRITE SIZEIkO P ROT 1:0 TRANS 1:0 ADDR31:Q V匚M亠坤链CPUWDATA(31:0 器 总蛀线RDATA31;0DBGTCKEN DBGTMS DBGnTRST DBGTDI DBGTDOEmbeddedlCE-RT TAP控
9、制JSARM功能框图时钟-£中断总线控制仲裁CLKEN-nIROnFIQnRESET.CFGBIGEND .MORELOCKOeGINSTRVAILDoboAoOBOBAEAK . DBQACKD&GneXECDBGEXTin OBGEXTIOl DBOENDORNOillDeORNQiO)DBQCOMMRXD9GCOMMTXCLKARM7TDMI-S处理器JOBG'MS.DBGP.DBQnTRSTDBQ'DO OBGnTOOENADDRt31:OLWDATAi3li)1.ROATAI31:01ABORTWRITE SIZEI1:0| :pRom TRAWSI
10、lrOlCPnTRANS.CPnOPC CPnMREQ.CPSEQ -CPTBIT -CPnl.CPA:UK«OBQPKEN同步的扌1描调 试访问接口存储器接u存储器符理接口协处理器接口ARM内核框图CLK CLF.N CFGBIGEND nIRQ nFlQ nRESET ABORT LOCK WRITE S1ZEI:O|P ROT(I:OI TRANStl:O|DBG输出 DBG输入 CP控制 CP 押T-2.4 ARM处理翠状态-处理器状态ARM7TDM1处理彖内核包含2套指令糸统,分 别为ARM指令集和Thumb指令集,并且各自对应1 种处理聚的状态:叭RM状态:32住,处理彖
11、埶行字方式的ARM指 令,处理彖默认为此状态;Thumb状态:16住,处理器执行半字方式的 Thumb指令。注意:两个状态之问切换并不影响处理彖棋无或奇存彖内家。状态切换的一个例了使用BX指令将ARM内核的操作状态在ARM状 态和Thumb状态之间进行切换。从AR M状态切换fd Thumb状态的程序代码如下:LableCODE16MOV R1,#12程序代码CODE32 LDR R0,-跳41地址标号地址最低箔1, 表示切換刊 Thumb状志轨41羸X指令,处.、 理晟切换刊Thumb 状态,开好轨行 JThumb希令状态切换的一个例了使用BX指令将ARM内核的操作状态在ARM 状态和Thu
12、mb状态之间进行切换。从Thumb状态切挨列ARM状态的租序代码如下:tableCODE16LDR RO, =LableCODE32MOV R1,#10程序代码地址录低住为 0.表示切换刊ARM状态指金.处、理壬切换列ARM秋开始轨行ARM丿2.5 ARM处理器模式-简介ARM体糸结构支持7种处理彖模式,分别为: 用户筷式、快中斯模式、中斯模式,管理模式, 中止棋式、未良义棋式和糸统模式。这样的好处 是可以更好的夾持操作糸统并提壽工作效率。ARM7TDMI完全夾持这七种模式。-处理器模式除用户棋式外,其它棋式均为特权模式。ARM内部寄存麥和一些片内外设在硬件设计上只 允许C或者可选为只允许丿特
13、权棋式下访问。此 外,特权模式可以自由的切换处理彖模式,而用 户模式不能直接切换到别的模式。处模式说明备注用户(U$ljlEWWJrUff的工作«式不能何捲从用户模式切换到氏它枳式权jfifl£(sys)用F支打作象统的符权任务等WU户模犬类fct fluumr以ft接w换到兀它成竽符权快中斯(Hq)快速中斷请求处用只冇(TFIQ丹常响臧肘才进入此模真中断(irq)WWW求处理只仃dHRQ片需响W时.才进入此模式ffPPfsvc)供作系统tt用的种保护模式只冇金系统复位和轶件中新响血対才进入此模氏中 il.(abt)用F*拟内"和/或"»保护e
14、ARM7内桟中没令纟人用处未疋义(und)支持软件仿貞的件协处理S只“圧未定义拆令汗常响应肘.才退入此楼式-处理器模式以下这五种棋式称为异帝樸无0它们除了可以 通过程序切换进入外,也可以由特定的异常进入。 多特定的异$'出现肘,处理彖进入相应的模式。每 种异常模式都有一些独立的壽存寡,以逹免异常遥 出肘用户棋式的状态不可靠。处941模式说明备注nr-(usoin*稈序运行的rflHS式不能rt按从用八模成切换卅K它摸式恃 权式瑕统(即$)用r支持慄作不统的待权任务竽WU户式炎fcU (lUUjnJ以rt接切换到其它Hbp笞倚权快中Ki(hq)快途中ww求处理只何在FIQ片堆响应时.才进
15、入此模式'l'Wr(irq)'PWfifi求处理只仃在口0片响应时.才进入此模式if 理(SVC)供慄作不统便用的种保护式只灯金麻统鬼位和轶件叩斷响应时才退入此兀中 j|:(abt)用于说拟内亦和/或存WHS保护祚ARM7内中没iikm处未宜义(und)支持软件仿«的«件协处理5«只旳任未定义折令响AY时才进入此«式-处理器模式何肘进入异常模式,具体规是如下: 处理器复住之后进入管理模式,操作糸统内核通 密处于警理楼式; 当处理器访问存儲彖失败肘,进入数据访问中止 模式;多处理黑遇列没有X义或不支持的指令肘,进入 未X义模式; 中
16、斯模式与快速中斯摸式分别对ARM处理發2种 不同级别的中斯作出响应。2.6 ARM内部寄存器简介f5LARM理彖内部共37个用户可访何的寺 存彖,分别为31个通用32住奇存發和6个状态寺 存器'OARM处理彖共有7种不同的处理彖栈式,每 种模式都有一组相应的寄存彖组,最多可以18个 活动的寄存器。各种模式下具体能够访问邓些寄存彖完全取 决于当前的处理發模式。ARM状态各模式下的寄存器«存在汇各模式下实际访问的存1类别壊中的名*用户 1系统管理中止未定义中斷快中新R0(a1)R0R1(a2)R1R2(a3)R2W4)R3R4vl)R4所右的27金壽AS.R5分成两大类:R6R7
17、R6RSJiqR9R9JiqR10R10 ttqb个状.态奇存彖。R11RlljiqR12(IP)R12R12JlqR13(SP)R13R13 scvR13 abtR13 undR13JrqR13qR14(LR)R14R14JVCR14 ablR14 undR13JrqR14 fiqR15(PC)R15CPSRCPSPSPSR-SPSR SVCSPSR abtSPSR undSPSR IrqSPSRJIqARM状态各模式下的寄存器寄存s 类别«存在汇 «中的名粽各模式下实际访S的存用户1系统1*911中ih 1未逞义中快中斷R0(a1)R0R1(a2)R2(a3)R1R2R
18、34)R3R4vl)R4R5<v2)R5R6(v3)R6R7(v4)Rd<vS)R7R6Rd JlqR9<SB.v6)R9R9JlqR10(SUv7)R10RIOJlqR11(FP,v8)R11RlljiqR12(IP)R12R12JlqR13(SP)R14(LR)R13R13_svcR14R14 svcR13_at;tR13_undR13JrqR13JlqR14 attR14 undR14讯R14JlqR15(PC)R15状s «存CPSRCPSPSPSR-1 SPSR SVC 1 SPSR abt | SPSR undSPSR irqSPSRJiqARM内部寄存
19、器 ARM状态下的寄存器2. 一般的通用奇存彖R0R7为保存数据和地址的通用寄存發,柱 各楼式下完全通用;R8R14对应的杨理寺存器取决于多前处理器 模式,几乎所有允许使用通用寺存麥的指令都允 许使用R8R14 ;R8R12有2组不同的杨理寺存彖,其中一组 用于FIQ,以加速中断处理。ARM内部寄存器*#» 类别«存在汇 M中的名称各模式下实际访何的ffa用户I»a I中止未定义中新快中斷R0(a1)'ROR1(a2) 甫* 4 歹*/ 刃不R1R233)分组的通用寺存春,R2R3R4(vl) 匕们社仕4划处理為俱R4R5(v2)式都对应于相同的32R5a
20、必理火A »R6R7(g) 1E>R7R8(vS)R8RSJiqR9(SB.ve>R9R9JiqR10(SUv7)RIORlOJIqRll(FP,ve)R11RlljiqR12(IP)R12R12JlqR13(SP)R13R13 scvR13 abtR13 urKJR13JrqR13JiqR14LR)R14R14»vcR14 aMR14 utKlR13JrqR14 fiqR15(PC)R15状态CPSRCPSRSPSR-SPSR 8VC I SPSR 8btSPSR undSPSRJrqSPSR.HqARM内部寄存器 ARM状态下的寄存器3.堆栈指针R13(SP
21、)堆栈是内存中划分出的一段存储空间,这个存 储空间就想一个数据仓,用于暂存数据。堆栈操作通証发生在子程序调用、异常发生, 用于确保虑有程序状态不彼玻坏;另外,堆栈操 作还发生在程序运行过程中寄存發数量不够肘, 用于暂肘存赭,需要肘再提取处理。堆栈结构与弹匣结构ARM内部寄存器ARM内部寄存器 ARM状态下的寄存器4.连接奇存麥R14(LR)寄存彖R14称为连接寺存彖,子程序的返曰 地址将自动地存入到R14中。ARM内部寄存器各模式下实际访问的类别状态R0(a1)R1(a2)R2(a3)R 3(«4)R4(v1)R5(v2)R6(v3)R7(v4)R8(vS)R9(SB.ve)R10(
22、SUv7)Rll(FP,ve)R12(IP)R13(SP)R14LR)R15(PC)CPSR用户 I 蔡娥 I警gI 中止 I 未定义 I 中斷 1 快中斷R0R1R2奇存器R14称为縫撰序存器fLR;, 在结构上有两个特珠功能:当使用BL指令调用子程序肘,遞回 地址将自动存入R14中;当发生异常肘,将R14对应的异常 構无版本谡置为异常返回地址(有 些异常有一个小的SI走偏移量丿OR14SPSRRSJiqR9JlqRlOJIqRlljiqR12JlqR13Jiq-Iw卜厶qFn4vc I R14bt I RlUnd R1 jqR15CPSRSPSRvc I SPSR-血 I SPSR.sd
23、| SPSR.Irq | SPSRJIqARM内部寄存器-R14与子程序调用0«l4 阳阀髀冏 磁諦 雜溥由,凉舷处妬 将 逖BL段淹曲:'希令的下一条指令所地址存入R14;ARM内部寄存器-R14 W异常发生异常发生肘,程序要跳無至异常服务程 序,对遞曰地址的处理与子程序调用类似, 彳是由硬件完成的。区别农于有些异常有 一个小常量的偏移。 ARM状态下的寄存器5.程序计数彖R15(PC)奇存發R15椽存程序计数麥(PC),即就是说 总是指向正亦“取指”的指令。ARM内部寄存器读 R15正常操作肘,从R15读取的值是处理器正柱取 指的地址,即參話正衣轨行指令的地址加上8个 字
24、节(两条ARM指令的长度丿。由于ARM指令总 是以字为单住,所以R15寺存器的最低两住总是 为0。地址程序代码流未线状态PC8LDRR0, PC正A执行PC4777 正层译码PC777 正层取描ARM内部寄存器读 R15当使用STR或STM指令侏存R15肘,会有一个 例外。这些指令可能将当前指令地址加8字节死 加12字节椽存I将来可能还有其它数字丿。偏移 量是8还是12取决于具体的ARM芯片,但是对于 一个确走的芯片,这个值是一个常量。所以最好避免使用STR和STM指令来保存R15, 如果很唯做列,那么应当疫程序中计算出该芯片 的偏移量。读 R15计算偏移量程序代码:SUBR1,PC,#4;R
25、1 =下® STP.S令的地址STRP C,R0侮存STR指冷也址+僞秒洼LDRRO,RO;滋用龙裝SUBRO,RO,R1;计算僞秒受ARM内部寄存器写 R15正常操作时,写入R15的值彼多作一个指令 地址,程序从这个地址处继续执行C相当于执 行一次无条件跳转丿。由于ARM指令以字方式对齐,因此写入R15 的值最低两住通常为ObOO; Thumb指令以半字 方式对齐,因此写入R15的值先与“Oxffff fffe做 与操作”,再写入R15中。 ARM状态下的寄存器6. CPSR和SPSR所有模式全部共享一个程序状态寄存彖 rCPSRJ , ARM内核通过CP5R来监控内部操作。每种异
26、常棋式都有相应的5PSR,用于椽存 CPSR的多前值的务份。ARM内部寄存器类别«存在汇 M中的名称各模式下实际访何的ffa用户I«娥I*9I中止I 未定义 I中斷I快中祈R0(a1)ROR1(a2R1R2(a3)R2R 3(«4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)寺存彖CPSR为当話程序状态序存森,应畀常- 棋式中,另夕I、一个序存孝“程序状态椽存寺 _ 存器fSPSRJ ”可以菠访问。每种畀暫舖有 - 自己的5PSR,衣进_入异帝肘它保存CP5R的当 11值,异常遥出时可通过它恢复CPSR。-R8(vS)R9(SB.ve>R
27、10(SUv7)Rll(FP,ve)R12(IP)R13(SP)R14LR)R15(PC)R15状态CPSRCPSRSPSR一1 SPSR”c 1 SPSR Bbl 1 SPSR und | SPSR irq SPSR flq-Thumb状态下的寄存器1各模式下实际访问的寄存彖Thumb状羔奇存彖集是ARM状羔集的子集, 程序员可以直接访问的寄存器为:8个通用寺存麥R0R7;堆栈指针(SP); 链接寺存翠riR; 程序计教器(PC); 当前程序状态奇存彖r CPSR丿OARM内部寄存器-Thumb状态各种模式下的寄存器«存«存在汇 M中的名你各樓式下实际访何的存用户1 «境 1«理1 中止 1 未定义 1中斷1快中斷R0(a1)R0R1R1(a2)R2(3)R2R3R3(a4R4(v1)R4R3(v2)R5R6(v3)R6R7n7(v4,WR)SP在汇编语T中寄存彖R0R7为通用奇存 春,对于任何处_理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西师范高等专科学校工作人员招聘考试试题
- 2025江苏省海安中等专业学校工作人员招聘考试试题
- 太阳能光伏安装专项施工方案
- 圆管涵首件施工指导书
- 卵石水系专项施工方案
- 2026年生物传感器疾病早期检测报告
- 文言文机器翻译系统在初中文言文音韵学教学中的应用课题报告教学研究课题报告
- 初中历史文物修复中电磁学原理的金属文物修复课题报告教学研究课题报告
- 董事会成员聘任合同书合同三篇
- 2026年工程承包合同二篇
- 2026年江苏南京市高三二模高考物理试卷试题(含答案详解)
- 第13课 每个人都有梦想 课件(内嵌视频)2025-2026学年道德与法治二年级下册统编版
- C语言程序设计97871132952400000(1-1)
- 篮球比赛记录表(通用)
- 金属材料的基础知识
- 煤矿在用主通风机系统安全检测检验规范
- GB/T 19001-2016质量管理体系要求
- MCGS 项目7:组态应用实例
- GA/T 1494-2018路面结冰监测系统通用技术条件
- FZ/T 52039-2014再生聚苯硫醚短纤维
- 徐霞客人物介绍分析课件
评论
0/150
提交评论