ARM嵌入式系统.docx

上传人:飞****2 文档编号:88932995 上传时间:2023-05-04 格式:DOCX 页数:15 大小:29.25KB
返回 下载 相关 举报
ARM嵌入式系统.docx_第1页
第1页 / 共15页
ARM嵌入式系统.docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《ARM嵌入式系统.docx》由会员分享,可在线阅读,更多相关《ARM嵌入式系统.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一章 嵌入式系统概述 嵌入式系统:从技术的角度定义:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用应用系统对功能、可靠性、成本、体积、功耗严格要求的通用计算机系统。从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反应了这些系统通常是更大系统中的一个完整的部分。称为嵌入的系统。嵌入式处理器:嵌入式系统的核心,是控制,辅助系统运行的硬件单元。1.1.2嵌入式系统的定义及特点可以将嵌入式系统定义成“嵌入到对象体系中得专用计算机应用系统”。1. 嵌入式系统的特点按照嵌入式系统的定义,嵌入式系统有3个基本特点,即“嵌入性”、“内含计算机”

2、与“专用性”。1.1.3嵌入式系统的未来微处理器的处理能力按莫尔定律预计的速度在增加。该定律认为集成电路和晶体管个数每18个月翻一番。1.2嵌入式处理器(与系统之间的关系)一类嵌入式处理器注重尺寸、能耗和价格。另一类嵌入式处理器更关注性能。还有一类嵌入式处理器关注全部4个需求性能、尺寸、功耗和价格。1.2.2嵌入式系统的分类1.嵌入式微处理器(EMPU) 嵌入式微处理器的基础是通用计算机中的CPU。2. 微控制器(MCU)(包括嵌入式微处理器) 微控制器又称单片机,就是将整个计算机系统集成到一块芯片中。3. DSP处理器(DSP)(哈佛结构)在数字滤波、FFT、频谱分析等方面,DSP算法正在大

3、量进入嵌入式领域。4. 片上系统(SoC)SoC可以分为通用和专用两类。1.3嵌入式操作系统1.3.1嵌入式操作系统简介 分时操作系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联机用户,只具有很弱的实时功能,但与真正的实时操作系统仍然有明显的区别。实时操作系统应具备以下特点:1. 异地的时间响应。2. 切换时间和中断延迟时间确定。3. 优先级中断和调度。4. 抢占式调度。5. 内存锁定6. 连续文件。7. 同步实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。实时操作系统可以分为一般实时操作系统和嵌入式实时操作系统两种。一般实时操作系统与嵌入

4、式实时操作系统的主要区别在于应用场合和开发过程。 一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统中,并且提供了开发、调试、运用一致的环境。 嵌入式实时操作系统应用于实时性要求的实时控制系统中,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境不一致。1.3.2嵌入式操作系统基本概念1前后台系统 对于基于芯片开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。循环中调用响应的函数完成响应的操作,这部分可以看成后台行为;中断服务程序处理异步事件,这部分可以看成前台行为。后台可可以叫做任务级,前台也可以叫做中断级。2操作系统操作系统是

5、计算机中最基本的程序,操作系统的作用:负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;提供用户接口,使用户获得良好的工作环境;为用户扩展新的系统功能提供软件平台。3实时操作系统实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括储存器、外设等)管理、消息管理、任务调度及异常处理等工作。 时间分片方式和协作方式的RTOS并不是真正的“实时”。4代码的临界区5资源6共享资源7任务8任务切换9内核 多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。指

6、标1调度实时强弱 2占用CPU的时间10调度 调度是内核的主要职责之一,调度就是决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的,每个任务根据其重要程序的不同被赋予一定的优先级。基于优先级的调度法指CPU总是让就绪态的优先级最高的任务先运行。然后究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的什么类型的内核,是非占先式的还是占先式的内核。 非占先式:执行完成正在执行的任务再执行下一个任务。 占先式:中断正在执行的任务,执行任务11非占先式内核12占先式内核 当系统响应时间很重要时,要使用占先式内核,因此绝大多数商业上销售的实时内核都是占先式内核。13任务优先级

