版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-7-21第三章第三章 嵌入式处理器嵌入式处理器 3.1 引言 3.2 嵌入式处理器的特点 3.3 嵌入式处理器的分类 3.4 典型的嵌入式处理器 3.5 嵌入式处理器的发展趋势 3.6 嵌入式处理器的选择原则 3.7 实例分析-ARM微处理器的编程模型2022-7-223.1 引言据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30几个系列 两大主流体系结构 低档8051(8位)体系结构 高档ARM(32位)体系结构 嵌入式处理器的一些基本情况 处理速度:0.1MIPS2000MIPS 寻址空间:64KB256MB 常用封装:8个引脚300个引脚 202
2、2-7-233.2 嵌入式处理器的特点 硬件结构 低档处理器多采用哈佛结构 即数据存储空间和程序存储空间分离 较大的程序存储器(用于固化已调试好的控制程序) 较小的数据存储器(用于存放少量的随机数据高速) 高档处理器多采用冯诺伊曼结构 典型的微型计算机的存储器结构采用的是冯诺伊曼结构也叫普林斯顿结构2022-7-243.2 嵌入式处理器的特点 品种规格系列化 同一产品系列不同型号处理器具有相同CPU内核,相同或兼容指令系统 I/O接口功能部件配置不一样,形成不同型号处理器 对实时多任务的支持 实时 监测、控制、通信 多任务 有效的调度2022-7-253.2 嵌入式处理器的特点 可靠性高、功耗
3、低、集成度高、性价比高 可靠性高:冗余设计、电磁兼容设计 功耗低:工作电压1.2/1.8/2.5/3.3V,工作电流1mA(1A) 集成度高:SoC设计,高度集成 价格低:以32位ARM系列芯片为例 三星:44b0 x(ARM7)27元,2410(ARM9)78元 TI:Stellaris(ARM Cortex-M3)系列32位微控制器零售价格最低至10元 2022-7-263.3 嵌入式处理器的分类 1 嵌入式微处理器EMPU Embedded MicroProcessor Unit 2 微控制器MCU MicroController Unit 3 数字信号处理器DSP Digital Si
4、gnal Processor Digital Signal Processing数字信号处理2022-7-27嵌入式微处理器 嵌入式微处理器的基础就是通用CPU 嵌入式微处理器在功能上和通用微处理器基本一样,但在工作温度、抗电磁干扰、可靠性、功耗等方面做了各种增强 嵌入式计算机 嵌入式微处理器+芯片组(总线仲裁器+中断控制器+DMA控制器+存储控制器+I/O接口)+外接存储器 嵌入式微处理器一般与存储器、接口电路等安装在一块电路板上,称为单板机,如PC/104、Biscuit板等 典型芯片(32、64位) 386EX、486EX、奔腾、PowerPC、68k、ARM性能:性能:1002000M
5、IPS存储器:存储器:SDRAM-2256MB,Flash-1128MB 一般有操作系统:一般有操作系统:Vxworks、WINCE(2MB)、uCLinux(300KB),Embedded Linux2022-7-28嵌入式微处理器 PowerPC 特点可伸缩性好,方便灵活 品种很多,有通用处理器、嵌入式处理器和CPU核 通用处理器主要型号是PowerPC 750系列,主频最高为700MHz 嵌入式处理器有PowerPC 405(主频最高为266MHz)和PowerPC 440(主频最高为550MHz) CPU核用于各种集成的系统芯片(System-On-Chip,SOC)设备上 生产公司:
6、Freescale(IBM)、Motorola2022-7-29嵌入式微处理器 PC/104、PC/104+单板机 规范 1996年6月公布了PC/104规范3.2版 特点 PC/104总线采用96mm x 90mm的小板结构 低功耗,15 瓦每模块 ,支持32位PCI连接 紧凑加固性设计的PC/104工控机在军工产品中得到采用,如火箭、导弹和战斗机等 PC/104总线工控机主流产品是486EX和586EX 2022-7-210PC/104插槽插槽功耗小于功耗小于4.5瓦瓦2022-7-211PC104摘自周立摘自周立功网站功网站2022-7-212嵌入式微处理器 Biscuit PC单板机
7、特点 一体化计算机 低成本 形状像饼干,俗称饼干计算机 分类 迷你 Biscuit PC(2.5” 120 x82mm ) 半尺寸Biscuit PC(3.5” 145x102mm ) 全尺寸Biscuit PC(5.25“ 203x146mm)2022-7-213迷你迷你 Biscuit PC(2.5” 120 x82mm )2022-7-214半尺寸半尺寸Biscuit PC(3.5” 145x102mm )2022-7-215全尺寸全尺寸Biscuit PC (5.25“ 203x146mm)2022-7-216Mini-ITX结构结构 170170mmKINO Atom工业主板工业主板
8、2022-7-217微控制器 微控制器又称单片机 顾名思义,就是将整个计算机集成到一块芯片中 低档微控制器 CPU 存储控制器+片内存储器(ROM/E2PROM/Flash、SRAM) 中断控制器、定时/计数器、WatchDog、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)
9、2022-7-218 微控制器 高档微控制器 CPU+总线仲裁器+ DMA控制器+中断控制器+I/O接口+存储控制器+外接存储器/少量片内存储器(Flash、SRAM、SDRAM) 典型芯片(32位) ARM、MIPS 、Power PC、68k 与嵌入式微处理器比较微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高,但性能有所降低目前微控制器是嵌入式系统工业中的主流,在嵌入式系统占有约70的市场份额 性能:性能:1001000MIPS存储器:存储器:SDRAM-4/8/16/32/64MB, Flash-2/4MB一般有操作系统:一般有操作系统:Vxworks、uCO
10、SII、WINCE、uCLinux2022-7-2198位单片机示意图位单片机示意图CPUSRAMGPIO UARTFlash定时定时/计计数器数器A/DD/ACANWatchdog核心部分核心部分USBI2CSPI2022-7-22032位微控制器示意图位微控制器示意图2022-7-221Motorola3G手机手机E10002022-7-222 微控制器 MIPS Microprocessor without Interlocked Pipeline Stages MIPS公司于80年代初开始设计通用RISC处理器 R2000(1986年),R3000(1988年),1991年推出第一款6
11、4位商用微处理器R4000 R8000(1994年)、R10000(1996年)、R12000(1997年) 新32位微控制器 4kc (1999年) 新64位微控制器 5kc(1999年)、20kc(2000年)2022-7-2232 微控制器 2022-7-224数字信号处理器 特殊设计 高效乘累加运算、超标量操作、指令流水线 高效数据存取、硬件重复循环 确定性操作(程序执行时间可预测) 应用场合 数字滤波、FFT、声音图像处理等方面 代表性的产品 TI的TMS320系列 ADI的21xx系列 Motorola的DSP56000系列2022-7-225TI的TMS320系列 C2000低成
12、本系列 16/32位,定点,最高150MIPS 最低价格低于2.00 美元 应用数字电机控制、数字电源和智能传感器 C6000高性能系列 C62xx/C64xx系列32位,定点 C67xx系列32位,浮点 运行频率高达 1GHz 应用领域包括无线、数字视频、电信和成像2022-7-226TI的TMS320系列 C5000低功耗系列 16位,定点 性能高达 900MIPS 超低功耗,低至 0.5mW/MHz 适用于个人和便携式产品,如数字音乐播放器、VoIP、GPS 接收器和便携式医疗设备 OMAP多核系列 与ARM核集成 一拖二、四2022-7-2273.5 嵌入式处理器的发展趋势 内部结构
13、SoC设计,与DSP、Flash、FPGA融合 性能更强,集成更多的功能部件 双核或多核结构 功耗更低 工作电流只有0.1A(电池供电) 可靠性更高 倍频技术、ESD(静电防护)技术 支持ISP(在系统编程)、ISD(在系统调试)2022-7-228亚洲亚洲嵌入式处嵌入式处理器理器选用情况选用情况2022-7-229目前每年新上市的目前每年新上市的CPU有有98%都是嵌入式的,这类新型都是嵌入式的,这类新型CPU的长期发展性也非常乐观的长期发展性也非常乐观美国那斯达克指数与新美国那斯达克指数与新CPU出货量变化的消长关系出货量变化的消长关系CPU出货量达出货量达到到10G/Year2022-7
14、-2303.6 嵌入式处理器的选择原则 CPU Core选择 应用领域 用户需求 性能 浮点处理、MAC单元 工具链 完善友好的工具链 开发的难易程度 在系统编程、在系统调试2022-7-2313.6 嵌入式处理器的选择原则 处理器I/O接口选择 总线的需求 GPIO的需求 有没有基本通信接口UART 、I2C、SPI 是否需要USB总线 是否需要CAN总线 是否需要Ethernet总线 是否需要A/D、D/A 是否需要LCD控制器 是否需要Zigbee、蓝牙等2022-7-2323.6 嵌入式处理器的选择原则 处理器存储系统选择 MMU 寻址空间(容量) 程序存储器、数据存储器、特殊寄存器
15、片上Flash、SRAM、E2PROM 是否支持SDRAM 市场因素的影响 价格 是否容易购买 技术支持与售后服务2022-7-233ARM微处理器概述 1 ARMAdvanced RISC Machines 2 ARM微处理器的特点 3 ARM微处理器的应用领域 4 ARM微处理器系列 5 ARM微处理器的应用选型2022-7-2341. ARMAdvanced RISC Machines ARM(Advanced RISC Machines) 英国一家公司的名字,也是一类微处理器的通称 ARM公司1991年成立于英国剑桥 知识产权(IP) ARM公司本身不直接从事芯片生产,靠转让设计许可
16、全世界有几十家大的半导体公司都使用ARM公司的微处理器核(TI、NXP、Atmel、ST、Freescale等) 市场份额 基于ARM技术的微处理器占32位RISC微处理器75%以上的市场份额2022-7-2352. ARM微处理器的特点 特点 功耗低、成本低、性能高 支持Thumb(16位)/ARM(32位)双指令集 Cortex支持Thumb-2(16/32位混合指令系统) 指令长度固定(32位/16位) 大量使用寄存器,指令执行速度更快 寻址方式灵活简单,执行效率高C5000:0.5mW/MHzARM7TDMI:0.28mW/MHz Cortex-M3:0.19mW/MHz2022-7-
17、2363. ARM微处理器的应用领域 工业控制领域 占据高端微处理器的大部分市场份额,同时也向低端微控制器应用领域扩展(ARM微处理器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战) 无线通信领域 目前已有超过85%的无线通信设备采用了ARM技术 消费类电子产品 在音频播放器、机顶盒和游戏机中得到广泛采用 图像处理产品 数码相机和打印机中绝大部分采用ARM技术2022-7-2374. ARM微处理器系列 ARM微处理器目前包括下面几个系列 通用系列 ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 ARM11系列 Cortex系列 安全系列 SecurCore系列202
18、2-7-238 ARM7系列系列 ARM7微处理器系列特点 极低的功耗(0.28mW/MHz),适合对功耗要求较高的应用 具有嵌入式ICERT逻辑,调试开发方便 能够提供0.9MIPS/MHz的三级流水线结构 支持的操作系统:uC/OS-II、uCLinux等 性能最高可达130MIPSC5000:0.5mW/MHzARMT7DMI:0.28mW/MHz Cortex-M3:0.19mW/MHz2022-7-239 ARM7系列系列nARM7系列微处理器的主要应用领域为系列微处理器的主要应用领域为工业控制、网络和调制解调器工业控制、网络和调制解调器移动电话、消费电子等移动电话、消费电子等nAR
19、M7系列包括如下几种类型系列包括如下几种类型ARM7TDMI、ARM7TDMI-SARM7TMDI是目前使用最广泛的是目前使用最广泛的32位嵌入式处理器位嵌入式处理器,属低端属低端ARM处理器核处理器核nTDMI的基本含义为的基本含义为T:支持:支持16位压缩指令集位压缩指令集ThumbD:支持片上:支持片上DebugM:内嵌硬件乘法器(:内嵌硬件乘法器(Multiplier)I:嵌入式:嵌入式ICE,支持片上断点和调试点,支持片上断点和调试点2022-7-240ATMEL ARM7框图框图2022-7-241ATMEL ARM7产品选择产品选择2022-7-242AT91SAM7S64开发板
20、开发板2022-7-243ARM9系列 ARM9系列微处理器具有以下特点 5级整数流水线,指令执行效率更高 提供1.1MIPS/MHz的加速能力 全性能的MMU,支持Windows CE、Embedded Linux等 支持数据Cache和指令Cache 性能最高可达300MIPS2022-7-244ARM9系列 ARM9系列微处理器主要应用 无线设备 机顶盒 高端打印机、数字照相机和数字摄像机 汽车电子 ARM9系列微处理器类型 ARM920T ARM922T2022-7-245ATMEL ARM9框图框图2022-7-246ARM9开发板开发板ARM9 CPU2022-7-247ARM9E
21、系列 ARM9E系列微处理器的主要特点 支持DSP指令集(MAC) 5级整数流水线,指令执行效率更高 支持VFP9浮点处理协处理器 全性能的MMU,支持Windows CE、Embedded Linux等 支持数据Cache和指令Cache 性能最高可达300MIPS2022-7-248ARM9E系列 ARM9系列微处理器主要应用 工业控制 无线设备和网络设备 数字消费品、图像处理设备、存储设备 ARM9E系列微处理器类型 ARM926EJ-S ARM946E-S ARM966E-S、ARM968E-S ARM996HS 2022-7-249ARM10E系列 ARM10E系列微处理器的主要特点
22、 支持DSP指令集(MAC) 6级整数流水线,指令执行效率更高 支持VFP10浮点处理协处理器 全性能的MMU,支持Windows CE、Embedded Linux 支持数据Cache和指令Cache 性能最高可达400MIPS2022-7-250ARM10E系列 ARM10E系列微处理器主要应用 手持设备 工业控制 数字消费品、汽车电子 图像处理设备 ARM10E系列微处理器类型 ARM1020E ARM1022E ARM1026EJ-S2022-7-251 ARM11系列 高性能 8级流水 增强的ARMv6体系结构 与同等的ARM10相比较,在同样的时钟频率下,性能提高了近50 时钟频率
23、达到500750MHz 低功耗 ARM11系列微处理器采用了两种先进的节能方式,使其功耗极低2022-7-252 ARM11系列 ARM11系列微处理器主要应用 消费电子、汽车电子 数据存储、图像处理设备 网络基础、无线设备 ARM11系列微处理器类型 ARM11 MPCore(多核处理器) ARM1136J(F)-S ARM1156T2(F)-S ARM1176JZ(F)-S三星三星S3C6410处理器处理器ARM1176JZF-S核核最高主频可达最高主频可达667MHz Appleiphone2022-7-253Cortex系列 ARM Cortex-A Series高性能应用 Appli
24、cations processors for complex OS and user applications 支持ARM、Thumb和Thumb-2指令集 带MMU,运行Linux、Windows CE等操作系统 TI OMAP35xx,ST(意法半导体) ARM Cortex-R Series实时性应用 Embedded processors for real-time systems 支持ARM、Thumb和Thumb-2指令集 不带MMU,运行Vxworks等实时操作系统2022-7-254Cortex系列 ARM Cortex-M Series低成本应用 Embedded proce
25、ssors optimized for cost sensitive applications Supports the Thumb-2 instruction set only 不带MMU,不加载或者加载简单嵌入式操作系统 Accelerated Technology公司的Nucleus PLUS uC/OS-II、FreeRTOS 典型芯片 TIStellaris LM3Sxxxx系列 NXP LPC1000系列,ATMELSAM3系列2022-7-2556 Cortex系列TI LM3S微控制微控制器系统器系统框图框图2022-7-256周立功开发板周立功开发板EasyARM574920
26、22-7-257Cortex系列爱可视爱可视 7(320G) ¥3550采用采用 600 MHz 超标量超标量 ARM Cortex-A8 处理器处理器的的 OMAP 3 实施方案实施方案 OMAP 3430处理器处理器ARM Cortex-A82022-7-258SecurCore系列 SecurCore系列微处理器专为安全需要而设计 具有ARM体系结构的低功耗、高性能的特点 提供了完善的32位RISC技术的安全解决方案 SecurCore系列微处理器在系统安全方面的特点 带有灵活的保护单元,以确保操作系统和应用数据的安全 采用软处理器内核技术(处理器布局随机化),防止外部对其进行扫描探测
27、可集成用户自己的安全特性和其他协处理器2022-7-259SecurCore系列 SecurCore系列微处理器的应用领域 电子商务 电子银行 电子政务 网络和认证系统 SecurCore系列微处理器包含四种类型 SecurCore SC100 SecurCore SC110 SecurCore SC200 SecurCore SC2102022-7-2605. ARM微处理器的应用选型 ARM微处理器内核结构的选择 带有MMU功能的ARM内核 ARM720T、ARM92xT、Cortex-A8 支持WinCE、Embedded Linux等操作系统 不含有MMU功能的ARM内核 ARM7TD
28、MI、Cortex-M3、Cortex-R4 支持uCLinux操作系统 不支持Windows CE、Embedded Linux等操作系统 是否支持DSP或Java 是否支持浮点协处理器VFP2022-7-2615. ARM微处理器的应用选型 系统的工作频率 ARM7系列的典型处理速度为0.9MIPS/MHz 系统主时钟为20MHz-133MHz ARM9系列的典型处理速度为1.1MIPS/MHz 系统主时钟频率为100MHz-233MHz ARM10系统主时钟高达400MHz ARM11系统主时钟高达750MHz Cortex-M31.25MIPS/MHz,频率高达100MHz Corte
29、x-R41.6MIPS/MHz,频率高达400MHz Cortex-A82.0MIPS/MHz,频率高达1GHz在在65纳米工艺下,纳米工艺下,ARM Cortex-A8处理器的功耗不到处理器的功耗不到300mW8051的功耗的功耗(8位位)600mW 2022-7-2625. ARM微处理器的应用选型 芯片内存储器的容量 大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器 有部分芯片具有相对较大的片内存储空间 如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间 用户在设计时可考虑选用这种类型,以简化系统的设计2022-7-2635. ARM微处理
30、器的应用选型 片内外围电路的选择 几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中 片内外围电路:USB接口、IIS(音频)接口、LCD控制器、键盘接口、RTC(实时时钟)、ADC和DAC、DSP协处理器等 设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可靠性IIS:Inter-IC Sound busRTC:Real-Time Clock 2022-7-2642022-7-265ARM处理器分类2022-7-2662022-7-2672022-7-268本讲小结本讲小结n目的与要求目的与要求掌握掌握ARM
31、处理器的系列情况处理器的系列情况熟悉熟悉ARM处理器的特点、应用领域处理器的特点、应用领域了解了解ARM处理器的应用选型处理器的应用选型n重点与难点重点与难点ARM处理器的系列情况处理器的系列情况2022-7-2693.7 ARM微处理器的编程模型 3.7.1 ARM微处理器的工作模式 3.7.2 ARM微处理器的工作状态 3.7.3 ARM体系结构的寄存器组织 3.7.4 ARM微处理器的数据类型 3.7.5 ARM微处理器的异常状态2022-7-2703.7.1 ARM微处理器的工作模式 ARM微处理器支持7种工作模式 User-用户模式(usr) ARM处理器正常的程序执行状态 Syst
32、em-系统模式(sys) 运行具有特权的操作系统任务 IRQ-外部中断模式(irq) 用于通用的中断处理 FIQ-快速中断模式(fiq) 用于高速数据传输或通道处理2022-7-2713.7.1 ARM微处理器的工作模式 ARM微处理器支持7种工作模式 Supervisor-管理模式(svc) 操作系统使用的保护模式 复位、软中断调用(SWI) Abort-中止模式(abt) 当数据或指令预取中止时进入该模式 可用于虚拟存储及存储保护 Undefined-未定义指令模式(und) 当未定义的指令执行时进入该模式 可用于支持硬件协处理器的软件仿真2022-7-2723.7.1 ARM微处理器的工
33、作模式 特权模式 除用户模式以外,其余6种模式称之为特权模式(Privileged Modes) 当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的 异常模式 除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes) 常用于处理中断或异常,以及需要访问受保护的系统资源等情况2022-7-2733.7.1 ARM微处理器的工作模式 工作模式的改变 通过软件改变 系统调用 通过外部中断或异常处理改变 外部中断:IRQ、FIQ 来自中断控制器 异常处理 来自CPU内部2022-7-2743.7.1 ARM微处理器的工作模式 工作模式的改变举例 SWI软件中断指令
34、SWI 0 x0 ; 调用0号软中断 SWI 0 x12 ; 调用12号软中断 IRQ外部中断 _irq void HandlerTIMER5(void) timeval+;/ 当前时刻递增 pIC-I_ISPC = INT_TIMER5; / 清除中断请求位 2022-7-2753.7.2 ARM微处理器的工作状态 ARM微处理器的工作状态一般有两种 第一种为ARM状态 处理器执行32位的ARM指令 ARM指令要求字对齐 第二种为Thumb状态 处理器执行16位的Thumb指令 Thumb指令要求半字对齐2022-7-2763.7.2 ARM微处理器的工作状态 工作状态切换 在程序的执行过程
35、中,处理器可以随时在两种工作状态之间切换 处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容 ARM微处理器在开始执行代码时总是处于ARM状态 也就是复位后进入ARM状态2022-7-2773.7.2 ARM微处理器的工作状态 工作状态切换方法 进入Thumb状态 执行BX指令 BX:带状态切换的跳转指令 当操作数寄存器的最低位0为1时,可以使微处理器从ARM状态切换到Thumb状态 BX R0;R0的最低位0为1 处理器工作在Thumb状态,如果发生异常并进入异常处理子程序,则异常处理完毕返回时,自动从ARM状态切换到Thumb状态2022-7-2783.7.2 ARM微处理器
36、的工作状态 工作状态切换方法 进入ARM状态 执行BX指令 BX:带状态切换的跳转指令 当操作数寄存器的最低位0为0时,可以使微处理器从Thumb状态切换到ARM 状态 BX R0;R0的最低位0为0 处理器工作在Thumb状态,如果发生异常并进入异常处理子程序,则进入时处理器自动从Thumb状态切换到ARM状态 2022-7-2793.7.3 ARM体系结构的寄存器组织 ARM处理器的寄存器 37个32位寄存器 31个通用寄存器 6个状态寄存器 这些寄存器不能被同时访问 取决于处理器的 工作状态 工作模式2022-7-2803.7.3 ARM体系结构的寄存器组织 1 ARM状态下的寄存器组织
37、 2 Thumb状态下的寄存器组织 3 程序状态寄存器2022-7-281ARM状态下的寄存器组织 通用寄存器 通用寄存器包括R0R15 可以分为三类 未分组寄存器R0R7 分组寄存器R8R14 程序计数器R15 (PC)2022-7-282ARM状态下的寄存器组织 未分组寄存器R0R7 在所有的工作模式下,每个未分组寄存器都指向对应的一个物理寄存器 在中断或异常处理进行工作模式转换时,由于不同的处理器工作模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏2022-7-283ARM状态下的寄存器组织 分组寄存器R8R14 R8R12 每个寄存器对应2个不同的物理寄存器 当使用FIQ模式时
38、,访问R8_fiqR12_fiq 当使用其他模式时,访问R8_usrR12_usr R13、R14 每个寄存器对应6个不同的物理寄存器 其中一个寄存器是用户模式与系统模式共用 另外5个物理寄存器对应于其他5种不同的工作模式 2022-7-284ARM状态下的寄存器组织 不同物理寄存器的区分 R13_ R14_ mode为:usr、fiq、irq、svc、abt、und 例如: R13_usr、R13_fiq、R13_irq R14_svc、R14_abt、R14_und2022-7-285ARM状态下的寄存器组织 R13寄存器 常用作堆栈指针SP(Stack Pointer),一种习惯用法 也
39、可使用其他的寄存器作为堆栈指针 在Thumb指令集中,某些指令强制使用R13作为堆栈指针 在应用程序初始化时,一般都要初始化每种模式下的R13,使其指向该工作模式的栈空间2022-7-286ARM状态下的寄存器组织 R14寄存器 也称链接寄存器LR (Link Register) 当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份 BL Label;下一条指令地址LR, LabelPC 当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值 其他情况下,R14用作通用寄存器2022-7-287
40、ARM状态下的寄存器组织 R15寄存器 R15寄存器用作程序计数器(PC) 在ARM状态下,位1:0为0,位31:2用于保存PC 在Thumb状态下,位0为0,位31:1用于保存PC 由于ARM体系结构采用了多级流水结构,对于ARM指令集而言,PC总是指向当前执行指令的下两条指令的地址,即PC的值为当前执行指令的地址值加8个字节 R15也可用作通用寄存器,但一般不这么使用 因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的2022-7-288ARM状态下的寄存器组织 CPSR寄存器 用作CPSR(Current Program Status Register) CP
41、SR可在任何工作模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位 异常模式下有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register) 当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR 用户模式和系统模式不属于异常模式,没有SPSR2022-7-2892022-7-290Thumb状态下的寄存器组织 Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集 程序可以直接访问 8个通用寄存器(R7R0) 程序计数器(PC) 堆栈指针(SP) 连接寄存器(LR) C
42、PSR 在每一种异常模式下都有一组SP、LR和SPSR2022-7-2912022-7-292两种工两种工作状态作状态下寄存下寄存器比较器比较2022-7-293程序状态寄存器 程序状态寄存器的构成 一个当前程序状态寄存器(CPSR) 五个备份程序状态寄存器(SPSR) 备份的程序状态寄存器用来进行异常处理 程序状态寄存器的功能 保存ALU中的当前操作信息 控制允许和禁止中断 设置处理器的工作模式 2022-7-294程序状态寄存器2022-7-295程序状态寄存器 条件码标志(Condition Code Flags) N、Z、C、V均为条件码标志位 它们的内容可被算术或逻辑运算的结果所改变
43、,并且可以决定某条指令是否被执行 在ARM状态下,绝大多数的指令都是有条件执行的 在Thumb状态下,仅有分支指令B是有条件执行的2022-7-296程序状态寄存器 实例 C代码:if (ab) a+; else b+; Thumb代码: CMPR0, R1 BHIA_ADD ADDR1, R1, #1 B OVER A_ADD ADDR0, R0, #1 OVER ARM代码: CMPR0, R1ADDHIR0, R0, #1ADDLSR1, R1, #1 2022-7-297程序状态寄存器 标志位N 当用两个补码表示的带符号数进行运算时 N=1 表示运算结果为负数 N=0 表示运算结果为正
44、数或零 标志位Z Z=1 表示运算结果为零;Z=0 表示运算结果为非零 标志位V 对于加/减法运算指令,当操作数和运算结果为补码表示的带符号数时,V=1表示符号位溢出 对于其他的非加/减运算指令,V的值通常不改变2022-7-298程序状态寄存器 标志位C 加法运算(包括比较指令CMN): 当运算结果产生了进位时(无符号数溢出),C=1,否则C=0 减法运算(包括比较指令CMP): 当运算时产生了借位(无符号数溢出),C=1,否则C=0 对于包含移位操作的非加/减运算指令,C为移出值的最后一位 对于其他的非加/减运算指令,C的值通常不改变2022-7-299程序状态寄存器 中断禁止位I和F I
45、=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 这些位决定了处理器的工作模式100M4:0处理器模式可访问的寄存器10000用户PC,CPSR, R0-R1410001FIQPC,CPSR, SPSR_fiq,R14_fiqR8_fiq, R7R010010IRQPC,CPSR, SPSR_irq
46、,R14_irq, R13_irq, R12R010011管理PC,CPSR, SPSR_svc,R14_svc, R13_svc, R12R010111中止PC,CPSR, SPSR_abt,R14_abt, R13_abt, R12R011011未定义PC,CPSR, SPSR_und,R14_und, R13_und, R12R011111系统PC,CPSR(ARM v4及以上版本), R14R0程序状态寄存器2022-7-21013.7.4 ARM微处理器的数据类型 字、半字、字节 字(Word):字的长度为32位 半字(Half-Word):半字的长度为16位 字节(Byte):字节
47、的长度为8位 ARM微处理器要求自然对界 字需要4字节对齐 地址的低两位为0 半字需要2字节对齐 地址的最低位为0 字节则是任意地址对齐 2022-7-21023.7.4 ARM微处理器的数据类型 边界对齐(数据存储) 如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐 如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐方式半字对齐字对齐地址0 x000000000 x000000020 x000000040 x000000000 x000000040 x00000008特征Bit0=0Bit1=0,Bit0=02022-7-21033
48、.7.4 ARM微处理器的数据类型 ARM体系结构的存储结构 从零地址开始的以字节为单位的线性组合 从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列 作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(232字节) 受到物理地址线的限制,一般实际嵌入式处理器最大寻址空间为几百兆2022-7-21043.7.4 ARM微处理器的数据类型 ARM体系结构可以用两种方法存储字数据 大端格式(Big endian) 字数据的高字节存储在低地址中 字数据的低字节存放在高地址中 小端格式(Little endian) 与大端存储格式相反 低地址
49、中存放的是字数据的低字节 高地址中存放的是字数据的高字节2022-7-2105大端格式(Big endian)2022-7-2106小端格式(Little endian)2022-7-2107举例1 程序 LDR R0, =0 x11223344 LDR R1, =0 x00000100 STR R0, R1 LDRB R2, R1 R2=? 答案 小端模式:R2 = 0 x44 大端模式:R2 = 0 x11LDR伪指令的形式:伪指令的形式:LDR Rn, =expr ; =而非而非#2022-7-2108举例2 struct xchar a;int b;char c;short d; 问:
50、在缺省(自然对界)情况下,上述结构需要多少存储空间(小端格式)?强制对齐强制对齐编译控制:编译控制:汇编汇编align(1/2/4/8) unalignC语言语言#pragma pack(1/2/4/8)2022-7-21093.7.5 ARM微处理器的异常状态 当正常的程序执行流程发生暂时的停止时,称之为异常(Exception) 例如处理一个外部的中断请求 在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行 处理器允许多个异常同时发生,它们将会按固定的优先级进行处理 中断优先级 中断嵌套异常类型具体含义复位当处理器的复位电平有效时,产生复位异常,程序跳转
51、到复位异常处理程序处执行未定义指令当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真软件中断该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用指令预取中止 若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常数据中止若处理器数据访问的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常IRQ(外部中断请求)当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务
52、FIQ(快速中断请求)当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常2022-7-21113.7.5 ARM微处理器的异常状态 1 对异常的响应 2 从异常返回 3异常向量 4异常优先级 5应用程序中的异常处理2022-7-2112对异常的响应 当出现异常后,ARM处理器会执行以下操作 1 将CPSR复制到相应的SPSR中 2 对CPSR进行设置 根据异常类型,强制设置CPSR的工作模式位 设置中断禁止位,以禁止中断发生 如果处理器处于Thumb状态,则切换到ARM状态 3 将下一条指令的地址存入相应链接寄存器LR LR中保存的是下一条指令的地址(当前执行指令地址4或
53、8,与异常类型有关) 4 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处2022-7-2113对异常的响应 ARM处理器对异常的响应过程用伪码描述为 SPSR_ = CPSR CPSR4:0 = Exception Mode Number CPSR5 = 0; 切换到ARM工作状态 If = Reset or FIQ then CPSR6 = 1 ; 禁止新的FIQ异常 CPSR7 = 1; 禁止新的IRQ异常 R14_ = Return Link PC = Exception Vector Address CPU自动完成自动完成2022-7-2114程序程序AI
54、RQ服务程序服务程序系统模式IRQ模式程序寄存器组程序在系统模式下运行用户程程序在系统模式下运行用户程序,假定当前处理器状态为序,假定当前处理器状态为Thumb状态、允许状态、允许IRQ中断中断用户程序运行时发生用户程序运行时发生IRQ中断,硬件完成以下动作:中断,硬件完成以下动作:LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .? ? ? ?MODTFI. . .N Z C V置位置位I位(禁止位(禁止IRQ中断)中断)清零清零T位(进入位(进入ARM状态)状态)设置设置MOD位,位,切换切换处理器处理器模式至模式至IRQ模式模式将下一条指令的地址将下一
55、条指令的地址存入存入IRQ模式的模式的LR寄存器寄存器将将CPSR寄存器内容寄存器内容存入存入IRQ模式的模式的SPSR寄存器寄存器将跳转地址存入将跳转地址存入PC,实,实现现跳转跳转IRQ0?1. . .? ? ? ?BackAddrJumpAddrJumpSYS1?0. . .?“?”表示对该位不关心表示对该位不关心2022-7-2115从异常返回 异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回 1、将SPSR复制回CPSR中 2、将链接寄存器LR的值减去相应偏移量后送到PC中 注意 复位异常处理程序不需要返回编程(指令)完成编程(指令)完成2022-7-2116在异常处理结
56、束后,异常处理程序完成以下动作:程序程序AIRQ服务程序服务程序系统模式系统模式IRQIRQ模式模式程序程序寄存器组寄存器组LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .? ? ? ?MODTFI. . .N Z C V将SPSR寄存器的值复制回CPSR寄存器;将LR寄存的值减去一个常量后复制到PC寄存器,跳转到被中断的用户程序。IRQ0?1. . .? ? ? ?BackAddrJumpAddrreturnSYS1?0. . .?SYS1?0. . .? ? ? ?BackAddr-4Jump“?”表示对该位不关心表示对该位不关心2022-7-2117
57、各类异常的具体描述 复位的响应过程 SPSR_svc = CPSR (不可预知) CPSR4:0 = 0b10011 CPSR5 = 0; 切换到ARM工作状态 CPSR6 = 1; 禁止新的FIQ异常 CPSR7 = 1; 禁止新的IRQ异常 R14_svc = Return Link(不可预知) PC = 0 x00000000 2022-7-2118 各类异常的具体描述 Undefined Instruction(未定义指令) 当ARM处理器遇到不能处理的指令时,会产生未定义指令异常 采用这种机制,可以通过软件仿真扩展ARM或Thumb指令集 在未定义指令处理程序中执行以下指令返回 MO
58、VS PC, R14_und 恢复PC(从R14_und)和CPSR(从SPSR_und)的值,并返回到未定义指令后的下一条指令 指令加后缀“S”且目的寄存器为PC则自动复制2022-7-2119 各类异常的具体描述 未定义指令异常的响应过程 SPSR_und = CPSR CPSR4:0 = 0b11011 CPSR5 = 0; 切换到ARM工作状态 / CPSR6保持不变 CPSR7 = 1; 禁止新的IRQ异常 R14_und = Return Link PC = 0 x000000042022-7-2120 各类异常的具体描述 Software Interrupt(软件中断) 软件中断
59、指令(SWI)用于进入管理模式,常用于请求执行特定的管理功能 在 ARM 上写的操作系统典型的使用 SWI 来为编程者提供各种例程 在软件中断处理程序中执行以下指令返回 MOVS PC, R14_svc 恢复PC(从R14_svc)和CPSR(从SPSR_svc)的值,并返回到SWI的下一条指令 指令加后缀“S”且目的寄存器为PC则自动复制2022-7-2121 各类异常的具体描述 SWI的响应过程 SPSR_svc = CPSR CPSR4:0 = 0b10011 CPSR5 = 0; 切换到ARM工作状态 / CPSR6保持不变 CPSR7 = 1; 禁止新的IRQ异常 R14_svc =
60、 Return Link PC = 0 x00000008 2022-7-2122 各类异常的具体描述 IRQ(Interrupt Request) IRQ异常属于正常的中断请求,IRQ优先级低于FIQ 若CPSR的I位置1,则禁止IRQ中断,若CPSR的I位清零,处理器会在指令执行完之前检查IRQ的输入 注意只有在特权模式下才能改变I位的状态 IRQ处理程序执行以下指令返回 SUBS PC , R14_irq , #4 该指令将寄存器R14_irq的值减去4后,复制到程序计数器PC中,同时将SPSR_irq寄存器的内容复制到CPSR中,并返回到引起中断的下一条指令2022-7-2123 各类异常的具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年冀北电网研究生面试综合面+专业面完整题库及答案
- 2025年铁塔代维安全规程考试必考试题及答案
- 2025年烟草送货员面试考官常问问题及标准答案
- 2025-2026学年刘备教学设计图片
- 2026设计院竞聘面试题及答案
- 《跟着节气去劳动》主题班会教学设计
- 2025-2026学年掘的拼音教学设计模板
- 2026中国出口信用保险秋招笔试题及答案
- 2026中国宝武校招试题及答案
- 2025-2026学年赵州桥教学设计素描图片
- 高职学分转化管理办法
- 二年级下册体育全册教案
- “挑战杯”大学生创业计划书
- 社会稳定风险评估协议模板合同8篇
- 提高出院病案7天回收率PDCA持续改进方案
- 云南省昆明市2025届“三诊一模”高三复习教学质量检测英语试题及答案
- 2025年浙江纺织服装职业技术学院单招职业适应性测试题库新版
- T-CQAP 4002-2024 医疗安全(不良)事件根本原因分析法活动指南
- 2024年镇江市高等专科学校高职单招职业适应性测试历年参考题库含答案解析
- 2025年人教版数学五年级下册教学计划(含进度表)
- 【历史】安史之乱与唐朝衰亡课件+2024-2025学年部编版七年级历史下学期
评论
0/150
提交评论