版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 ARM微处理器体系结构电子与信息工程学院陆卫忠2012-02-138/7/20222第2章 ARM微处理器体系结构主要内容2.1 引言2.2 嵌入式处理器的特点2.3 嵌入式处理器的分类2.4 嵌入式处理器的发展趋势2.5 嵌入式处理器的选择原则2.6 ARM微处理器概述2.7 ARM微处理器的编程模型2.8 ARM微处理器的指令系统USTS8/7/202232.1 引言嵌入式处理器种类繁多、千花齐放据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30几个系列两大主流体系结构低档8051(8位)体系结构高档ARM(32位)体系结构嵌入式处理器的一些基本情况
2、处理速度:0.1MIPS2000MIPS寻址空间:64KB256MB常用封装:8个引脚300个引脚 USTS8/7/202242.2 嵌入式处理器的特点硬件结构低档处理器多采用哈佛结构即数据存储空间和程序存储空间分离较大的程序存储器(用于固化已调试好的控制程序)较小的数据存储器(用于存放少量的随机数据高速)高档处理器多采用冯诺伊曼结构典型的微型计算机的存储器结构采用的是冯诺伊曼结构也叫普林斯顿结构USTS哈佛体系结构指令寄存器控制器数据通道输入输出CPU程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据USTS冯诺依曼体系结构指令寄存器控制器数据通道输入输出中央处理器存储
3、器程序指令0指令1指令2指令3指令4数据数据0数据1数据2USTS8/7/202272.2 嵌入式处理器的特点(续)品种规格系列化同一产品系列不同型号处理器具有相同CPU内核,相同或兼容指令系统I/O接口功能部件配置不一样,形成不同型号处理器对实时多任务的支持实时监测、控制、通信多任务有效的调度USTS8/7/202282.2 嵌入式处理器的特点(续)可靠性高、功耗低、集成度高、性价比高可靠性高:冗余设计、电磁兼容设计功耗低:工作电压1.2/1.8/2.5/2.3V,工作电流1mA(1A)集成度高:SoC设计,高度集成价格低:以32位ARM系列芯片为例三星:44b0 x(ARM7)30元,24
4、10(ARM9)80元TI:Stellaris(ARM Cortex-M3)系列32位微控制器零售价格最低至11.5元 ,还有更低。USTS8/7/202292.3 嵌入式处理器的分类1 嵌入式微处理器EMPUEmbedded MicroProcessor Unit2 微控制器MCUMicroController Unit3 数字信号处理器DSPDigital Signal ProcessorDigital Signal Processing数字信号处理USTS8/7/2022101 嵌入式微处理器嵌入式微处理器的基础就是通用CPU为了满足嵌入式应用的特殊要求,嵌入式微处理器在功能上和通用微处
5、理器基本一样,但在工作温度、抗电磁干扰、可靠性、功耗等方面做了各种增强嵌入式计算机嵌入式微处理器+芯片组(总线仲裁器+中断控制器+DMA控制器+存储控制器+I/O接口)+外接存储器嵌入式微处理器一般与存储器、接口电路等安装在一块电路板上,称为单板机,如PC/104、Biscuit板等典型芯片(32、64位)386EX、486EX、奔腾、PowerPC、68k、ARM性能:1002000MIPS存储器:SDRAM-2256MB,Flash-1128MB 一般有操作系统:Vxworks、WINCE(2MB)、uCLinux(300KB),Embedded LinuxUSTS8/7/2022111
6、嵌入式微处理器(续)PowerPC特点可伸缩性好,方便灵活品种很多,有通用处理器、嵌入式处理器和CPU核通用处理器主要型号是PowerPC 750系列,主频最高为700MHz嵌入式处理器有PowerPC 405(主频最高为266MHz)和PowerPC 440(主频最高为550MHz)CPU核用于各种集成的系统芯片(System-On-Chip,SOC)设备上生产公司:Freescale(IBM)、MotorolaUSTS8/7/2022121 嵌入式微处理器(续)PC/104、PC/104+单板机规范1996年6月公布了PC/104规范2.2版特点PC/104总线采用96mm x 90mm的
7、小板结构低功耗,15 瓦每模块 ,支持32位PCI连接紧凑加固性设计的PC/104工控机在军工产品中得到采用,如火箭、导弹和战斗机等 PC/104总线工控机主流产品是486EX和586EX USTS8/7/202213PC/104插槽功耗小于4.5瓦USTS8/7/202214PC104摘自周立功网站USTS8/7/2022151 嵌入式微处理器(续)Biscuit PC单板机特点一体化计算机低成本形状像饼干,俗称饼干计算机分类迷你 Biscuit PC(2.5” 120 x82mm )半尺寸Biscuit PC(2.5” 145x102mm )全尺寸Biscuit PC(5.25“ 203x
8、146mm)USTS8/7/202216迷你 Biscuit PC(2.5” 120 x82mm )USTS8/7/202217半尺寸Biscuit PC(2.5” 145x102mm )USTS8/7/202218全尺寸Biscuit PC (5.25“ 203x146mm)USTS8/7/202219Mini-ITX结构 170170mmKINO Atom工业主板USTS8/7/2022202 微控制器微控制器又称单片机顾名思义,就是将整个计算机集成到一块芯片中低档微控制器CPU存储控制器+片内存储器(ROM/E2PROM/Flash、SRAM)中断控制器、定时/计数器、WatchDog、
9、GPIO、UART、PWM、A/D、D/A等典型芯片8051系列(8位)、MSP430(16位)性能:1100MIPS存储器:SRAM-256B/2128KB,Flash-8KB/64/512KB一般无操作系统或者简单操作系统:uC/OS-II(几KB十几KB)、FreeRTOS(几KB)、RTX (几KB)USTS8/7/2022212 微控制器(续)高档微控制器CPU+总线仲裁器+ DMA控制器+中断控制器+I/O接口+存储控制器+外接存储器/少量片内存储器(Flash、SRAM、SDRAM)典型芯片(32位)ARM、MIPS 、Power PC、68k与嵌入式微处理器比较微控制器的最大特
10、点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高,但性能有所降低目前微控制器是嵌入式系统工业中的主流,在嵌入式系统占有约70的市场份额 性能:1001000MIPS存储器:SDRAM-4/8/16/32/64MB, Flash-2/4MB一般有操作系统:Vxworks、uCOSII、WINCE、uCLinuxUSTS8/7/2022228位单片机示意图CPUSRAMGPIOUARTFlash定时/计数器A/DD/ACANWatchdog核心部分USBI2CSPIUSTS8/7/20222332位微控制器示意图USTS8/7/202224Motorola3G手机E1000USTS8/7
11、/2022252 微控制器(续)MIPSMicroprocessor without Interlocked Pipeline StagesMIPS公司于80年代初开始设计通用RISC处理器R2000(1986年),R3000(1988年),1991年推出第一款64位商用微处理器R4000R8000(1994年)、R10000(1996年)、R12000(1997年)新32位微控制器4kc (1999年)新64位微控制器5kc(1999年)、20kc(2000年)USTS8/7/2022262 微控制器(续) USTS8/7/2022273 数字信号处理器特殊设计高效乘累加运算、超标量操作、指
12、令流水线高效数据存取、硬件重复循环确定性操作(程序执行时间可预测)应用场合数字滤波、FFT、频谱分析等方面代表性的产品TI的TMS320系列ADI的21xx系列Motorola的DSP56000系列USTS8/7/202228TI的TMS320系列C2000低成本系列16/32位,定点,最高150MIPS最低价格低于2.00 美元应用数字电机控制、数字电源和智能传感器C6000高性能系列C62xx/C64xx系列32位,定点C67xx系列32位,浮点运行频率高达 1GHz应用领域包括无线、数字视频、电信和成像USTS8/7/202229TI的TMS320系列(续)C5000低功耗系列16位,定
13、点性能高达 900MIPS超低功耗,低至 0.5mW/MHz适用于个人和便携式产品,如数字音乐播放器、VoIP、GPS 接收器和便携式医疗设备OMAP多核系列与ARM核集成一拖二、四USTS8/7/2022302.4 嵌入式处理器的发展趋势内部结构SoC设计,与DSP、Flash、FPGA融合性能更强,集成更多的功能部件双核或多核结构功耗更低工作电流只有0.1A(电池供电)可靠性更高倍频技术、ESD(静电防护)技术支持ISP(在系统编程)、ISD(在系统调试)USTS8/7/202231亚洲嵌入式处理器选用情况USTS8/7/202232目前每年新上市的CPU有98%都是嵌入式的,这类新型CP
14、U的长期发展性也非常乐观图显示美国那斯达克指数与新CPU出货量变化的消长关系CPU出货量达到10G/YearUSTS8/7/2022332.5 嵌入式处理器的选择原则CPU Core选择应用领域用户需求性能浮点处理、MAC单元工具链完善友好的工具链开发的难易程度在系统编程、在系统调试USTS8/7/2022342.5 嵌入式处理器的选择原则(续)处理器I/O接口选择总线的需求GPIO的需求有没有基本通信接口UART 、I2C、SPI是否需要USB总线是否需要CAN总线是否需要Ethernet总线是否需要A/D、D/A是否需要LCD控制器是否需要Zigbee、蓝牙等USTS8/7/2022352
15、.5 嵌入式处理器的选择原则(续)处理器存储系统选择MMU寻址空间(容量)程序存储器、数据存储器、特殊寄存器片上Flash、SRAM、E2PROM是否支持SDRAM市场因素的影响价格是否容易购买技术支持与售后服务USTS8/7/202236本讲小结目的与要求掌握嵌入式处理器的特点、分类熟悉典型嵌入式处理器了解嵌入式处理器的发展趋势和选择原则重点与难点嵌入式处理器的特点、分类如何分类阅读章节:第2.12.5节作业:补充作业USTS8/7/2022372.6 ARM微处理器概述2.6.1 ARMAdvanced RISC Machines2.6.2 ARM微处理器的特点2.6.3 ARM微处理器的
16、应用领域2.6.4 ARM微处理器系列2.6.5 ARM微处理器的应用选型USTS8/7/2022382.6.1 ARMAdvanced RISC MachinesARM(Advanced RISC Machines)英国一家公司的名字,也是一类微处理器的通称ARM公司1991年成立于英国剑桥知识产权(IP, intellectual property right )ARM公司本身不直接从事芯片生产,靠转让设计许可全世界有几十家大的半导体公司都使用ARM公司的微处理器核(TI、NXP、Atmel、ST、Freescale等)市场份额基于ARM技术的微处理器占32位RISC微处理器75%以上的市
17、场份额USTS8/7/2022392.6.2 ARM微处理器的特点特点功耗低、成本低、性能高支持Thumb(16位)/ARM(32位)双指令集Cortex支持Thumb-2(16/32位混合指令系统)指令长度固定(32位/16位)大量使用寄存器,指令执行速度更快寻址方式灵活简单,执行效率高C5000:0.5mW/MHzARM7TDMI:0.28mW/MHz Cortex-M3:0.19mW/MHzUSTS8/7/2022402.6.3 ARM微处理器的应用领域工业控制领域占据高端微处理器的大部分市场份额,同时也向低端微控制器应用领域扩展(ARM微处理器的低功耗、高性价比,向传统的8位/16位微
18、控制器提出了挑战)无线通信领域目前已有超过85%的无线通信设备采用了ARM技术消费类电子产品在音频播放器、机顶盒和游戏机中得到广泛采用图像处理产品数码相机和打印机中绝大部分采用ARM技术USTS8/7/2022412.6.4 ARM微处理器系列ARM微处理器目前包括下面几个系列通用系列1 ARM7系列2 ARM9系列3 ARM9E系列4 ARM10E系列5 ARM11系列6 Cortex系列安全系列7 SecurCore系列USTS8/7/2022421 ARM7系列ARM7微处理器系列特点极低的功耗(0.28mW/MHz),适合对功耗要求较高的应用具有嵌入式ICERT逻辑,调试开发方便能够提
19、供0.9MIPS/MHz的三级流水线结构支持的操作系统:uC/OS-II、uCLinux等性能最高可达130MIPSC5000:0.5mW/MHzARMT7DMI:0.28mW/MHz Cortex-M3:0.19mW/MHzUSTS8/7/2022431 ARM7系列(续)ARM7系列微处理器的主要应用领域为工业控制、网络和调制解调器移动电话、消费电子等ARM7系列包括如下几种类型ARM7TDMI、ARM7TDMI-SARM7TMDI是目前使用最广泛的32位嵌入式处理器,属低端ARM处理器核TDMI的基本含义为T:支持16位压缩指令集ThumbD:支持片上DebugM:内嵌硬件乘法器(Mul
20、tiplier)I:嵌入式ICE,支持片上断点和调试点USTS8/7/202244ATMEL ARM7框图USTS8/7/202245AT91SAM7S64开发板USTS8/7/2022462 ARM9系列ARM9系列微处理器具有以下特点5级整数流水线,指令执行效率更高提供1.1MIPS/MHz的加速能力全性能的MMU,支持Windows CE、Embedded Linux等支持数据Cache和指令Cache性能最高可达300MIPSUSTS8/7/2022472 ARM9系列(续)ARM9系列微处理器主要应用无线设备机顶盒高端打印机、数字照相机和数字摄像机汽车电子ARM9系列微处理器类型AR
21、M920TARM922TUSTS8/7/202248ATMEL ARM9框图USTS8/7/202249ARM9开发板ARM9 CPUUSTS8/7/2022503 ARM9E系列ARM9E系列微处理器的主要特点支持DSP指令集(MAC)5级整数流水线,指令执行效率更高支持VFP9浮点处理协处理器全性能的MMU,支持Windows CE、Embedded Linux等支持数据Cache和指令Cache性能最高可达300MIPSUSTS8/7/2022513 ARM9E系列(续)ARM9系列微处理器主要应用工业控制无线设备和网络设备数字消费品、图像处理设备、存储设备ARM9E系列微处理器类型 A
22、RM926EJ-SARM946E-SARM966E-S、ARM968E-SARM996HS USTS8/7/2022524 ARM10E系列ARM10E系列微处理器的主要特点支持DSP指令集(MAC)6级整数流水线,指令执行效率更高支持VFP10浮点处理协处理器全性能的MMU,支持Windows CE、Embedded Linux支持数据Cache和指令Cache性能最高可达400MIPSUSTS8/7/2022534 ARM10E系列(续)ARM10E系列微处理器主要应用手持设备工业控制数字消费品、汽车电子图像处理设备ARM10E系列微处理器类型ARM1020EARM1022EARM1026
23、EJ-SUSTS8/7/2022545 ARM11系列高性能8级流水增强的ARMv6体系结构与同等的ARM10相比较,在同样的时钟频率下,性能提高了近50时钟频率达到500750MHz低功耗ARM11系列微处理器采用了两种先进的节能方式,使其功耗极低0.6mW/MHz (0.13m, 1.2V) C5000:0.5mW/MHzARMT7DMI:0.28mW/MHz Cortex-M3:0.19mW/MHzUSTS8/7/2022555 ARM11系列(续)ARM11系列微处理器主要应用消费电子、汽车电子数据存储、图像处理设备网络基础、无线设备ARM11系列微处理器类型ARM11 MPCore(
24、多核处理器)ARM1136J(F)-SARM1156T2(F)-SARM1176JZ(F)-S三星S3C6410处理器ARM1176JZF-S核最高主频可达667MHz 魅族M8AppleiphoneUSTS8/7/2022566 Cortex系列ARM Cortex-A Series高性能应用Applications processors for complex OS and user applications支持ARM、Thumb和Thumb-2指令集带MMU,运行Linux、Windows CE等操作系统TI OMAP35xx,ST(意法半导体)ARM Cortex-R Series实时
25、性应用Embedded processors for real-time systems支持ARM、Thumb和Thumb-2指令集不带MMU,运行Vxworks等实时操作系统USTS8/7/2022576、Cortex系列(续)ARM Cortex-M Series低成本应用Embedded processors optimized for cost sensitive applicationsSupports the Thumb-2 instruction set only 不带MMU,不加载或者加载简单嵌入式操作系统Accelerated Technology公司的Nucleus PLU
26、SuC/OS-II、FreeRTOS典型芯片TIStellaris LM3Sxxxx系列NXP LPC1000系列,ATMELSAM3系列C5000:0.5mW/MHzARM7TDMI:0.28mW/MHz Cortex-M3:0.19mW/MHzUSTS8/7/2022586、Cortex系列(续)爱可视 7(320G) ¥4150采用 600 MHz 超标量 ARM Cortex-A8 处理器的 OMAP 3 实施方案 OMAP 3430处理器ARM Cortex-A8USTS8/7/2022597 SecurCore系列SecurCore系列微处理器专为安全需要而设计具有ARM体系结构的
27、低功耗、高性能的特点提供了完善的32位RISC技术的安全解决方案SecurCore系列微处理器在系统安全方面的特点带有灵活的保护单元,以确保操作系统和应用数据的安全采用软处理器内核技术(处理器布局随机化),防止外部对其进行扫描探测可集成用户自己的安全特性和其他协处理器USTS8/7/2022607 SecurCore系列(续)SecurCore系列微处理器的应用领域电子商务电子银行电子政务网络和认证系统SecurCore系列微处理器包含四种类型SecurCore SC100SecurCore SC110SecurCore SC200SecurCore SC210USTS8/7/2022612.
28、6.5 ARM微处理器的应用选型ARM微处理器内核结构的选择带有MMU功能的ARM内核ARM720T、ARM92xT、Cortex-A8支持WinCE、Embedded Linux等操作系统不含有MMU功能的ARM内核ARM7TDMI、Cortex-M3、Cortex-R4支持uCLinux操作系统不支持Windows CE、Embedded Linux等操作系统是否支持DSP或Java是否支持浮点协处理器VFPUSTS8/7/2022625、ARM微处理器的应用选型(续)系统的工作频率ARM7系列的典型处理速度为0.9MIPS/MHz系统主时钟为20MHz-133MHzARM9系列的典型处理
29、速度为1.1MIPS/MHz系统主时钟频率为100MHz-233MHzARM10系统主时钟高达400MHzARM11系统主时钟高达750MHzCortex-M31.25MIPS/MHz,频率高达100MHzCortex-R41.6MIPS/MHz,频率高达400MHzCortex-A82.0MIPS/MHz,频率高达1GHzUSTS8/7/2022635、ARM微处理器的应用选型(续)芯片内存储器的容量大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器有部分芯片具有相对较大的片内存储空间如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间用户在设计时
30、可考虑选用这种类型,以简化系统的设计USTS8/7/2022645、ARM微处理器的应用选型(续)片内外围电路的选择几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中片内外围电路:USB接口、IIS(音频)接口、LCD控制器、键盘接口、RTC(实时时钟)、ADC和DAC、DSP协处理器等设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可靠性IIS:Inter-IC Sound busRTC:Real-Time Clock USTS8/7/202265USTS8/7/202266ARM处理器分类USTS8/7/2
31、02267USTS8/7/202268USTS8/7/202269本讲小结目的与要求掌握ARM处理器的系列情况熟悉ARM处理器的特点、应用领域了解ARM处理器的应用选型重点与难点ARM处理器的系列情况阅读章节:第2.6节作业:无USTS8/7/2022702.7 ARM微处理器的编程模型2.7.1 ARM微处理器的工作模式2.7.2 ARM微处理器的工作状态2.7.3 ARM体系结构的寄存器组织2.7.4 ARM微处理器的数据类型2.7.5 ARM微处理器的异常状态USTS8/7/2022712.7.1 ARM微处理器的工作模式ARM微处理器支持7种工作模式User-用户模式(usr)ARM处
32、理器正常的程序执行状态System-系统模式(sys)运行具有特权的操作系统任务IRQ-外部中断模式(irq)用于通用的中断处理FIQ-快速中断模式(fiq)用于高速数据传输或通道处理USTS8/7/2022722.7.1 ARM微处理器的工作模式(续)ARM微处理器支持7种工作模式Supervisor-管理模式(svc)操作系统使用的保护模式复位、软中断调用(SWI)Abort-中止模式(abt)当数据或指令预取中止时进入该模式可用于虚拟存储及存储保护Undefined-未定义指令模式(und)当未定义的指令执行时进入该模式可用于支持硬件协处理器的软件仿真USTS8/7/2022732.7.
33、1 ARM微处理器的工作模式(续)特权模式除用户模式以外,其余6种模式称之为特权模式(Privileged Modes)当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的异常模式除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes)常用于处理中断或异常,以及需要访问受保护的系统资源等情况USTS8/7/2022742.7.1 ARM微处理器的工作模式(续)工作模式的改变通过软件改变系统调用通过外部中断或异常处理改变外部中断:IRQ、FIQ来自中断控制器异常处理来自CPU内部USTS8/7/2022752.7.1 ARM微处理器的工作模式(续)工作模式的改变
34、举例SWI软件中断指令SWI 0 x0 ; 调用0号软中断SWI 0 x12 ; 调用12号软中断IRQ外部中断_irq void HandlerTIMER5(void) timeval+;/ 当前时刻递增 pIC-I_ISPC = INT_TIMER5; / 清除中断请求位USTS8/7/2022762.7.2 ARM微处理器的工作状态ARM微处理器的工作状态一般有两种第一种为ARM状态处理器执行32位的ARM指令ARM指令要求字对齐第二种为Thumb状态处理器执行16位的Thumb指令Thumb指令要求半字对齐USTS8/7/2022772.7.2 ARM微处理器的工作状态(续)工作状态切
35、换在程序的执行过程中,处理器可以随时在两种工作状态之间切换处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容ARM微处理器在开始执行代码时总是处于ARM状态也就是复位后进入ARM状态USTS8/7/2022782.7.2 ARM微处理器的工作状态(续)工作状态切换方法进入Thumb状态执行BX指令BX:带状态切换的跳转指令当操作数寄存器的最低位0为1时,可以使微处理器从ARM状态切换到Thumb状态BX R0;R0的最低位0为1处理器工作在Thumb状态,如果发生异常并进入异常处理子程序,则异常处理完毕返回时,自动从ARM状态切换到Thumb状态USTS8/7/2022792.7
36、.2 ARM微处理器的工作状态(续)工作状态切换方法进入ARM状态执行BX指令BX:带状态切换的跳转指令当操作数寄存器的最低位0为0时,可以使微处理器从Thumb状态切换到ARM 状态BX R0;R0的最低位0为0处理器工作在Thumb状态,如果发生异常并进入异常处理子程序,则进入时处理器自动从Thumb状态切换到ARM状态 USTS8/7/2022802.7.2 ARM微处理器的工作状态(续)工作状态切换举例BLabelCMPR1, #0BEQLabelADRLR0, ThumbFun+1BXR0BLXLabelBLX:下一条指令地址送往LR寄存器;Label送往PC,并完成状态切换USTS
37、8/7/2022812.7.3 ARM体系结构的寄存器组织ARM处理器的寄存器37个32位寄存器31个通用寄存器6个状态寄存器这些寄存器不能被同时访问取决于处理器的工作状态工作模式USTS8/7/2022822.7.3 ARM体系结构的寄存器组织1 ARM状态下的寄存器组织2 Thumb状态下的寄存器组织3 程序状态寄存器USTS8/7/2022831 ARM状态下的寄存器组织通用寄存器通用寄存器包括R0R15可以分为三类未分组寄存器R0R7分组寄存器R8R14程序计数器R15 (PC)USTS8/7/202284USTS8/7/2022851 ARM状态下的寄存器组织(续)未分组寄存器R0R
38、7在所有的工作模式下,每个未分组寄存器都指向对应的一个物理寄存器在中断或异常处理进行工作模式转换时,由于不同的处理器工作模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏USTS8/7/2022861 ARM状态下的寄存器组织(续)分组寄存器R8R14R8R12每个寄存器对应2个不同的物理寄存器当使用FIQ模式时,访问R8_fiqR12_fiq当使用其他模式时,访问R8_usrR12_usrR13、R14每个寄存器对应6个不同的物理寄存器其中一个寄存器是用户模式与系统模式共用另外5个物理寄存器对应于其他5种不同的工作模式 USTS8/7/2022871 ARM状态下的寄存器组织(续)不同
39、物理寄存器的区分R13_R14_mode为:usr、fiq、irq、svc、abt、und例如:R13_usr、R13_fiq、R13_irqR14_svc、R14_abt、R14_undUSTS8/7/2022881 ARM状态下的寄存器组织(续)R13寄存器常用作堆栈指针SP(Stack Pointer),一种习惯用法也可使用其他的寄存器作为堆栈指针在Thumb指令集中,某些指令强制使用R13作为堆栈指针在应用程序初始化时,一般都要初始化每种模式下的R13,使其指向该工作模式的栈空间USTS8/7/2022891 ARM状态下的寄存器组织(续)R14寄存器也称链接寄存器LR (Link R
40、egister) 当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份BL Label;下一条指令地址LR, LabelPC当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值其他情况下,R14用作通用寄存器USTS8/7/2022901 ARM状态下的寄存器组织(续)R14寄存器常用情形1、常用用法(子程序返回)MOVPC, LRBXLR2、在子程序入口处使用以下指令将R14存入堆栈STMFDSP!, , LR使用以下指令可以完成子程序返回LDMFDSP!, , PCUSTS8/7/2022
41、911 ARM状态下的寄存器组织(续)R15寄存器R15寄存器用作程序计数器(PC)在ARM状态下,位1:0为0,位31:2用于保存PC在Thumb状态下,位0为0,位31:1用于保存PC由于ARM体系结构采用了多级流水结构,对于ARM指令集而言,PC总是指向当前执行指令的下两条指令的地址,即PC的值为当前执行指令的地址值加8个字节 R15也可用作通用寄存器,但一般不这么使用因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的USTS8/7/2022921 ARM状态下的寄存器组织(续)CPSR寄存器用作CPSR(Current Program Status Regi
42、ster)CPSR可在任何工作模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位异常模式下有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register)当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR用户模式和系统模式不属于异常模式,没有SPSRUSTS8/7/202293USTS8/7/2022942 Thumb状态下的寄存器组织Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集程序可以直接访问8个通用寄存器(R7R0)程序计数器(PC)堆栈指针(SP)连接寄
43、存器(LR)CPSR在每一种异常模式下都有一组SP、LR和SPSRUSTS8/7/202295USTS8/7/202296两种工作状态下寄存器比较USTS8/7/2022973 程序状态寄存器 程序状态寄存器的构成一个当前程序状态寄存器(CPSR)五个备份程序状态寄存器(SPSR)备份的程序状态寄存器用来进行异常处理程序状态寄存器的功能保存ALU中的当前操作信息控制允许和禁止中断设置处理器的工作模式 USTS8/7/2022983 程序状态寄存器(续)USTS8/7/2022993 程序状态寄存器(续)条件码标志(Condition Code Flags)N、Z、C、V均为条件码标志位它们的内
44、容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行在ARM状态下,绝大多数的指令都是有条件执行的在Thumb状态下,仅有分支指令B是有条件执行的USTS8/7/20221003 程序状态寄存器(续)实例C代码:if (ab) a+; else b+;Thumb代码:CMPR0, R1BHIA_ADDADDR1, R1, #1 BOVER A_ADDADDR0, R0, #1 OVERARM代码:CMPR0, R1ADDHIR0, R0, #1ADDLSR1, R1, #1 USTS8/7/20221013 程序状态寄存器(续)标志位N当用两个补码表示的带符号数进行运算时N=1 表
45、示运算结果为负数N=0 表示运算结果为正数或零标志位ZZ=1 表示运算结果为零;Z=0 表示运算结果为非零标志位V对于加/减法运算指令,当操作数和运算结果为补码表示的带符号数时,V=1表示符号位溢出对于其他的非加/减运算指令,V的值通常不改变USTS8/7/20221023 程序状态寄存器(续)标志位C加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),C=1,否则C=0对于包含移位操作的非加/减运算指令,C为移出值的最后一位对于其他的非加/减运算指令,C的值通常不改变USTS8/7/20
46、221033 程序状态寄存器(续)中断禁止位I和FI=1禁止IRQ中断;I=0允许IRQ中断F=1禁止FIQ中断;F=0允许IRQ中断运行状态控制位T对于ARM v5及以上的T系列处理器,当该位为1时,程序运行于Thumb状态,否则运行于ARM状态对于ARM v5及以上的非T系列处理器,当该位为1时,执行下一条指令以引起未定义指令异常;当该位为0时,表示运行于ARM状态工作模式位M4:0这些位决定了处理器的工作模式USTS8/7/2022104M4:0处理器模式可访问的寄存器0b10000用户PC,CPSR, R0-R140b10001FIQPC,CPSR, SPSR_fiq,R14_fiqR
47、8_fiq, R7R00b10010IRQPC,CPSR, SPSR_irq,R14_irq, R13_irq, R12R00b10011管理PC,CPSR, SPSR_svc,R14_svc, R13_svc, R12R00b10111中止PC,CPSR, SPSR_abt,R14_abt, R13_abt, R12R00b11011未定义PC,CPSR, SPSR_und,R14_und, R13_und, R12R00b11111系统PC,CPSR(ARM v4及以上版本), R14R03 程序状态寄存器(续)USTS8/7/2022105本讲小结目的与要求掌握ARM处理器的工作模式、工
48、作状态、ARM状态下的寄存器组织熟悉Thumb状态下的寄存器组织、程序状态寄存器重点与难点工作模式寄存器组织阅读章节:第2.7.12.7.3节作业:补充作业USTS8/7/20221062.7.4 ARM微处理器的数据类型 字、半字、字节字(Word):字的长度为32位半字(Half-Word):半字的长度为16位字节(Byte):字节的长度为8位 ARM微处理器要求自然对界字需要4字节对齐地址的低两位为0半字需要2字节对齐地址的最低位为0字节则是任意地址对齐 USTS8/7/20221072.7.4 ARM微处理器的数据类型(续)边界对齐(数据存储)如果一个数据是从偶地址开始的连续存储,那么
49、它就是半字对齐,否则就是非半字对齐如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐方式半字对齐字对齐地址0 x000000000 x000000020 x000000040 x000000000 x000000040 x00000008特征Bit0=0Bit1=0,Bit0=0USTS8/7/20221082.7.4 ARM微处理器的数据类型(续)ARM体系结构的存储结构从零地址开始的以字节为单位的线性组合从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4
50、GB(232字节)受到物理地址线的限制,一般实际嵌入式处理器最大寻址空间为几百兆USTS8/7/20221092.7.4 ARM微处理器的数据类型(续)ARM体系结构可以用两种方法存储字数据大端格式(Big endian)字数据的高字节存储在低地址中字数据的低字节存放在高地址中小端格式(Little endian)与大端存储格式相反低地址中存放的是字数据的低字节高地址中存放的是字数据的高字节USTS8/7/2022110大端格式(Big endian)USTS8/7/2022111小端格式(Little endian)USTS8/7/2022112举例1程序LDR R0, =0 x112233
51、44LDR R1, =0 x00000100STR R0, R1LDRB R2, R1R2=?答案小端模式:R2 = 0 x44大端模式:R2 = 0 x11LDR 伪指令,使用以下项之一加载寄存器: 一个 32 位常数值 一个地址LDR伪指令的形式:LDRRn, =expr ; =而非#USTS8/7/2022113举例2struct xchar a;int b;char c;short d; 问:在缺省(自然对界)情况下,上述结构需要多少存储空间(小端格式)?强制对界编译控制:汇编align(1/2/4/8) unalignC语言#pragma pack(1/2/4/8)USTS8/7/2
52、0221142.7.5 ARM微处理器的异常状态当正常的程序执行流程发生暂时的停止时,称之为异常(Exception)例如处理一个外部的中断请求在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行处理器允许多个异常同时发生,它们将会按固定的优先级进行处理中断优先级中断嵌套USTS8/7/2022115异常类型具体含义复位当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行未定义指令当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真软件中断该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操
53、作指令。可使用该异常机制实现系统功能调用指令预取中止若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常数据中止若处理器数据访问的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常IRQ(外部中断请求)当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务FIQ(快速中断请求)当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常USTS8/7/20221162.7.5 ARM微处理器的异常状态(续)1 对异常的响应2 从异常返回3
54、 各类异常的具体描述4 异常向量5 异常优先级6 应用程序中的异常处理USTS8/7/20221171 对异常的响应当出现异常后,ARM处理器会执行以下操作1 将CPSR复制到相应的SPSR中2 对CPSR进行设置根据异常类型,强制设置CPSR的工作模式位设置中断禁止位,以禁止中断发生如果处理器处于Thumb状态,则切换到ARM状态3 将下一条指令的地址存入相应链接寄存器LRLR中保存的是下一条指令的地址(当前执行指令地址4或8,与异常类型有关)4 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处USTS8/7/20221181 对异常的响应(续)ARM处理器对异常
55、的响应过程用伪码描述为SPSR_ = CPSRCPSR4:0 = Exception Mode NumberCPSR5 = 0; 切换到ARM工作状态If = Reset or FIQ then CPSR6 = 1 ; 禁止新的FIQ异常CPSR7 = 1; 禁止新的IRQ异常R14_ = Return LinkPC = Exception Vector Address CPU自动完成USTS8/7/2022119程序AIRQ服务程序系统模式IRQ模式程序寄存器组程序在系统模式下运行用户程序,假定当前处理器状态为Thumb状态、允许IRQ中断用户程序运行时发生IRQ中断,硬件完成以下动作:LR
56、_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .?MODTFI. . .NZCV置位I位(禁止IRQ中断)清零T位(进入ARM状态)设置MOD位,切换处理器模式至IRQ模式将下一条指令的地址存入IRQ模式的LR寄存器将CPSR寄存器内容存入IRQ模式的SPSR寄存器将跳转地址存入PC,实现跳转IRQ0?1. . .?BackAddrJumpAddrJumpSYS1?0. . .?“?”表示对该位不关心USTS8/7/20221202 从异常返回异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回1、将SPSR复制回CPSR中2、将链接寄存器LR的值减去
57、相应偏移量后送到PC中注意复位异常处理程序不需要返回编程(指令)完成USTS8/7/2022121在异常处理结束后,异常处理程序完成以下动作:程序AIRQ服务程序系统模式IRQ模式程序寄存器组LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .?MODTFI. . .NZCV将SPSR寄存器的值复制回CPSR寄存器;将LR寄存的值减去一个常量后复制到PC寄存器,跳转到被中断的用户程序。IRQ0?1. . .?BackAddrJumpAddrreturnSYS1?0. . .?SYS1?0. . .?BackAddr-4Jump“?”表示对该位不关心USTS8/
58、7/20221223 各类异常的具体描述复位的响应过程SPSR_svc = CPSR (不可预知)CPSR4:0 = 0b10011CPSR5 = 0; 切换到ARM工作状态CPSR6 = 1; 禁止新的FIQ异常CPSR7 = 1; 禁止新的IRQ异常R14_svc = Return Link(不可预知)PC = 0 x00000000 USTS8/7/20221233 各类异常的具体描述(续)Undefined Instruction(未定义指令)当ARM处理器遇到不能处理的指令时,会产生未定义指令异常采用这种机制,可以通过软件仿真扩展ARM或Thumb指令集在未定义指令处理程序中执行以下
59、指令返回MOVS PC, R14_und恢复PC(从R14_und)和CPSR(从SPSR_und)的值,并返回到未定义指令后的下一条指令 指令加后缀“S”且目的寄存器为PC则自动复制USTS8/7/20221243 各类异常的具体描述(续)未定义指令异常的响应过程SPSR_und = CPSRCPSR4:0 = 0b11011CPSR5 = 0; 切换到ARM工作状态/ CPSR6保持不变CPSR7 = 1; 禁止新的IRQ异常R14_und = Return LinkPC = 0 x00000004USTS8/7/20221253 各类异常的具体描述(续)Software Interrup
60、t(软件中断)软件中断指令(SWI)用于进入管理模式,常用于请求执行特定的管理功能在 ARM 上写的操作系统典型的使用 SWI 来为编程者提供各种例程在软件中断处理程序中执行以下指令返回MOVS PC, R14_svc恢复PC(从R14_svc)和CPSR(从SPSR_svc)的值,并返回到SWI的下一条指令指令加后缀“S”且目的寄存器为PC则自动复制USTS8/7/20221263 各类异常的具体描述(续)SWI的响应过程SPSR_svc = CPSRCPSR4:0 = 0b10011CPSR5 = 0; 切换到ARM工作状态/ CPSR6保持不变CPSR7 = 1; 禁止新的IRQ异常R1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安徽黄山市徽城投资集团有限公司招聘3人笔试模拟试题及答案解析
- 2026年电热液体蚊香行业分析报告及未来发展趋势报告
- 2026年磁性元件行业分析报告及未来发展趋势报告
- 2026江苏淮安市清江浦区武墩街道公益性岗位招聘2人笔试备考试题及答案解析
- 2026年包装材料行业分析报告及未来发展趋势报告
- 2026四川成都市生态环境工程评估与绩效评价中心编外人员招聘2人考试备考题库及答案解析
- 2026上海金山区属国有企业招聘20人笔试模拟试题及答案解析
- 2026青岛科技大学招聘人员14人笔试模拟试题及答案解析
- 2026年热水锅炉零件行业分析报告及未来发展趋势报告
- 选区激光熔化Al-Mg-Mn-Er-Sc合金的成形性、微观组织及力学性能研究
- 制造业安全培训课件
- 河南近10年中考真题数学2014-2023年含答案
- 水文勘测工专业知识考试题库(含答案)
- 长城的历史资料概括
- 2020新版药品GCP考试题库及答案
- 证据法学-典型案例分析
- 2022年一级注册建筑师考试《建筑材料与构造》真题及答案解析
- 滴水实验 说课课件
- 小型液压机液压系统设计
- 玉米的综合利用玉米皮的综合利用
- GB/T 4450-1995船用盲板钢法兰
评论
0/150
提交评论