7、任务的优先级是表示任务被调度的优先程度,每个任务都具有优先级。任务越重要,被赋予的优先级应该越高,越容易被调度而进入运行态。14中断 中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)上下文,即部分(或全部)寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做时间处理,处理完成后,则 1在前后台系统中,程序回到后台程序;(主程序) 2对非占先式内核而言,程序回到被中断了的任务; 3对占先式内核而言,让进入就绪态的优先级最高的任务开始运行。15时钟节拍(作用:节拍产生的时候,进行调度) 时钟节拍是特定的周期性中断,这个中断可以

8、看做是系统心脏的脉动。时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。时钟节拍率越快,系统的额外开销就越大。1.3.3使用嵌入式实时操作系统的必要性 首先,嵌入式实时操作系统提高了系统的可靠性。 其次,嵌入式实时操作系统提高了开发效率,缩短了开发周期。 第三,嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。1.3.4嵌入式实时操作系统的优缺点 优点:在嵌入式实时操作系统环境下开发实时应用程序,使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。缺点:使用嵌入式实时操作系统还需要额外的ROM/RAM开销、2%5%的CPU额外

9、负荷以及内核的费用。1.3.5常见的嵌入式实时操作系统1Clinux Clinux即“微控制领域中的Linux系统”。 Clinux仍然保留了Linux的大多数优点:稳定、良好的移植性、优秀的网络功能、晚辈的对种文件系统的支持以及标准丰富的API等。2Windows CE Windows CE是精简的Windows95。其中CE中的C代表袖珍、消费、通信能力和伴侣;E代表电子产品。绝大多数的应用软件只需要简单地修改和移植就可以在Windows CE平台上继续使用。3 VxWorks VxWorks操作系统是一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核

10、以及友好的用户开发环境,使其在嵌入式实时操作系统领域占领一席之地。 具有的特点:1) 可靠性2) 实时性3) 可裁剪性VxWorks内核最小为8KB4 C/OS-II 一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统,其绝大部分源码是用ANSI写的。(作者:世界著名嵌入式专家Jean J.Labrosse) 特点:1) 提供源代码2) 可移植 C/OS-II的绝大部分源代码是使用移植性很强的ANSI编写的,与微处理器硬件相关的部分是使用汇编语言编写的。3) 可固化4) 可裁剪5) 可剥夺6) 多任务7) 可确定性8) 任务栈9) 系统服务10) 中断管理11) 稳定性与可靠性思

11、考与练习什么叫嵌入式系统?答:嵌入到对象体系中的专用计算机应用系统。什么叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的位处理器,目前仍在大规模应用的位单片机,到最新的受到广泛青睐的32位,64位嵌入式CPU。可分为嵌入式微处理器(EMPU)微控制器(MCU)DSP处理器 片上系统(SoC)第二章 ARM7体系结构LPC2000系列CPU的核心是ARM7飞利浦 LPC2000 :嵌入式微处理器2.1 ARM简介 ARM-Advanced Risc Machines RISC精简指令 ARM架构是ARM公司面向市场

12、设计的第一款低成本RISC微处理器。2.1.1 RISC结构特性 ARM内核采用精简指令集计算机(RISC)体系结构,其指令集和相关的译码机制比复杂指令集计算机(CISC)要简单得多,其目标就是设计出一套能在高时钟频率下单周期执行,简单而有效的指令集。 ARM具备了非常典型的RISC结构特性: 有大量的通用寄存器 通过装载/保存结构使用独立的load和store指令完成数据在寄存器与外部存储器之间的传送 寻址方式非常简单 使用统一和固定长度的指令格式(分16位和32位两种) 每一条数据处理指令都可以同时包含算术逻辑单元的运算和移位处理,以实现对ALU和移位器的最大利用 地址自动增加和自动减少的

13、寻址方式优化了程序中的循环处理 load/store指令可以批量传输数据,从而实现了最大数据吞吐量 大多数ARM指令可“条件执行”的,也就是说,只有当某个特定条件满足时指令才会被执行。2.1.2常用ARM处理器系列ARM公司开发了很多系列的ARM处理器核,应用比较多的是ARM7系列、ARM9系列、ARM10系列、ARM11系列,Intel的XScale系列和MPCore系列。1 Cortex-M3处理器 ARM Cortexx-M3处理器具有成本低,引脚数目少一级功耗低的优势,是一款具有极高运算能力和中断响应能力的处理器内核。2 Cortex-R4处理器3 Cortex-R4F处理器4 Cor

