《嵌入式系统 课件 ARM微控制器基础与实战334962.pptx》由会员分享,可在线阅读,更多相关《嵌入式系统 课件 ARM微控制器基础与实战334962.pptx(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章章 ARM体系结构体系结构 参考书:ARM嵌入式处理器结构与应用基础马忠梅,马广云,徐英慧,等北京航空航天大学出版社121 ARM体系结构概述体系结构概述2 21 11 ARM1 ARM体系结构的特点体系结构的特点0 0、概述:、概述:qARMARM公司公司ARMARM即即Advanced RISC MachinesAdvanced RISC Machines的缩写。的缩写。ARMARM公公司司是是知知识识产产权权(IP)(IP)供供应应商商,成成立立于于19901990。ARMARM公公司司本本身身不不生生产产芯芯片片,靠靠转转让让设设计计许许可可,由由合合作伙伴公司来生产各具特色的
2、芯片。作伙伴公司来生产各具特色的芯片。ARMARM作作为为3232位位嵌嵌入入式式RISCRISC微微处处理理器器业业界界的的领领先先供供应应商商,商商业业模模式式的的强强大大之之处处在在于于它它在在世世界界范范围围有有超超过过100100个个合合作作伙伙伴伴包包括括半半导导体体工工业业的的著著名名公公司司,从从而而保保证证了了大大量量的的开开发发工工具具和和丰丰富富的的第第三三方方资资源源,它它们们共共同同保保证证了了基基于于ARMARM处处理理器器核核的的设设计计可可以以很很快快投入市场。投入市场。2pARMARM处理器的处理器的3 3大特点是:大特点是:耗电少,成本低,功能强;耗电少,成
3、本低,功能强;16163232位双指令集;位双指令集;全球众多合作伙伴保证供应。全球众多合作伙伴保证供应。qARMARM体系结构基于精简指令集计算机体系结构基于精简指令集计算机(RISC)(RISC)原理。原理。v传统的传统的CISCCISC指令集计算机随着计算机的发展引入了各种各指令集计算机随着计算机的发展引入了各种各样的复杂指令样的复杂指令,使得指令集和为实现这些指令的计算机体系使得指令集和为实现这些指令的计算机体系结构越来越复杂结构越来越复杂,已经不堪重负。已经不堪重负。v经过大量的研究和分析经过大量的研究和分析,发现在发现在CISCCISC的指令集中的指令集中,各种指令各种指令的使用频
4、度相差悬殊。的使用频度相差悬殊。大概有大概有20%20%的指令被反复使用的指令被反复使用,使用量约占整个程序的使用量约占整个程序的80%;80%;而有而有80%80%左右的指令则很少使用左右的指令则很少使用,其使用量约占整个程序其使用量约占整个程序的的20%20%。这就是所谓的这就是所谓的20%80%20%80%规律规律。3pRISCRISC指令集和相关的译码机制比复杂指令集计算机指令集和相关的译码机制比复杂指令集计算机(CISC)(CISC)的设计更简单。这种简单性得到了:的设计更简单。这种简单性得到了:高指令吞吐率;高指令吞吐率;出色的实时中断响应;出色的实时中断响应;体积小、性价比高的处
5、理器宏单元。体积小、性价比高的处理器宏单元。p1616位位ThumbThumb指令集,允许软件指令集,允许软件1616位编码使占用的存位编码使占用的存储器空间节省高达储器空间节省高达3535,然而保留了,然而保留了3232位系统所有位系统所有的优势。的优势。4qARMARM还提供了两个前沿特性还提供了两个前沿特性嵌入式嵌入式ICERTICERT逻辑和逻辑和嵌入式跟踪宏核系列,用于辅助嵌入式处理器核的、嵌入式跟踪宏核系列,用于辅助嵌入式处理器核的、高集成的高集成的SoCSoC器件的调试。允许在代码的任何部分器件的调试。允许在代码的任何部分甚至在甚至在ROMROM中设置断点。中设置断点。qARMA
6、RM当前有当前有5 5个产品系列:个产品系列:ARM7ARM7、ARM9ARM9、ARM9EARM9E、ARM10ARM10和和SecurCoreSecurCore。q进一步的产品来自于合作伙伴,例如进一步的产品来自于合作伙伴,例如Intel XScaleIntel XScale微微体系结构和体系结构和StrongARMStrongARM产品。产品。51ARM的的RISC型处理器结构型处理器结构q中央控制器没有采用微程序的方式。采用了硬接线中央控制器没有采用微程序的方式。采用了硬接线PLAPLA的方式。的方式。q减少复杂功能的指令,选用使用频度最高的指令;减少复杂功能的指令,选用使用频度最高的
7、指令;q简化处理器的结构,减少处理器的集成度;简化处理器的结构,减少处理器的集成度;q采用采用3232位定长指令。除了单机器周期执行位定长指令。除了单机器周期执行1 1条指令外,条指令外,每条指令具有多种操作功能,提高了指令使用效率。每条指令具有多种操作功能,提高了指令使用效率。q采用流水线结构,使每一条指令平均在一个机器周期采用流水线结构,使每一条指令平均在一个机器周期内完成,以提高处理器的速度。内完成,以提高处理器的速度。q采用多寄存器的结构,使指令的操作尽可能在寄存器采用多寄存器的结构,使指令的操作尽可能在寄存器之间进行。之间进行。q采用采用LoadLoadStoreStore结构,即只
8、有结构,即只有LoadLoadStore(Store(加载存加载存储储)指令可与存储器打交道,减少访问存储器的频度,指令可与存储器打交道,减少访问存储器的频度,节约指令执行时间。节约指令执行时间。q为了进一步提高指令和数据的存取速度,有的还增为了进一步提高指令和数据的存取速度,有的还增加指令快存加指令快存ICacheICache和数据快存和数据快存DCacheDCache;62Thumb指令集指令集q新型新型ARMARM体系结构在体系结构在3232位指令集的基础上位指令集的基础上又定义了又定义了1616位的位的ThumbThumb指令集,可以使程指令集,可以使程序存储器更小。序存储器更小。Th
9、umbThumb指令集比通常的指令集比通常的8 8位和位和1616位位CISCCISCRISCRISC处理器具有更好的处理器具有更好的代码密度,而芯片面积只增加代码密度,而芯片面积只增加6 6。73 3多处理器状态模式多处理器状态模式qARMARM可以支持可以支持7 7种处理器模式:种处理器模式:用户模式用户模式快中断模式快中断模式中断模式中断模式管理模式管理模式中止模式中止模式系统模式系统模式未定义模式未定义模式q除了用户模式外,其余的均为特权模式。这是除了用户模式外,其余的均为特权模式。这是ARMARM的的特色之一。多处理器模式可以大大提高特色之一。多处理器模式可以大大提高ARMARM处理
10、器的处理器的效率,并方便操作系统的设计。效率,并方便操作系统的设计。84嵌入式在线仿真调试嵌入式在线仿真调试qARMARM体系结构的处理器芯片都嵌入了在线仿真体系结构的处理器芯片都嵌入了在线仿真ICERTICERT逻辑逻辑q由于由于ICERTICERT逻辑的支持,便于通过逻辑的支持,便于通过JTAGJTAG来仿真调试来仿真调试ARMARM体系结构芯片,从而可以省去价格昂贵的在线仿体系结构芯片,从而可以省去价格昂贵的在线仿真器。真器。q在处理器核中还集成了嵌入式跟踪宏单元(在处理器核中还集成了嵌入式跟踪宏单元(ETMETM),),ETMETM可以用于监控内部总线,实时跟踪指令和数据的可以用于监控
11、内部总线,实时跟踪指令和数据的执行。执行。95 5灵活和方便的接口灵活和方便的接口qARMARM体系结构具有协处理器接口,这样,既可以使基体系结构具有协处理器接口,这样,既可以使基本的本的ARMARM处理器内核尽可能小,又可以方便地扩充各处理器内核尽可能小,又可以方便地扩充各种功能。种功能。ARMARM允许接允许接1616个协处理器。个协处理器。qARMARM处理器核具有片上总线处理器核具有片上总线AMBA(Advanced Micro AMBA(Advanced Micro controller Bus Architecture)controller Bus Architecture)。qA
12、MBAAMBA定义了定义了3 3组总线:组总线:先进高性能总线先进高性能总线AHB(Advanced High performance Bus)AHB(Advanced High performance Bus);先进系统总线先进系统总线ASB(Advanced System Bus)ASB(Advanced System Bus);先进外围总线先进外围总线APB(Advanced PeripheralAPB(Advanced Peripheral Bus)Bus)。q通过通过AMBAAMBA可以方便地扩充各种处理器及可以方便地扩充各种处理器及I IO O,这样,这样,可以把可以把DSPDSP
13、、其他处理器和、其他处理器和I IO O接口接口(如如UARTUART、定时器、定时器和接口等和接口等)都集成在一块芯片中。都集成在一块芯片中。106、低电压低功耗的设计、低电压低功耗的设计q由于由于ARMARM体系结构的处理器主要用于手持式嵌入式系统之中,体系结构的处理器主要用于手持式嵌入式系统之中,ARMARM体体系结构在设计中十分注意低功耗问题。系结构在设计中十分注意低功耗问题。qCMOSCMOS电路的功耗关系:电路的功耗关系:Pc=(1/2)fVPc=(1/2)fVDDDD2 2AgCLgAgCLg 式中,式中,f f为时钟频率;为时钟频率;V VDDDD为工作电源电压;为工作电源电压
14、;AgAg是逻辑门在是逻辑门在1 1个时钟个时钟周期内翻转的次数周期内翻转的次数(通常为通常为2)2);CLgCLg为门的负载电容。因此,为门的负载电容。因此,ARMARM体体系结构的设计采用了以下措施:系结构的设计采用了以下措施:降低电源电压,可工作在降低电源电压,可工作在3 30V0V以下。以下。减少门的翻转次数,当某个功能电路不需要时,禁止门翻转。减少门的翻转次数,当某个功能电路不需要时,禁止门翻转。减少门的数目,即降低芯片的集成度。减少门的数目,即降低芯片的集成度。降低时钟频率降低时钟频率(但也会损失系统的性能但也会损失系统的性能)。11212 ARM处理器结构处理器结构1 1ARMA
15、RM体系结构体系结构q是是ARMARM体系结构:体系结构:v3232位位ALUALU;v3131个个3232位通用寄存器位通用寄存器v6 6个状态寄存器个状态寄存器v328328位乘法器位乘法器v32323232位桶形移位寄存器位桶形移位寄存器v指令译码及控制逻辑指令译码及控制逻辑v指令流水线指令流水线v数据地址寄存器。数据地址寄存器。如图如图4141所示所示12FIG4-1132ARM的流水线结构的流水线结构p计算机中的计算机中的1 1条指令的执行可以分若干个阶段:条指令的执行可以分若干个阶段:取指,从存储器中取出指令取指,从存储器中取出指令(fetch)(fetch);译码,指令译码译码,
16、指令译码(dec)(dec);取操作数,假定从寄存器组中取操作数取操作数,假定从寄存器组中取操作数(reg)(reg);执行运算执行运算(ALU)(ALU);存储器访问,操作数与存储器有关存储器访问,操作数与存储器有关(mem)(mem);结果写回寄存器结果写回寄存器(res)(res)。各个阶段的操作相对都是独立的。因此,采用流水线各个阶段的操作相对都是独立的。因此,采用流水线的重叠技术可以大大提高系统性能。的重叠技术可以大大提高系统性能。14pARM体系结构的单周期体系结构的单周期3级流水线级流水线 图图45 ARM单周期单周期 3级流水线级流水线取指取指译码译码执行执行取指取指译码译码执
17、行执行取指取指译码译码执行执行时间时间123153ARM存储器结构存储器结构ARMARM架构的处理器,有的带有指令架构的处理器,有的带有指令CacheCache和数据和数据CacheCache,但片内不带有片内但片内不带有片内RAMRAM和片内和片内ROM ROM,因此,系统所需的,因此,系统所需的RAMRAM和和ROMROM须通过总线外接。须通过总线外接。系统所需的系统所需的RAMRAM和和ROM(ROM(包括包括Flash)Flash)都通过总线连接,由都通过总线连接,由于系统的地址范围较大于系统的地址范围较大(2(232324 GB)4 GB),有的片内还带有,有的片内还带有存储器管理单
18、元存储器管理单元MMUMMU。图48 ARM外接RAM和ROM 16图图48 ARM外接外接RAM和和ROMROMoeRAMoeRAMwe3RAMwe2RAMwe1RAMwe0A1、A0没有接入片内地址线,他们是确定RAMwe3 RAMwe0的依据。174ARM IO结构结构p ARM ARM架构中的处理器核和处理器内核一架构中的处理器核和处理器内核一般都没有般都没有I IO O部件和模块,部件和模块,ARMARM架构处理架构处理器的器的I IO O可通过可通过AMBAAMBA(先进微控制总线(先进微控制总线架构)总线来扩充。架构)总线来扩充。ARMARM架构中的架构中的I IO O直接存储器
19、存取直接存储器存取DMADMA中断结构。中断结构。18(1)(1)存储器映射存储器映射I IO Op一般的一般的I IO(O(如串行接口如串行接口)有若干个寄存器:有若干个寄存器:发送数据寄存器发送数据寄存器(只写只写);数据接收寄存器数据接收寄存器(只读只读);控制寄存器、状态寄存器控制寄存器、状态寄存器(只读只读);中断允许寄存器;中断允许寄存器;等。这些寄存器都需要相应的等。这些寄存器都需要相应的I IO O端口地址。端口地址。pARMARM采用了存储器映射采用了存储器映射I IO O的方式,即把的方式,即把I IO O端口端口地址作为特殊的存储器地址。地址作为特殊的存储器地址。19(2
20、)(2)直接存储器存取直接存储器存取DMADMAARMARM架构的处理器一般都没有架构的处理器一般都没有DMADMA部件,只有在一些高档部件,只有在一些高档的的ARMARM架构处理器中具有架构处理器中具有DMADMA的功能。的功能。(3)(3)中断中断IRQIRQ和快速中断和快速中断FIQFIQp一般的一般的ARMARM没有没有DMADMA功能,为了能提高功能,为了能提高I IO O处理能力,系统安排了快速处理能力,系统安排了快速中断中断FIQ(Fast Interrupt)FIQ(Fast Interrupt),而对普通,而对普通I IO O的中断源仍安排了一般中的中断源仍安排了一般中断断I
21、RQIRQ。p要提高中断响应的速度,在设计中可以采用以下办法:要提高中断响应的速度,在设计中可以采用以下办法:提供大量后备寄存器,在中断响应及返回时,作为保护现场和恢提供大量后备寄存器,在中断响应及返回时,作为保护现场和恢复现场的上下文切换复现场的上下文切换(Context Switching)(Context Switching)之用。之用。采用片内采用片内RAMRAM结构,这样可以加速异常处理结构,这样可以加速异常处理(包括中断包括中断)的进入时间。的进入时间。CacheCache和地址变换后备缓冲器和地址变换后备缓冲器TLBTLB(Translation Lookaside(Transl
22、ation Lookaside Buffer)Buffer)采用锁住采用锁住(Locked down)(Locked down)方式以确保临界代码段不受方式以确保临界代码段不受“不不命中命中”所产生的影响。所产生的影响。205ARM协处理器接口协处理器接口pARMARM可以通过增加协处理器来支持一个通用的可以通过增加协处理器来支持一个通用的指令集的扩充;指令集的扩充;p也可以通过未定义指令陷阱也可以通过未定义指令陷阱(Trap)(Trap)来支持协来支持协处理器的软件仿真处理器的软件仿真 。21pARM可以扩展可以扩展16个协处理器,每个协处理器可有个协处理器,每个协处理器可有16个寄存个寄存
23、器。器。MMU和保护单元的系统控制都采用和保护单元的系统控制都采用CPl5协处理器;协处理器;JTAG调试中的协处理器为调试中的协处理器为CPl4,即,即调试通信通道调试通信通道DCC(Debug Communication Channel)协处协处理器号理器号功功 能能15系系统统控制控制14调试调试控制器控制器138保留保留74用用户户30保留保留22 6ARM 的的 AMBA接口接口pARM处理器内核可通过内部总线扩充处理器内核可通过内部总线扩充Cache等部件,等部件,或通过协处理器接口扩充各种协处理器;或通过协处理器接口扩充各种协处理器;p也可以通过先进微控制器总线架构也可以通过先进
24、微控制器总线架构AMBA(Advanced Microcontroller Bus Arehitecture)来扩展不同体系架来扩展不同体系架构的宏单元及构的宏单元及IO部件。部件。pAMBA事实上已成为片上总线事实上已成为片上总线OCB(On Chip Bus)标标准。准。pAMBA有如下有如下3类总线:类总线:先进高性能总线先进高性能总线AHB(Advanced High-performance Bus);先进系统总线先进系统总线ASB(Advanced System Bus)先进外围总线先进外围总线APB(Advanced Peripheral Bus)。AMBA结构如图结构如图49所示
25、。所示。23247 7ARMARM的的JTAGJTAG调试接口调试接口p JTAG的基本知的基本知识识什么是什么是JTAG?JTAG是是Joint Test Action Group的的缩缩写,基写,基于于IEEE1149.1标标准。准。使用使用JTAG的的优优点点JTAG的建立使得集成的建立使得集成电电路固定在路固定在PCB上,上,只通只通过边扫过边扫描便可以通描便可以通过测试过测试。在在ARM7TDMI处处理器中,可以通理器中,可以通过过JTAG直接控制直接控制ARM的内部的内部总线总线,I/O口等信息,口等信息,从而达到从而达到调试调试的目的。的目的。25p JTAG调试接口的结构如调试
26、接口的结构如图图410所示。所示。测试访问端口测试访问端口TAP(Test Access Port)控制器;控制器;旁路旁路(Bypass)寄存器;寄存器;指令寄存器;指令寄存器;数据寄存器;数据寄存器;与与JTAG接口兼容的接口兼容的ARM架构处理器。架构处理器。26p处理器的每个引脚都有一个移位寄存单元,称处理器的每个引脚都有一个移位寄存单元,称为边界扫描单元为边界扫描单元BSC(Boundary Scan Cell):BSC将将JTAG电路与处理器核逻辑电路联系电路与处理器核逻辑电路联系起来,同时,隔离了处理器核逻辑电路与芯起来,同时,隔离了处理器核逻辑电路与芯片引脚;片引脚;所有边界扫
27、描单元的串联构成了边界扫描寄所有边界扫描单元的串联构成了边界扫描寄存器存器BSR;BSR寄存器电路仅在进行寄存器电路仅在进行JTAG测试时有效,测试时有效,在处理器核正常工作时无效(在处理器核正常工作时无效(直通直通)。)。27芯核逻辑芯核逻辑BSCBSCBSCBSCBSCBSC28(1)JTAG的控制寄存器的控制寄存器p测试访问端口测试访问端口TAPTAP控制器:对嵌入在控制器:对嵌入在ARMARM处理器核内部的测试功能处理器核内部的测试功能电路进行访问控制,它是一个同步状态机。通过测试模式选择电路进行访问控制,它是一个同步状态机。通过测试模式选择TMSTMS和时钟信号和时钟信号TCKTCK
28、来控制状态的转换,实现来控制状态的转换,实现IEEEll49IEEEll491 1标准所确定标准所确定的测试逻辑电路的工作时序。的测试逻辑电路的工作时序。p指令寄存器:它是串行移位寄存器,通过它可以串行输入执行各指令寄存器:它是串行移位寄存器,通过它可以串行输入执行各种操作指令。种操作指令。p数据寄存器组:它是一组串行移位寄存器。操作指令被串行装入数据寄存器组:它是一组串行移位寄存器。操作指令被串行装入由当前指令所选择的数据寄存器,随着操作的进行,测试结果被由当前指令所选择的数据寄存器,随着操作的进行,测试结果被串行移出。其中:串行移出。其中:器件器件IDID寄存器:读出在芯片内固化的寄存器:
29、读出在芯片内固化的IDID号。号。旁路寄存器:旁路寄存器:1 1位移位寄存器,用位移位寄存器,用1 1个时钟的延迟把个时钟的延迟把TDITDI连至连至TDOTDO,使,使测试者在同一电路板测试循环内访问其他器件。测试者在同一电路板测试循环内访问其他器件。边界扫描寄存器边界扫描寄存器(扫描链扫描链):截取:截取ARMARM处理器核与芯片引脚之间所有信处理器核与芯片引脚之间所有信号,组成专用的寄存器链。号,组成专用的寄存器链。29(2)JTAG测试信号测试信号TRST测试复位输入信号,测试接口初始化。测试复位输入信号,测试接口初始化。TCK测试时钟,在测试时钟,在TCK时钟的同步作用下,通过时钟的
30、同步作用下,通过TDI和和TDO引脚串行移入引脚串行移入移出数据或指令,同时也为测试访问端口移出数据或指令,同时也为测试访问端口TAP控制器的状态机提供时钟。控制器的状态机提供时钟。TMS测试模式选择信号,测试模式选择信号,在在TCK同步下控制测试接口状态机的操作。同步下控制测试接口状态机的操作。TDI测试数据输入线,其串行输入数据送至边界扫描寄存器或指令寄存器测试数据输入线,其串行输入数据送至边界扫描寄存器或指令寄存器(由由TAP 控制器的当前状态及已保存在指令寄存器中的指令来控制控制器的当前状态及已保存在指令寄存器中的指令来控制)。TDO测试数据输出线,把从边界扫描链采样的数据传播至串行测
31、试电路中的测试数据输出线,把从边界扫描链采样的数据传播至串行测试电路中的下一个芯片下一个芯片JTAG可以对同一块电路板上多块芯片进行测试。连接方法如下:可以对同一块电路板上多块芯片进行测试。连接方法如下:TRST、TCK和和TMS信号并行接至各个芯片;信号并行接至各个芯片;前前1块芯片的块芯片的TDO接至下接至下1块芯片的块芯片的TDI。30(3)TAP状态机状态机p测试访问端口测试访问端口TAPTAP控制器是一个控制器是一个1616状态的有限状态机,状态的有限状态机,为为JTAGJTAG提供控制逻辑,控制进入提供控制逻辑,控制进入JTAGJTAG结构中各种寄存器结构中各种寄存器内数据的扫描与
32、操作。内数据的扫描与操作。p状态转移图如图状态转移图如图411411所示,所示,在在TCKTCK同步时钟上升沿的同步时钟上升沿的TMSTMS引脚的逻辑电压决定状态转移的过程。引脚的逻辑电压决定状态转移的过程。p任一状态下,让任一状态下,让TMS=1TMS=1可以经可以经5 5个个TCKTCK回到复位状态。回到复位状态。p由由TDITDI引脚输入到器件的扫描信号有引脚输入到器件的扫描信号有2 2个状态变化路径:个状态变化路径:用于指令移入至指令寄存器,或用于数据移入至相应的用于指令移入至指令寄存器,或用于数据移入至相应的数据寄存器数据寄存器(该数据寄存器由当前指令确定该数据寄存器由当前指令确定)
33、。p状态图中的每个状态都是状态图中的每个状态都是TAPTAP控制器进行数据处理所需控制器进行数据处理所需要的,这些处理包括向引脚施加激励信号、捕获输入数要的,这些处理包括向引脚施加激励信号、捕获输入数据、加载指令以及将边界扫描寄存器中数据移入移出据、加载指令以及将边界扫描寄存器中数据移入移出 31状态转换发生在状态转换发生在TCK同步时钟脉冲同步时钟脉冲的上升沿的上升沿32(4)JTAG(4)JTAG接口控制指令接口控制指令p控制指令用于控制控制指令用于控制JTAG接口各种操作,包括接口各种操作,包括公用公用(Public)指令和指令和私有私有(Private)指令。最基本的公用指令有:指令。
34、最基本的公用指令有:BYPASS 旁路旁路片上系统逻辑指令,用于未被测试的芯片,即把片上系统逻辑指令,用于未被测试的芯片,即把TDI与与TDO旁路旁路(1个时钟延迟个时钟延迟)。EXTEST 片外电路测试指令,用于测试电路板上芯片之间的互连。如片外电路测试指令,用于测试电路板上芯片之间的互连。如图图411中的引脚状态被中的引脚状态被捕获捕获在在capture DR;并在;并在shift DR状态时,通状态时,通过过TDO引脚把寄存器中数据移出,同时新的数据通过引脚把寄存器中数据移出,同时新的数据通过TDI引脚移入,引脚移入,该数据在该数据在更新更新update DR状态中用于边界扫描寄存器输出
35、。状态中用于边界扫描寄存器输出。IDCODE 读芯片读芯片ID码指令,用于识别电路板上的芯片。此时,码指令,用于识别电路板上的芯片。此时,ID寄寄存器在存器在TDI与与TDO引脚之间,在引脚之间,在capture DR状态中,芯片的状态中,芯片的ID复制至复制至ID寄存器,然后在寄存器,然后在shift DR状态中移出。状态中移出。INTEST 片内测试指令,边界扫描寄存器位于片内测试指令,边界扫描寄存器位于TDI与与TDO引脚之间,引脚之间,处理器核逻辑输入和输出状态被边界扫描寄存器捕获和控制。处理器核逻辑输入和输出状态被边界扫描寄存器捕获和控制。p以上是以上是ARM架构最基本的公用指令,各
36、种处理器核可以根据需要架构最基本的公用指令,各种处理器核可以根据需要进行扩展。进行扩展。33213 ARM处理器内核处理器内核pARM体系结构的处理器内核有体系结构的处理器内核有ARM7TDMI、ARM8、ARM9TDMI、ARM10TDMI及及ARM11TDMI等。等。pARM7TDMI处理器内核处理器内核ARM7TDMI处理器是处理器是ARM7处理器系列成员之一,是目前应用处理器系列成员之一,是目前应用很广的很广的32位高性能嵌入式位高性能嵌入式RISC处理器。处理器。TDMI后缀的含义:后缀的含义:T具有具有16位压缩指令集位压缩指令集Thumb;D支持在片调试支持在片调试(Debug)
37、,允许处理器响应调试请求暂停;,允许处理器响应调试请求暂停;M增强型乘法器增强型乘法器(Multiplier),比以前处理器性能更高,产生全,比以前处理器性能更高,产生全64位结果;位结果;I提供嵌入式提供嵌入式ICE硬件,支持片上断点调试。硬件,支持片上断点调试。ARM7处理器核采用了处理器核采用了3级流水线结构,指令执行分为取指、译级流水线结构,指令执行分为取指、译码和执行等码和执行等3个阶段。个阶段。ARM7TDMI的体系结构图如图的体系结构图如图412所示。所示。34113个扫描单元:包括ARM核所有I/O引脚、地址数据总线引脚和输入输出控制引脚。33个扫描单元:数据总线D31:D0和
38、一个端点控制信号38个扫描单元:通过控制ICE宏单元,实现对ARM执行指令的断点、观察点的控制。35pARM7TDMI内核的内核的JTAG扫描链结构扫描链结构(主要(主要包括条扫描链)包括条扫描链)Scan Chain0:有有113个扫描单元个扫描单元,包括包括ARM核核的所有的所有I/O,地址数据总线和输入输出控制信地址数据总线和输入输出控制信号号.这条链上的信号复杂这条链上的信号复杂,不易控制不易控制,但是但是,包包含的信息丰富含的信息丰富,可以通过这条链得到可以通过这条链得到ARM7TDMI所有的内核信息。所有的内核信息。36Scan Chain1:有有3333个扫描单元,包括个扫描单元
39、,包括ARMARM核的核的数据数据总线总线和一个和一个断点控制信号断点控制信号。这是一条很有用的链,。这是一条很有用的链,通过控制这条链,可以控制通过控制这条链,可以控制ARMARM核执行指定的指令,核执行指定的指令,从而实现对从而实现对ARMARM的内部寄存器,协处理器以及外部存的内部寄存器,协处理器以及外部存储器的读写操作。储器的读写操作。Scan Chain2:有有3838个扫描单元,通过控制个扫描单元,通过控制EmbeddedICE宏单元,实现对宏单元,实现对ARMARM执行指令的断点、执行指令的断点、观察点控制。观察点控制。EmbeddedICE是集成在是集成在ARMARM内核的中内
40、核的中的嵌入式的嵌入式ICE防真器。通过对防真器。通过对EmbeddedICE的控制,的控制,对对EmbeddedICE中寄存器的读取,可以获得中寄存器的读取,可以获得ARMARM内内核的状态,为程序设置断点或读取核的状态,为程序设置断点或读取DebugDebug通信通道。通信通道。372 22 21 1 数据类型数据类型ARMARM处理器支持下列数据类型:处理器支持下列数据类型:ByteByte字节,字节,8 8位;(位;(A31A0)32A31A0)32位地址位地址均有效均有效.Halfword Halfword 半字,半字,1616位位(半字必须与半字必须与2 2字节边字节边界对准界对准
41、)(A31A1,0)A31A1,0)偶数地址偶数地址,A0,A0为为0 0;WordWord字,字,3232位位(字必须与字必须与4 4字节边界对准字节边界对准)。(A31A2,0,0)A31A2,0,0)地址是地址是4 4的倍数的倍数,A1,A0,A1,A0均均为为0.0.2 22 ARM 2 ARM 编程模型编程模型图图418 ARM数据类型存储图数据类型存储图见见ARM的存储结构的存储结构38ARMARM体系结构支持表体系结构支持表4343所列的所列的7 7种处理器模式。种处理器模式。表表43 处理器模式处理器模式处理器处理器模模 式式说说 明明用户用户user正常程序执行模式正常程序执
42、行模式FIOfiq支持高速数据传送或通道处理支持高速数据传送或通道处理IRQirq用于通用中断处理用于通用中断处理管理管理svc操作系统保护模式操作系统保护模式系统复位后的缺省模式系统复位后的缺省模式中止中止abt实现虚拟存储器和或存储器保护实现虚拟存储器和或存储器保护未定义未定义und支持硬件协处理器的软件仿真支持硬件协处理器的软件仿真系统系统sys运行特权操作系统任务运行特权操作系统任务222 处理器模式处理器模式异异常常模模式式特特权权模模式式39p模式的改变模式的改变在软件控制下可以改变模式;在软件控制下可以改变模式;外部中断或异常处理也可以引起模式发生改变。外部中断或异常处理也可以引
43、起模式发生改变。p大多数应用程序在用户模式下执行。大多数应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源;某些被保护的系统资源;用户模式下不能改变模式,除非异常用户模式下不能改变模式,除非异常(Exception)(Exception)发生。发生。这允许操作系统来控制系统资源的使用。这允许操作系统来控制系统资源的使用。p除用户模式外的其他除用户模式外的其他6 6种模式称为种模式称为特权模式特权模式。特权模式服务于中断或异常;特权模式服务于中断或异常;特权模式可以访问被保护的资源;特权模式可以访问被保护
44、的资源;特权模式下可以改变模式。特权模式下可以改变模式。关于模式的说明:关于模式的说明:40p系统模式。系统模式。不能由任何其他模式进入该模式;不能由任何其他模式进入该模式;它与用户模式拥有完全相同的寄存器。然而它是它与用户模式拥有完全相同的寄存器。然而它是特权模式,不受用户模式的限制。特权模式,不受用户模式的限制。它供需要访问系统资源的操作系统任务使用,但它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。避希望避免使用与异常模式有关的附加寄存器。避免使用附加寄存器保证了当任何异常出现时,都免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。不会使
45、任务的状态不可靠。p除用户模式和系统模式之外的除用户模式和系统模式之外的5 5种模式称作异常模式。种模式称作异常模式。当特定的异常出现时,进入相应的模式。当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。现时用户模式的状态不可靠。41223 处理器工作状态处理器工作状态pARMARM处理器有两种工作状态:处理器有两种工作状态:ARMARM:这这种种状状态态下下执执行行3232位位字字对对准准的的ARMARM指指令令;取取指指时时程序计数器的程序计数器的PC.1PC.1和和PC.0PC.0均为均为0
46、0ThumbThumb:这这种种状状态态下下执执行行半半字字对对准准的的1616位位ThumbThumb指指令令。取取指指时时程程序序计计数数器器的的PC.0PC.0为为0 0,而而使使用用PC.1PC.1位位选选择择另另一一个半字。个半字。pARMARM处处理理器器可可以以在在两两种种工工作作状状态态之之间间切切换换。ARMARM和和ThumbThumb之之间状态的切换不影响处理器的模式或寄存器的内容。间状态的切换不影响处理器的模式或寄存器的内容。42pARMARM处理器在处理器在ARMARM和和ThumbThumb两种工作状态之间切换的方法:两种工作状态之间切换的方法:进进入入ThumbT
47、humb状状态态。当当操操作作数数寄寄存存器器的的状状态态位位(位位0)0)为为1 1时时,执执行行BXBX指指令令进进入入ThumbThumb状状态态。如如果果处处理理器器在在ThumbThumb状状态态进进入入异异常常,则则当当异异常常处处理理(IRQ(IRQ、FIQFIQ、UndefUndef、AbortAbort和和SWI)SWI)返回时,自动转换到返回时,自动转换到ThumbThumb状态。状态。进进入入ARMARM状状态态。当当操操作作数数寄寄存存器器的的状状态态位位(位位0)0)为为0 0时时,执执行行BXBX指指令令进进入入ARMARM状状态态。处处理理器器进进行行异异常常处处
48、理理(IRQ(IRQ、FIQFIQ、ResetReset、UndefUndef、AbortAbort和和SWI)SWI)时时,把把PCPC放放入入异异常常模模式式链链接接寄寄存存器器中中,从从异异常常向向量量地地址址开开始始执行也可以进入执行也可以进入ARMARM状态。状态。43pARMARM处理器总共有处理器总共有3737个寄存器:个寄存器:3131个通用寄存器,包括程序计数器个通用寄存器,包括程序计数器PCPC。这些寄存。这些寄存器是器是3232位的。位的。6 6个状态寄存器。这些寄存器也是个状态寄存器。这些寄存器也是3232位的,但只位的,但只使用了其中的使用了其中的1212位。位。p3
49、737个寄存器不能被同时看到,处理器状态和个寄存器不能被同时看到,处理器状态和工作模式决定哪些寄存器编程者可见。工作模式决定哪些寄存器编程者可见。2 22 24 4 寄存器组织寄存器组织44SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPRSCPRSCPRSCPRSCPRSCPRSCPRSR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R14_fiqR14_irqR14_undR14_abtR14_svcR14R14R13_fiqR13_irqR13_undR13_abtR13_svcR13R13R12_fi
50、qR12R12R12R12R12R12R11_fiqR11R11R11R11R11R11R10_fiqR10R10R10R10R10R10R9_fiqR9R9R9R9R9R9R8_fiqR8R8R8R8R8R8R7R7R7R7R7R7R7R6R6R6R6R6R6R6R5R5R5R5R5R5R5R4R4R4R4R4R4R4R3R3R3R3R3R3R3R2R2R2R2R2R2R2R1R1R1R1R1R1R1R0R0R0R0R0R0R0快中断模式快中断模式中断模式中断模式未定未定义义模式模式中止模式中止模式管理模式管理模式系系统统模式模式用用户户模式模式异常模式异常模式特权模式特权模式*黄色黄色表明