《嵌入式系统设计教案.docx》由会员分享,可在线阅读,更多相关《嵌入式系统设计教案.docx(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式系统设计教案课程总学时:32讲课学时:24试验学时:8授 课 人:杨词慧南昌航空高校信息工程学院目 录1嵌入式系统概述11.1嵌入式系统的根本概念11.2嵌入式系统的开展历史21.3嵌入式系统的体系构造21.4嵌入式处理器31.5嵌入式操作系统41.6嵌入式系统的应用及开展趋势72ARM体系构造82.1ARM设计思想82.2ARM体系构造分析92.3ARM处理器系列112.4ARM处理器形式152.5ARM体系的异样处理162.6ARM内部存放器182.7ARM体系的存储系统193ARM指令系统及程序设计根底213.1ARM寻址方式213.2ARM指令集243.3Thumb指令集333.
2、4353.5353.6嵌入式系统设计及开发过程364STM32微限制器374.1STM32微限制器的性能指标371 嵌入式系统概述教学目的:使学生对嵌入式系统的根本概念和体系构造、嵌入式处理器、嵌入式操作系统、嵌入式系统的历史、应用及开展趋势有肯定的理解。教学重点:嵌入式系统的根本概念、嵌入式处理器和嵌入式操作系统。教学难点:嵌入式系统的体系构造、嵌入式处理器。教学方法及教学手段:课堂讲授,多媒体教学。教学时间:2课时。教学内容1.1 嵌入式系统的根本概念(1) 嵌入式系统的定义先举例说明生活中的各种嵌入式系统设备,如iPhone、小米手机、洗衣机、电压力锅等。IEEE(国际电气和电子工程师协
3、会)的定义:嵌入式系统是用于限制、监视或者协助操作机器和设备的装置(Devices used to control, monitor, or assist the operation of equipment, machinery or plants)。微机学会的定义:嵌入式系统是以嵌入式应用为目的的计算机系统,可分为系统级、板级和片级。a) 系统级:各种类型的工控机、PC104等模块。b) 板级:各种类型的带CPU的主板或OEM产品。c) 片级:各种以单片机、DSP、微处理器为核心的产品。一般定义:嵌入式系统是以应用为中心,以计算机技术为根底,软件硬件可裁剪,对功能、牢靠性、本钱、体积、功耗
4、要求严格的专用计算机系统。(2) 嵌入式系统的特点a) 专用、软硬件可剪裁配置。b) 低功耗、高牢靠性、高稳定性。c) 软件代码矮小精悍。d) 代码可固化。e) 实时性。f) 弱交互性。g) 软件开发通常须要特地的开发工具、环境和方法。h) 要求开发、设计人员具有较高的技能。i) 具有较长的生命周期。(3) 嵌入式系统的分类按嵌入式微处理器的位数可分为:4位、8位、16位、32位和64位。按实时性能可分为:非实时系统和实时系统。按软件构造可分为:嵌入式单线程系统和嵌入式事务驱动系统。按应用领域可分为:信息家电类、消费电子类、医疗电子类、挪动终端类、通信类、汽车电子类、工业限制类、航空电子类、军
5、事电子类等。1.2 嵌入式系统的开展历史(1) 以单芯片为核心的可编程限制器形成的系统1971年11月,Intel推出Intel 4004。随后出现Intel 8080/8085、8086、Motorola的6800、68000,Zilog的Z80、Z8000。以微处理器为核心构成的系统单板机:Intel的iSBC系列、Zilog的MCB等将计算机做在一个芯片上,大部分应用于专业性强的工业限制系统中,没有操作系统的支持,系统构造和功能相对单一,处理效率较低,存储容量较小。(2) 以嵌入式CPU为根底、以简洁操作系统为核心的嵌入式系统CPU种类繁多,通用性较弱;系统开销小,效率高;操作系统到达肯
6、定的兼容性和扩展性;应用软件较专业化,用户界面不够友好。(3) 以嵌入式操作系统为标记的嵌入式系统嵌入式操作系统可运行于各种不同类型的微处理器上,兼容性好;操作系统内核小,效率高;具备文件和书目管理,支持多任务、网络应用,具备图形窗口和用户界面;有大量的应用程序接口API。(4) 以Internet为标记的嵌入式系统嵌入式设备及Internet的结合。1.3 嵌入式系统的体系构造(1) 体系构造(2) 硬件层l 嵌入式处理器:ARM、DSP、FPGAl 存储器系统:ROM、FLASH、SDRAMl 中断限制器、DMAC、定时器/计数器、UART、USB限制器、LCD限制器等l I/O接口:US
7、B、I2C、SPI、CAN等(3) 中间层l 硬件抽象层(Hardware Abstraction Layer, HAL)。位于操作系统内核及硬件电路之间的接口层,隐藏硬件接口细微环节。l 板级支持包(Board Support Package, BSP)。为上层的驱动程序供给访问硬件设备存放器的函数包。l 设备驱动程序1.4 嵌入式处理器(1) 嵌入式处理器的分类中高端的嵌入式微处理器(Embedded Micro-Processor Unit, EMPU)低端的微限制器(Microcontroller Unit, MCU)DSP处理器(Digital Signal Processor, D
8、SP)高度集成的片上系统(System on Chip, SoC)(2) 嵌入式微处理器由通用计算机中的CPU演化而来,只保存及嵌入式应用严密相关的功能硬件,在工作温度、抗电磁干扰、牢靠性、功耗等方面做了各种增加。主要的嵌入式处理器类型:ARM、MIPS、PowerPC、68000系列等。特点a) 在设计中考虑低功耗。b) 采纳可扩展的处理器构造。处理器内部留有很多扩展接口。c) 具有很强的存储区爱护功能。d) 供给丰富的调试功能。e) 对实时任务具有很强的支持实力。(3) 微限制器俗称单片机,将整个计算机系统集成到一块芯片中。以一种微处理器为核心,芯片内部集成Flash、RAM、总线逻辑、定
9、时器/计数器、I/O口、串行口、PWM、A/D、D/A等。最早的单片机: 1976年,Intel的8048,Motorola的68HC05、Zilog公司的Z80.(4) DSP处理器对系统构造和指令进展了特别设计,使其合适DSP算法高效乘累加运算、超标量操作、指令流水线高效数据存取、硬件重复循环确定性操作(程序执行时间可预料)应用场合:音视频编解码、数字滤波、FFT等(5) 片上系统将整个系统做在一个芯片上优点a) 通过变更内部工作电压,降低芯片功耗b) 削减芯片对外的引脚数,简化制造过程c) 削减外围驱动接口单元及电路板之间的信号传递,加快微处理器数据处理的速度d) 内嵌线路可避开信号传递
10、时所造成的系统杂讯联发科推出28nm双核处理器MT6572a) 代号武松,基于Cortex-A7架构b) 主频为1.2GHzc) 处理器上整合了Wi-Fi、FM收音机、GPS以及蓝牙四种功能d) 支持500万像素摄像头(6) 嵌入式处理器的开展趋势a) 内部构造SoC设计,及DSP、Flash、FPGA交融;性能更强,集成更多的功能部件;双核或多核构造b) 功耗更低c) 牢靠性更高d) 支持ISP、ISD1.5 嵌入式操作系统(1) 操作系统的概念及功能操作系统。是一组计算机程序的集合,用来有效地限制和管理计算机的硬件和软件资源,并为用户供给便利的应用接口。功能:处理器管理;存储器管理;设备管
11、理;文件管理;用户接口(2) 操作系统的分类按程序调度的方法分为l 依次操作系统。只含一个运行程序,独占CPU时间,依次执行。如DOS系统。l 分时操作系统。系统内同时有多道程序运行。如Unix系统。l 实时操作系统。从应用角度,嵌入式操作系统可分为l 面对低端信息家电l 面对高端信息家电l 面对个人通信终端l 面对通信设备l 面对汽车电子l 面对工业限制从实时性的角度,嵌入式操作系统可分为l 具有强实时特点的嵌入式操作系统l 具有弱实时特点的嵌入式操作系统l 没有实时特点的嵌入式操作系统(3) 实时操作系统(RTOS)是具有实时性且能支持实时限制系统工作的操作系统,首要任务是调度一切可利用的
12、资源来完成限制任务。对现场不停监测,一旦有事务发生能马上处理。及通用OS的区分:实时性,代码尺寸小。一般包括以下几个重要组成部分:l 实时内核:任务管理、定时器管理、存储器管理、任务间通信及同步等。l 网络组件l 文件系统l 图形用户界面IEEE的Unix委员会规定了实时操作系统须具备以下几个特点:l 支持异步事务的响应。l 中断和调度任务的优先机制。l 支持指令性安排占式调度。l 支持同步。(4) 常见的嵌入式操作系统嵌入式Linuxl 实时的嵌入式Linux:如RT-Linux、KURT-Linux等。 RT-Linux将通常的Linux任务优先级设为最低。l 一般的嵌入式Linux:如C
13、Linux。l 开源,内核小、效率高,可定制C/OS和C/OS-IIl C/OS-II (MicroController Operating System) 是由Jean J. Labrosse开发的实时操作系统内核。l 已被移植到Intel、ARM、Motorola等公司的81种不同的处理器上。l Labrosse用一年时间开发了C/OS实时操作系统; 1992年在Embedded System Programming上 发表介绍文章,并公布源代码;1993年写了C/OS, The Real-Time Kernel;书及源码推动了C/OS-II的开展。l C/OS-II只是一个实时操作系统的
14、内核,全部核心代码只有8.3 KB。l 只包含进程调度、时钟管理、内存管理和进程间的通信及同步等根本功能。Windows CEl 多线程、完好优先权、多任务的32位嵌入式操作系统。l 根本内核大小至少为200KB。VxWorksl 美国WindRiver公司于1983年设计l 是目前嵌入式系统领域中运用最广泛、市场占有率最高的系统。l 拥有良好的持续开展实力和高性能的内核及友好的用户开发环境。l 支持多种处理器,如ARM、x86、i960、SunSparc、MIPS RX000、PowerPC、StrongARM等。l 以良好的牢靠性和实时性,广泛应用在通信、军事、航空、航天等领域。l 应用案
15、例:美国F-16、FA-18战斗机,B-2隐形轰炸机,“爱国者”导弹,1997年4月在火星登陆的火星探测器。Palm OSl 32位嵌入式操作系统,由3Com公司的Palm Computing部门开发。l 在掌上电脑和PDA市场上占有很大的市场份额,曾占据90%的PDA市场份额。l 2010年04月29日惠普12亿美元收买PalmQNXl 一个实时、可扩大的操作系统。l 部分遵循POSIX(可移植操作系统接口)相关标准。l 内核仅供给4种效劳:进程调度、进程间通信、底层网络通信和中断处理。l 内核特别小巧(QNX4.X约为12KB),运行速度极快。iOSl 苹果推出,基于Darwinl 最新:
16、iOS8Androidl Google开发的基于Linux平台的开源手机操作系统Delta OSl 是电子科技高校实时系统教研室和北京科银京成技术结合研制并开发的全中文嵌入式操作系统。l 绝大部分代码由C语言编写。l 已胜利应用于通信、网络、信息家电等多个应用领域。pSOSISI公司研发的产品。模块化、高性能、完全可扩展。1.6 嵌入式系统的应用及开展趋势(1) 嵌入式系统的应用领域l 消费电子领域l 通信网络领域l 工业限制领域、机器人领域l 交通管理及汽车电子领域l 国防及航空航天领域l 医疗仪器领域(2) 嵌入式系统的开展趋势l 小型化、智能化、网络化、可视化l 多核技术的应用l 低功耗
17、、绿色环保l 云计算、可重构、虚拟化等技术被进一步应用到嵌入式系统中l 嵌入式系统软件将渐渐PC化l 交融趋势n 微限制器MCU及SoC的结合n 微限制器MCU及DSP的结合n ARM及DSP的结合n 微限制器MCU及CPLD/FPGA的结合l 平安性2 ARM体系构造教学目的:使学生对ARM设计思想、ARM处理器系列、ARM体系构造、ARM处理器形式、ARM内部存放器、ARM体系的存储系统有肯定的理解。教学重点:ARM设计思想、ARM体系构造、ARM处理器形式、ARM内部存放器。教学难点:ARM处理器形式、ARM内部存放器。教学方法及教学手段:课堂讲授,多媒体教学。教学时间:4课时。教学内容
18、2.1 ARM设计思想(1) RISC传统的CISC (Complex Instruction Set Computing)指令集中,约20%指令占整个程序代码的80%。RISC (Reduced Instruction Set Computing) 是一种设计思想,其目的是设计出一套能在高时钟频率下单周期执行、简洁而有效的指令集。RISC设计重点在于降低硬件执行指令的困难度,而传统的CISC更侧重于硬件执行指令的功能性,使CISC指令变得困难。(2) RISC设计思想的实现l 指令集。削减了指令种类,指令只实现简洁的功能,指令长度固定。l 流水线。指令的处理过程被拆分成几个更小的、可以被流水
19、线并行执行的单元。l 存放器。更多通用存放器,可存数据和地址,可为全部数据操作供给快速的部分存储访问。l load-store构造。处理器只处理存放器中数据,用load和store指令完成存放器和外存间的数据传送(3) ARM的设计思想l 较小的核。降低功耗l 高的代码密度。考虑本钱和物理尺寸限制l 较小的处理器内核管芯 (Die) 面积。留给外设电路的空间较大l 硬件调试技术(4) ARM微处理器的特点l 体积小,功耗低,本钱低,性能高;l 支持Thumb/ARM指令集,兼容8/16位器件; l 大量运用存放器,指令执行速度更快;l 大多数数据操作都在存放器中完成;l 寻址方式敏捷简洁,执行
20、效率高;l 指令长度固定。2.2 ARM体系构造分析(1) 包含典型 的RISC 体系构造特征l 统一存放器文件加载/存储体系构造,数据处理操作只针对存放器内容;l 简洁寻址形式,全部加载/存储地址只通过存放器内容和指令字段确定。l 指令长度固定,简化了指令译码。(2) 还供给l 可组合运用转换及算术或逻辑运算指令l 自动递增和自动递减寻址形式,可优化程序循环l 加载存储多个指令以最大化数据吞吐量l 几乎全部指令都实行条件执行的方式(3) 普林斯顿构造和哈佛构造普林斯顿构造:也称冯诺伊曼构造,它将程序指令存储器和数据存储器合并在一起的存储构造。ARM7系列基于普林斯顿构造。哈佛构造:将程序指令
21、存储和数据存储分开的存储构造。ARM9系列之后都基于哈佛构造。(4) 流水线ARM7的三级流水线在执行单元完成了大量的工作,执行单元的工作往往占用多个时钟周期,从而成为系统性能的瓶颈。ARM9采纳哈佛架构,避开了数据访问了取指的总路途冲突,采纳五级流水线设计。五级流水线技术把三级流水线中的执行单元进一步细化,削减了在每个时钟周期内必需完成的工作量,进而允许运用较高的时钟频率。无论三级流水线还是五级流水线,在以下状况下都会发生堵塞:l 多周期指令、跳转分支指令l 中断发生l 相邻指令之间的存放器冲突:假如当前指令(A)的目的操作数存放器和下一条指令(B)的源操作数存放器一样,B指令就须要等A回写
22、之后才能译码。(5) ARM体系构造的版本2.3 ARM处理器系列(1) ARM处理器系列l 经典ARM处理器:ARM7、 ARM9、 ARM10、 ARM11l Cortex-A系列处理器:Cortex-A15、Cortex-A9、Cortex-A8、Cortex-A7、Cortex-A5l Cortex-R系列处理器:Cortex-R7、Cortex-R5、Cortex-R4l Cortex-M系列处理器:Cortex-M4、Cortex-M3、 Cortex-M1、 Cortex-M0+、 Cortex-M0、CMSDK、CMSISl SecurCore处理器(2) ARM内核版本命名规
23、则(3) ARM7系列微处理器a) 主要特点l 最高主频:130MIPS(Million Instructions Per Second);l 功耗低;l 代码密度高,兼容16位的微处理器;l 可得到广泛的操作系统和实时操作系统支持;l 众多的开发工具,优秀的调试机制;l 采纳3级流水线构造;l 供给0.25m、0.18m和0.13m的消费工艺。b) 冯诺伊曼构造:数据和指令运用同一条总线。c) 包括ARM7TDMI、ARM7TDMI-S、ARM7EJ-S和ARM720T四种类型,适用于不同的市场要求d) ARM7TDMIl ARM公司最早为业界普遍认可并广泛应用的处理器核。l T:Thumb
24、;D:Debug;M:Multiplier;I:Embedded ICE logic。e) ARM7TDMI-Sl 是ARM7TDMI的可综合 (synthesizable) 版本(软核)。l ARM以“软”核的方式把ARM7TDMI核受权给处理器厂商,处理器厂商可进展修改和综合。这就是ARM7TDMI-S。l 综合出的整个核比“硬”核大50%,电源效率降低50%。f) ARM7EJ-Sl 是可综合的、带有增加型DSP(E变种)和Java加速功能(J变种)的32位RISC嵌入式处理器 。l 主要用于数字音频播放器、带Java功能的无线手持设备、喷墨打印机、数码相机和PDA等方面。g) ARM7
25、20Tl 专为运用Windows CE、Symbian OS操作系统平台设计。l 主要用于数字音频播放器、喷墨打印机和数码相机等。(4) ARM9系列微处理器a) 主要特点l 5级整数流水线;l 单一的32位AMBA (Advanced Microcontroller Bus Architecture) 总线接口;l MMU支持Windows CE、Symbian OS、Linux等;l 支持实时操作系统,包括VxWorks;l 统一的数据Cache和指令Cache;l 供给0.25m、0.18m和0.13m的消费工艺。b) 包括ARM9TDMI、ARM920T、ARM940T和ARM9E四种
26、类型。后三种含有Cache。c) 采纳Harvard体系构造l 指令及数据分开存储。l 采纳指令快存 和数据快存。d) 在一样工艺条件下,ARM9TDMI的处理实力是ARM7TDMI的两倍。e) ARM920Tl Motorola MC9328MX1和Samsung S3C2410X处理器都采纳ARM920T 核心。l 主要应用于通信终端、3G基带和应用途理器、基于OS的平台设备、数码相机、音频/视频解码和机顶盒等。f) ARM940Tl 及ARM920T相比,实现了一个更小的D-Cache、I-Cache和MPU。适于不需运行操作系统的平台。g) ARM9El 运用单一的处理器核,供给微限制
27、器、DSP、Java应用系统的解决方案;l DSP指令集;l 在0.13m工艺下,主频可达300MIPS的性能;l 集成实时跟踪调试功能;l 可选的VFP9浮点处理协处理器;l 高性能的AHB (Advanced High performance Bus)。(5) ARM10系列微处理器a) 主要特点l 6级流水线;l 在典型的0.13m工艺下,主频可达400MIPS的性能;l 单一的32位AMBA 总线接口;l MMU支持Windows CE、Symbian OS、Linux等;l 统一的数据Cache和指令Cache;l 供给0.25m、0.18m和0.13m的消费工艺;l 并行读取/写入
28、部件。b) 包括:ARM1020、ARM10200、ARM1020E、ARM1022E、ARM1026EJ-S。c) 运用ARM10TDMI处理器核,采纳ARMv5T构造。d) ARM10TDMIl 在一样工艺条件下,处理实力是ARM9TDMI的两倍;l 采纳进步时钟频率、6级流水线、转移预料逻辑、64位存储器和无堵塞的存/取逻辑等措施提升性能。e) ARM10E。新节能形式,64位Load/Store体系,及ARM10TDMI相比具有的特点l DSP指令集;l 可选的VFP10浮点处理协处理器;l 在实时限制和三维图像处理时,主频可达650MFLPS (百万次浮点运算每秒)。(6) ARM1
29、1系列微处理器l ARM1156T2-S内核、 ARM1156T2F-S内核、 ARM1176JZ-S内核和ARM11JZF-S内核l ARM1156T2-S内核和 ARM1156T2F-S内核l 基于ARM v6指令集体系构造;l 是首批含有ARM Thumb-2内核技术的产品。(7) Cortex-A系列微处理器l 适于高计算要求、运行丰富操作系统及供给交互媒体和图形体验的应用领域。l 支持传统 ARM、Thumb指令集和新的高性能紧凑型 Thumb-2 指令集。l 挪动互联网的支持 n 低功率设计,支持 Adobe Flash 10.1n 高性能 NEON 引擎,广泛支持媒体编解码器l
30、高性能n Cortex-A15:为新一代挪动根底构造应用和无线根底构造应用供给高性能的解决方案。n Cortex-A9。800 MHz - 2 GHz 的频率,作单核处理器或 1-4 核多核合成处理器,每内核可供给 5000 DMIPS 的性能。n Cortex-A8。单核解决方案,可供给经济有效的高性能,在 600 MHz - 1 GHz 的频率下,供给的性能超过 2000 DMIPS。n Cortex-A5 低本钱实现,在 400- 800 MHz 的频率下,供给的性能超过 1200 DMIPS,是尺寸最小、功耗最低的 ARM 多核处理器。l 多核技术:Cortex-A15、Cortex-
31、A5和Cortex-A9 处理器都支持 ARM 第二代多核技术。l 高级扩展n Thumb-2,供给最佳代码大小和性能。n TrustZone,平安扩展,供给可信计算。n Jazelle 技术,进步执行环境(如 Java、MSIL、Python 和 Perl)速度。(8) Cortex-R系列微处理器l 为具有严格的实时响应限制的深层嵌入式系统供给高性能计算解决方案。n 快速。以高时钟频率获得高处理性能。n 确定性。处理在全部场合都必需符合硬实时限制。n 平安。系统必需牢靠且可信。n 本钱效益。在处理器及其内存系统中都具有竞争力的本钱和功耗。l 应用领域n 智能手机n 企业系统:硬盘驱动器、联
32、网和打印n 消费电子:机顶盒、数字电视和播放器n 医疗行业、工业和汽车行业的牢靠系统l 功能集(9) Cortex-M系列微处理器l 向上兼容的高能效、易于运用的处理器l 针对本钱和功耗敏感的 MCU 和终端应用的混合信号设备进展过优化。l 更低的功耗,更长的电池寿命。l 高密度指令集,更小的代码,更低的硅本钱。(10) SecurCore系列微处理器l 为平安要求较高应用设计。智能卡n SIM、ID、银行业、付费电视、公共交通、电子政务2.4 ARM处理器形式(1) 32位ARM处理器工作状态32位ARM处理器有三种工作状态l ARM状态。对应32位ARM指令集l Thumb状态。对应16位
33、Thumb指令集l Jazelle状态。对应8位的Jazelle指令集用于在处理器指令层次对JAVA加速只有进入特定的状态,相应的指令集才有效。CPSR的J(Jazelle)和T(Thumb)位反映程序的状态。Thumb-2l 及现有 ARM 和 Thumb 解决方案向后兼容,同时扩展了 Thumb 指令集的可用功能;l 运用少于 31% 的内存以降低系统本钱;l 供给比现有高密度代码高出 38% 的性能。(2) 64位ARM处理器工作状态ARMv8架构两种主要执行状态:AArch64, AArch32AArch64:引入了一套新的指令集“A64”特地用于64位处理AArch32:兼容现有的3
34、2位ARM指令集ARMv8架构支持三个主要指令集A32(或 ARM):32 位固定长度指令集T32 (Thumb):以 16 位固定长度指令集的形式引入,在引入 Thumb-2 技术时增加为 16 位和 32 位混合长度A64:供给及 ARM 和 Thumb 指令集类似功能的64位固定长度指令集(3) ARM处理器运行形式l 用户形式(usr):ARM处理器正常的程序执行状态。l 快速中断形式(fiq):用于高速数据传输或通道处理l 外部中断形式(irq):用于通用的中断处理。l 管理形式(svc):操作系统运用的爱护形式。l 数据访问终止形式(abt):当数据或指令预取终止时进入该形式,可用
35、于虚拟存储及存储爱护。l 系统形式(sys):运行具有特权的操作系统任务。l 未定义指令中止形式(und):当未定义的指令执行时进入该形式,可用于支持硬件协处理器的软件仿真。运行形式可通过软件变更,也可通过外部中断或异样处理变更。用户形式之外的形式称为非用户形式或特权形式。除用户形式和系统形式之外的5种称为异样形式,常用于处理中断和异样、访问受爱护的系统资源等状况。2.5 ARM体系的异样处理(1) ARM体系中3种限制程序执行流程的方式:l 依次执行l 跳转分支指令l 异样中断:处理器短暂中断当前数据流的现象。(2) 对异样的响应。 ARM处理器执行完当前指令后:l 进入及特定的异样相应的操
36、作形式;l 将引起异样指令的下一条指令的地址保存到新形式的R14中;l 将CSPR原值保存到新形式的SPSR中;l 通过设置CSPR的第7位来制止IRQ。假如为FIQ中断,则还要设置CSPR的第6位来制止FIQ;l 给PC强迫赋向量地址值。(3) 中断向量表指定了异样中断及其处理程序的对应关系,它通常存放在存储地址的低端。大小为32字节,其中每个异样中断占据4字节空间,用于存放一个跳转指令或者一个向PC存放器中赋值的指令。(4) 异样优先级:当几个异样中断同时发生时,就必需依据肯定的次序来处理这些异样中断。(5) 从异样返回将连接存放器LR的值减去相应偏移量后送到PC中;将SPSR复制回CPS
37、R中;若在进入异样处理时设置了中断制止位,则要去除。通过一般指令限制PC返回软件中断的返回指令MOVSR15, R14;将链接存放器内容移入PC并转换形式IRQ,FIQ和预取异样终止中断的返回指令SUBSR15, R14, #4数据终止异样的返回指令SUBSR15, R14, #8; 异样在导致异样的指令的下一条指令后产生2.6 ARM内部存放器(1) 存放器构造32位ARM有31个32位通用存放器,6个状态存放器。通用存放器可用来保存数据和地址信息,用R为前缀加存放器序号表示15个通用存放器(R0R14)、一个或两个状态存放器及程序计数器可在随意时间和处理器形式下被访问,有些处理器形式拥有自
38、身独立的存放器(2) 通用存放器分成三类:R0R7:未分组存放器。每个未分组存放器在全部的处理器形式下都表示同一个物理存放器。R8R14:分组存放器。每个分组存放器及一个用户形式的存放器对应。R15:程序计数器PC。分组存放器R8R14可分为两组:R8R12:每个存放器对应两组不同的物理存放器,一组是FIQ形式下的,记为R8_fiqR12_fiq, 另一组是除FIQ形式外的:R8_usrR12_usr。R13R14:分别对应6个不同的物理存放器。用户形式和系统形式共用一个存放器,另外5个对应其余5种。R13 _ R14 _ 可以是以下几种形式之一:usr、svc、abt、und、irq和fiq
39、。R13:被称为堆栈指针SP,但没有任何指令强迫性运用R13作为堆栈指针R14又被称为链接存放器LR(Link Register)。当调用子程序时,返回地址被自动保存到R14。由于ARM采纳了多级流水线技术,所以当正常读取PC值时,该值为当前指令地址值加8,或是加12。2.7 ARM体系的存储系统(1) 地址空间将存储器看作是从零地址开场的字节的线性组合0-3字节:第1个存储的字数据4-7字节:第1个存储的字数据依次排列(2) 存储器格式大端格式小端格式(3) 存储器访问对准无论取指还是内存访问都以字、半字或字节对准访问a) 非对齐的指令预取操作ARM状态:将一个非对齐地址写入PC,数据的第0
40、位和第1位被忽视,PC的bit1:0为0Thumb状态:数据的第0位被忽视,PC的bit0为0b) 非对齐地址内存的访问操作(LOAD/STORE操作)执行结果不行预知忽视字单元地址低两位的值,半字单元最低位的值(分别对应访问字和半字)在LDR和SWP指令中,对存储器访问忽视造成地址不对齐的低地址位,然后运用这些低地址位限制装载数据的循环3 ARM指令系统及程序设计根底教学目的:使学生对ARM指令系统及程序设计的根底学问有肯定的理解。教学重点:ARM指令系统。教学难点:ARM程序设计的根底学问。教学方法及教学手段:课堂讲授,多媒体教学。教学时间:4课时。教学内容3.1 ARM寻址方式(1) 寻
41、址方式处理器依据指令中给出的地址信息找寻物理地址的方式。找寻操作数或操作数地址的方式。(2) 马上寻址也叫马上数寻址,操作数本身在指令中给出,该操作数被称为马上数。例如:ADDR0, R0, #1; R0R0+1马上数须以“#”为前缀,对于十六进制表示的马上数,还需在“#”后加上“0x”或“&”。(3) 存放器寻址操作数存在存放器中。例如:ADDR0, R1, R2; R0R1+R2(4) 存放器间接寻址以存放器的值作为操作数地址。例如:ADDR0, R1, R2; R0 R1+R2(5) 基址变址寻址a) 基址加偏移的寻址方式将存放器内容及指令中给出的地址偏移量相加,得到操作数的有效地址。如
42、:LDRR0, R1, #4; R0 R1+4前变址:基址加变址作为操作数地址。后变址:基址作为操作数的地址,传送后自动更新基址存放器的值。b) 基址加索引的寻址方式将基址存放器的值及索引存放器的值相加,形成操作数的有效地址。例如:LDRR0, R1, R2 ; R0 R1+R2c) 多存放器寻址一条指令可完成多个(最多16个)存放器值的传送。例如:LDMIA R0, R1, R2, R4; R1 R0; R2 R0+4; R4 R0+8(6) 存放器移位寻址操作数为存放器中数做相应的移位而得到例如:ARM中的移位或循环移位操作:l LSL:逻辑左移(Logical Shift Left)l
43、LSR:逻辑右移(Logical Shift Right)ADDR0, R1, R2, LSL #3; R0R1+8R2l ASR:算术右移(Arithmetic Shift Right)。移位过程中保持符号位不变,若源操作数为正数,则字的高端空出的位补0。若源操作数为负数,则字的高端空出的位补1。l ROR:循环右移(Rotate Right)。从字的最低端移出的位依次填入字的高端空出的位。l RRX:扩展的循环右移(Rotate Right Extended )。操作数向右移一位,左侧空位由状态存放器C位填充。当移位的类型为RRX时,无需指定移位的位数,其它的则须指定移位的位数。(7) 相
44、对寻址以PC当前值作为基地址,指令中的地址标号作为位移量,两者相加后得到操作数的有效地址。例如:BLNEXT ; 跳转至子程序 NEXTNEXTMOVPC, LR ; 从子程序返回(8) 堆栈寻址a) 堆栈:按先进后出(FILO)的方式工作,运用堆栈指针(Stack Pointer, SP) 指示当前操作位置。b) 依据栈指针的指向位置可将堆栈分为l 满堆栈:SP指向最终压入堆栈的数据。l 空堆栈:SP指向下个将放入数据空位置c) 依据堆栈的生成方式可将堆栈分为l 递增堆栈(Ascending Stack):堆栈由低地址向高地址生成。l 递减堆栈(Descending Stack) :由高地址
45、向低地址生成。d) ARM支持四种类型堆栈工作方式满递增堆栈:SP指向最终压入的数据,且由低地址向高地址生成。满递减堆栈:SP指向最终压入的数据,且由高地址向低地址消费。空递增堆栈:SP指向下个将放入数据的空位置,且由低地址向高地址生成。空递减堆栈:SP指向下个将要放入数据的空位置,且由高地址向低地址生成。3.2 ARM指令集(1) ARM指令集分类加载/存储指令数据处理指令分支指令状态存放器访问指令异样/中断指令协处理器指令(2) ARM指令的特点全部指令都是32bit;大多数指令都在单周期内完成;全部指令都可以条件执行;load/store体系构造;指令集可以通过协处理器扩展。(3) ARM指令的格式(4) ARM指令的条件执行全部ARM指令都可包含一个可选的条件码,只有当CPSR中条件标记位满意指定条件时,指令才会被执行。否则以NOP指令通过流水线。(5) 加载/存储指令Load:将内存中数据装载到存放器Store:将存放器中的数据存入内存a) 单存放器传输指令 B Rd,