14、tex-A8处理器5 ARM7系列6 ARM9系列7 ARM10系列8 ARM11系列9 XScale(主要特点:安全性能)2.2 ARM7TDMI处理器:16位处理器(处理器一次可处理16位)指令集:指令的长度ARM的处理器是32位处理器ARM7TDMI是基于ARM体系结构V4版本的低端ARM核(注意:核并非芯片,ARM核与其他部件(如RAM、ROM、片内外设)组合在一起才构成现实的芯片)ARM7弥补了很难稳定在低于5V的电源下工作的不足,并且在短时间内增加了64位乘法指令(带M后缀的)、支持片上调试(带D后缀的)、高密度16位Thumb指令集扩展(带T后缀的)和Embedded ICE硬件

15、仿真功能模块(带I后缀的),形成ARM7TDMI2.2.1 储存器的字与半字 1个字4个字节=32位 ARM指令的长度刚好是一个字,Thumb指令的长度刚好是半个字ARM处理器使用了冯诺依曼结构ARM处理器直接支持8位字节、16位半字或者32位字的数据类型。其中,以能被4整除的地址开始连续的4个字节构成1个字,字的数据类型为4个连续的字节。从偶数地址开始连续的2个字节构成一个半字,半字的数据类型为2个连续的字节。ARM指令的长度刚好是1个字,Thumb指令的长度刚好是一个半字。 如果一个数据是以字方式存储的,那么它就是字对齐的,否则就是非字对齐的。如果一个数据是以半字方式存储的,那么它就是半字

16、对齐的,否则就是非半字对齐的。2.2.2 3级流水线ARM处理器使用流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处理器和存储器系统之间的操作更加流畅、连续,能提供0.9MIPS/MHz的指令执行速度。ARM Thumb取指PC PC 从存储器中取出指令译码PC-4 PC-2 对指令使用的寄存器进行译码执行PC-8 PC-4 从寄存器组中读书寄存器执行位移和ALU操作寄存器写回到寄存器组 取指 从存储器装载一条指令 译码 识别将要被执行的指令 执行 处理指令并将结果写回寄存器PC总是指向正在“执行”的指令。PC总是指向第三条指令当处理器处于ARM状态时,每条指令长为4字节,所以

17、PC的值为正在执行的指令地址加8字节。单片机时钟PC总是指向下一条指令 PC值(正在取指的地址)=当前程序执行位置+8字节 取指译码执行 PC PC-4 PC-8当处理器处于Thumb状态时,每条指令长为2字节 PC值=当前程序执行位置+4字节 程序清单2.1 PC的读取0x4000 ADD PC,PC,#4正在被执行的指令,将地址值PC+4写到PC0x4004 正在被译码的指令0x4008 正在被取指的指令,PC=0x40080x400C PK+4=0x400C2.4 ARM处理器状态ARM状态:32位,处理器执行字方式的ARM指令,处理器在系统上电时默认为ARM状态。Thumb状态:16位

18、,处理器执行半字方式的Thumb指令。注意:ARM和Thumb状态间的切换并不影响处理器模式或寄存器内容。 程序清单2.2 状态的切换从ARM状态切换到Thumb状态CODE32下面的指令为ARM指令LDR R0,=Labble+1(去掉二进制的最后一位地址)R0的bit0=1,BX自动将CPSR中的T置1BX R0切换到Thumb状态,并跳转到Lable处执行CODE16下面的指令为Thumb指令Lable MOV R1,#12从Thumb状态切换到ARM状态 CODE16下面的指令为Thumb指令 LDR R0,=LableR0的bit=0,BX自动将CPSR中的T置0 BX R0切换到A

19、RM状态,并跳转到Lable处执行 CODE32下面的指令为ARM指令Lable MOV R1,#102.5ARM处理器模式ARM处理器共支持7种处理模式 表2.2 ARM处理器模式处理器模式说明备注用户usr正常程序运行的工作模式不能直接从用户模式切换到其他模式特权模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有直接奇幻到其他模式等特权异常模式管理(svc)供操作系统使用的一种保护模式只有在系统复位和软件中断响应时,才进入此模式中止(abt)用于虚拟内存和(或)存储器保护在ARM7内核中没有多大用处未定义(und)支持软件仿真的硬件协处理器只有在问诶定义指令异常响应时,才

