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