20、进入此模式中断(irq)中断请求处理只有在IRQ异常响应时,才进入此模式快速中断(fiq)快速中断请求处理只有在FIQ异常响应时,才进入此模式只有在特权模式下才允许对当前程序状态寄存器CPSR的所有控制位直接进行读/写访问,而在非特权模式下只允许对CPSR的控制位进行间接访问。1异常模式管理模式、中止模式、未定义模式、中断模式和快速中断模式这5种处理器模式统称为异常模式。通过程序修改CPSR可以进入异常。注意:当一个异常发生时,处理器总是切换到ARM状态而非Thumb状态。究竟何时进入异常模式,具体规定如下: 处理器复活之后进入管理模式,操作系统内核通常处于管理模式; 当处理器访问存储器失败时

21、,进入数据访问中止模式; 当处理器遇到不支持的指令时,进入未定义模式; 中断模式与快速中断模式分别对ARM处理器两种不同级别的中断作出响应。2系统模式 用户模式是程序正常运行的工作模式。系统模式与用户模式具有完全相同的寄存器。但系统模式主要供操作系统的任务使用,允许对CPSR进行读/写访问。注意:要想进入系统模式,必须通过修改CPSR才能实现。2.6ARM内部寄存器 31个通用32位寄存器 6个状态寄存器2.6.1 ARM状态下的寄存器1,各种模式下实际访问的寄存器2一般的通用寄存器3堆栈指针R13(SP) 堆栈是在内存中划分出的一段存储空间,这个存储空间就像是一个大的数据仓库,用于暂时保存一

22、些数据。 通常是把子程序或者异常服务程序将要用到的寄存器内容保存到堆栈中。 如果程序运行过程中,局部变量的数量太多,以至于处理器内部的寄存器无法全部装下时,程序员或者编译器会使用堆栈来作为数据暂存空间,将暂时未用到的数据压栈处理,当需要用到时再取出来。 在ARM处理器中通常将寄存器R13作为堆栈指针(SP),用于保存堆栈的出入口处地址。4链接寄存器R14(LR)5程序计数器R15(PC) R15总是指向正在“取指”的指令。6CPSR和SPSR2.6.2 Thumb状态下的寄存器1,各种模式下实际访问的寄存器 8个通用寄存器(R0R7) 程序计数器(PC) 堆栈指针(SP) 链接寄存器(LR)

23、程序状态寄存器(CPSR)2,一般的通用寄存器3,堆栈指针SP4 链接寄存器LR5,ARM状态寄存器与Thumb状态寄存器之间的关系 Thumb状态R0R7与ARM状态R0R7相同。 Thumb状态CPSR(无SPSR)与ARM转该CPSR相同5. 在Thumb状态中访问高端寄存器Thumb指令集并不能访问寄存器架构中得所有寄存器,但所有数据处理指令都可以访问R0R7;然而,可以对R8R12访问的指令只有一下几条,它们分别为MOV,ADDMCMP。可以使用MOV指令的特殊变量将一个值从低端寄存器(R0R7)转移到高端寄存器,或者从高端寄存器转移到低端寄存器。CMP指令可用于比较高端寄存器和低端

24、寄存器的值。27 当前程序状态寄存器 ARM内核包含1个CPSR和5个仅供异常处理模式使用的SPSR。CPSR(反应当前处理器状态)具体含义如下: 4个条件代码标志(负标志N、零标志Z、进位标志C和溢出标志V); 2个中断禁止位(IRQ进止与FIQ禁止) 5个对当前处理器模式进行编码的位(M4:0); 1个用于指示当前执行指令状态的位(ARM指令还是Thumb指令)。 书图2.102.7.1 条件代码标志N、Z、C和V位都是条件代码标志负标志N 运算结果的第31位置,记录标志设置操作的结果;零标志Z 如果标志设置操作的结果为0,则置位进位标志C 记录无符号加法溢出,减法无借位,循环位移;溢出标

25、志V 记录标志设置操作的有符号溢出。2.7.2 控制标志位CPSR的最低8位为控制位,它们分别是: 中断标志位I和F 处理器状态位T 处理器模式位M0M41, 中断禁止标志位当控制位I位置时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F位置时,FIQ中断被禁止,否则允许FIQ中断使能。注意:当I或者F控制位为0时,则允许IRQ或者FIQ中断(使能),即CPU内核可以响应中断了。2, 控制位T控制位T反映了正在操作的状态: 当控制位T置位时(“1”),处理器正在Thumb状态下运行; 当控制位T清零时(“0”),处理器正在ARM状态下运行。警告:绝对不要强制改变CPSR寄存器中的控制位T

26、。如果这样做,处理器会进入一个无法预知的状态。 3模式控制位 M4、M3、M2、M1和M0位(即M4:0)都是模式控制位不是所有模式位的组合都定义了有效的处理器模式,因此不要使用表中没有列出的组合 表2.9 CPSR模式位值M4:0模式可见的Tunb状态寄存器可见的ARM状态寄存器10000用户R0R7、SP、LR、PC、CPSRR0R14、PC、CPSR10001快速中断R0R7、SP_fiq、LR_fiq、PC、CPSRR0R7、R8_fiR14_fiq、PC、CPSR、SPSR_fiq10010中断R0R7、SP_irq、LR_irq、PC、CPSRR0R12、R13_irq、R14_i

27、rq、PC、CPSR、SPSR_irq2.7.3 保留位 CPSR中的保留位被保留,以便将来使用。 请确保程序不依赖于包含特定值的保留位,因为将来的处理器可能会讲这些位设置为1或者0.2.8ARM体系的异常、中断及其向量表 只要正常的程序被暂时中止,处理器就进入异常模式。2.8.1 异常入口/出口总汇表2.102.82 异常向量表表2.112.83 异常优先级表2.122.84 异常中断的进入与退出1进入异常当一个异常导致模式切换时,内核自动地做如下处理: 将异常处理程序的范围地址保存到相应异常模式下的LR,异常处理程序完成后的返回可通过将LR的值减去偏移量后写入PC(存断点) 将CPSR的当

28、前值保存到相应的异常模式下地SPSR,异常处理程序完成后的返回可通过保存在SPSR中的值来恢复CPSR(保存原状态) 设置CPSR为相应的异常模式(设置模式) 设置PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行(切换状态)2退出异常当异常处理程序结束时,异常处理程序必须执行如下操作:返回到发生异常中断的指令的吓一跳指令处执行将SPSR的值复制回CPSR在入口处置位的中断禁止控制位清零。2.8.5 复位异常nRESET(n一般低电平有效)信号被拉低时,ARM处理器放弃正在执行的指令当nRESET信号再次变为高电平时,ARM处理器执行以下操作:强制M4:0变为b1001

29、1,系统进入管理模式将CPSR中的控制位I和F置位,IRQ和FIQ中断禁止将CPSR中的控制位T清零,处理器处于ARM状态强制PC从地址0x00开始对吓一跳指令进行取指返回到ARM状态并恢复执行2.8.6 中断请求异常IRQ只有当CPSR中相应的中断屏蔽被清除时,才可能发生中断请求(IRQ)异常当异常发生时,程序计数器PC总是指向返回位置的吓一跳指令即第三条指令,也就是说异常处理程序的正确返回地址为PC-4,且在PC-8的地址处发生异常中断程序跳转。2.8.11 中断延迟通过软件处理程序来缩短中断延迟的方法有2种,它们分别是中断嵌套和使用高优先级2.9 ARM体系的存储系统ARM处理器采用冯诺

30、依曼结构,指令和数据公用一条32位数据总线,只有装载、保存、和交换指令可访问存储器中的数据。2.9.1地址空间ARM结构使用232个8位字节地址空间,字节地址的排列从0232-1.230个32位字,将地址除以4,地址为A的包含4个字节,地址分别为A、A+1、A+2和A+3包含231个16位半字,地址为A的半字包含2个字节,地址分别为A和A+12.9.2 存储器格式 1小端存储器系统 2大端存储器系统ARM指令集不包含任何直接悬着大小端存储器格式的指令,但是一个同时支持大小端存储器格式基于ARM的芯片可以通过硬件配置(一般使用芯片的引脚来配置)来匹配存储器系统所使用的规则注意:LPC2000系列ARM制定为小端模式,无论采取任何措施都不可改变

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