2022年嵌入式总结 .pdf
《2022年嵌入式总结 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式总结 .pdf(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1.嵌入式系统的定义:嵌入式系统是电脑软件与硬件的综合体,它是以应用为中心, 以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统的组成: 嵌入式处理器、 外围设备、 嵌入式操作系统和应用软件等几部分组成。嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。嵌入式处理器分成4 类:即嵌入式微处理器、嵌入式微控制器、嵌入式DSP 处理器和嵌入式片上系统。嵌入式系统的软件一般由嵌入式操作系统和应用软件组成。操作系统是连接计算机硬件与应用程序的系统程序。操作系统的概念: 操作系统是一组计算机程序的集合,用来有效的控
2、制和管理计算机的硬件和软件,即合理地对资源进行调度,并为用户提供方便的应用接口。操作系统有两个基本功能: 使计算机硬件便于使用; 高效组织和正确地使用计算机的资源。操作系统有 4 个主要任务:进程管理、进程间通信与同步、内存管理和I/O 资源管理。目前嵌入式系统的软件主要有两大类:实时系统和分时系统。实时系统的定义: 实时系统是这样一种系统,即系统执行的正确性不仅取决于计算的逻辑结果,而且还取决于结果的产生时间。实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务;实时系统又可以分为 硬实时系统 和 软实时系统 。硬实时和软
3、实时的区别就在于对外界的事件做出反应的时间。硬实时系统和软实时系统实现的区别主要是在选择调度算法上。对于软实时系统,选择基于优先级调度的算法足以满足软实时系统的需求,而且可以提供高速的响应和大的系统吞吐量;而对硬实时系统来说,需要使用的算法就应该是调度方式简单,反应速度快的实时调度算法。任务:任务是指一个程序分段,这个分段被操作系统当做一个基本工作单元来调度。任务是在系统运行前已经设计好的。进程:进程是指任务的一次运行过程,它是动态过程。有些操作系统把任务和进程等同看待,认为任务是一个动态过程,即执行任务体的动态过程。多用户:允许多台用户通过各自的终端使用同一台主机,同享一个操作系统及各种系统
4、资源。多任务的含义:每个用户的应用程序可以设计成不同的任务,这些程序可以并发执行。多用户及多任务系统可以提高系统的吞吐量,更有效地利用资源。实时内核的任务管理实现在应用系统中建立任务,删除任务、挂起任务,恢复任务以及对任务的响应、切换和调度等功能。ARM 处理器为 RISC 芯片,其简单的结构使ARM 内核非常小,这使得器件的功耗也非常低。它具有经典RISC 的特点:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - ARM 处理
5、器实现加载存储 (load/store) 体系结构是典型的RISC 处理器。只有加载和存储指令可以访问存储器。数据处理指令只对寄存器的内容进行操作。ARM 处理器有三大特点:小体积、低功耗、低成本而高性能;16/32 位双指令集;全球的合作伙伴众多。对于一台内存为256M 的 32bit x86 主机来说,它的虚拟地址空间范围是00 xFFFFFFFF(4G),而物理地址空间范围是0 x0000000000 x0FFFFFFF(256M) 。存储器结构:哈佛结构 :程序存储器和数据存储器是相互独立的,使用各自不同的总线进行访问 . 冯*诺依曼 (Von Neumann)结构:程序存储器和数据存
6、储器合二为一,使用同样的总线进行访问 . 2CISI 与 RISC 的区别类别CISCRISC指令系统指令数量很多较少,通常少于 100 执行时间有些指令执行时间很长,如整块的存储器内容拷贝;或将多个寄存器的内容拷贝到存贮器没有较长执行时间的指令编码长度编码长度可变,1-15 字节编码长度固定,通常为4 个字节寻址方式寻址方式多样简单寻址操作可以对存储器和寄存器进行算术和逻辑操作只能对寄存器对行算术和逻辑操作, Load/Store体系结构编译难以用优化编译器生成高效的目标代码程序采用优化编译技术,生成高效的目标代码程序3.RISC 特点如下:指令规整、对称、简单。指令小于100 条,基本寻址
7、方式有23种。单周期指令。指令字长度一致,单拍完成,便于流水操作; ARM7 三级流水线:取指、译码、执行;ARM9 五级流水线;ARMl0 六级流水线。大量的寄存器。寄存器不少于32 个。数据处理器的指令只对寄存器的内容操作。只有加载存储指令可以访问存储器。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 项目ARM7 ARM9 ARM10 ARM11 流水线3 5 6 8 典 型频率(MHz)80 150 260 335 功
8、耗(mW/MHz )0.06 0.19(+cache)0.5 (+cache )0.4 (+cache)性能MIPS*/MHz 0.97 1.1 1.3 1.2 架构冯诺伊曼哈佛哈佛哈佛注意: ARM 核 并不是芯片, ARM 核与其它部件如RAM 、ROM、片内外设组合在一起才能构成现实的芯片。ARM7TDMI 支持 32位寻址范围,并弥补了ARM6 不能在低于 5V 电源电压下工作的不足。 ARM7TDMI 的后缀意义为:ARM7TDMI 处理器使用了冯 诺依曼(Von Neumann)结构,指令和数据共用一条 32 位总线。 只有装载、存储和交换指令可以对存储器中的数据进行访问。ARM
9、处理器支持下列数据类型:字节8 位半字16 位(必须分配为占用两个字节)字32位(必须分配为占用4 各字节)注意:V4 版本之后的 ARM 结构都支持这 3 种结构(包括 V4 版本) ,而以前的版本只支持字节和字;当数据类型定义为无符号型时, N 位数据值使用正常的二进制格式表示范围为 02N-1 的非负整数;当数据类型定义为有符号型时, N 位数据值使用 2 的补码格式表示范围为-2N-1+2N-1-1 的整数注意:所有数据操作,例如ADD ,都以字为单位;装载和保存指令可以对字节、 半字和字进行操作, 当装载字节或半字时自动实现零扩展或符号扩展;ARM 指令的长度刚好是1 个字(分配为占
10、用4 个字节) ,Thumb 指令的长度刚好是半字(占用2 个字节) 。ARM7TDMI 处理器内核使用 V4T 版本的 ARM 结构, 该结构包含 32 位 ARM指令集和 16 位 Thumb 指令集。因此 ARM7TDMI 处理器有两种操作状态:ARM 状态: 32 位,这种状态下执行的是字方式的ARM 指令;Thumb 状态: 16 位,这种状态下执行半字方式的ARM 指令。注意:两个状态之间的切换并不影响处理器模式或寄存器内容。使用 BX 指令将 ARM7TDMI 内核的操作状态在ARM 状态和 Thumb 状态之间进行切换(详见第4 章) ,程序如下所示 。7.Arm 状态与 Th
11、umb 状态的转换;从 Arm 状态切换到 Thumb 状态名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - LDR R0,=Lable+1 BX R0 ;从 Thumb 状态切换到 ARM 状态LDR R0,=Lable BX R0 处理器模式说明备注用户(usr) 正常程序执行模式不能直接切换到其它模式系统(sys) 运行操作系统的特权任务与用户模式类似,但具有可以直接切换到其它模式等特权快 中 断(fiq) 支持高速数据传
12、输及通道处理FIQ 异常响应时进入此模式中断(irq) 用于通用中断处理IRQ 异常响应时进入此模式管理(svc) 操作系统保护模式系统复位和软件中断响应时进入此模式中止(abt) 用于支持虚拟内存和/或存储器保护在 ARM7TDMI没有大用处未 定 义(und) 支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式除用户模式外,其它模式均为特权模式。ARM 内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
13、- - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 在 ARM7TDMI 处理器内部有 37 个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。这五种模式称为 异常模式 。它们除了可以通过程序切换进入外,也可以由特定的异常进入。 当特定的异常出现时, 处理器进入相应的模式。每种异常模式都有一些独立的寄存器, 以避免异常退出时用户模式的状态不可靠。用户和系统这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。系统模式是特权模式, 不受用户模式的限制。操作系统在该模式下访
14、问用户模式的寄存器就比较方便, 而且操作系统的一些特权任务可名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 其中 R0R7 为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32 位物理寄存器。所有的 37个寄存器,分成两大类:31个通用 32位寄存器;6个状态寄存器。在汇编语言中寄存器R0R13为保存数据或地址值的 通用寄存器 。 它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用
15、寄存器的指令。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 寄存器 R8R14为分组寄存器 。它们所对应的物理寄存器取决于当前的处理器模式, 几乎所有允许使用通用寄存器的指令都允许使用分组寄存器寄存器 R8R12有两个分组的物理寄存器。一个用于除 FIQ模式之外的所有寄存器模式,另一个用于 FIQ模式。这样在发生 FIQ中断后,可以加速 FIQ的处理速度。名师资料总结 - - -精品资料欢迎下载 - - - - - - -
16、- - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - 寄存器 R13、 R14分别有 6个分组的物理寄存器。一个用于用户和系统模式,其余 5个分别用于 5种异常模式。寄存器 R13常作为 堆栈指针 (SP ) 。在ARM 指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb 指令集中存在使用 R13的指令。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
17、 8 页,共 21 页 - - - - - - - - - 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。正常操作时,从 R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上 8 个字节(两条 ARM 指令的长度)。由于 ARM 指令总是以字为单位,所以 R15 寄存器的最低两位总是为0。R14为链接寄存器 (LR) ,在结构上有两个特殊功能:在每种模式下, 模式自身的 R14版本用于保存子程序返回地址;当发生异常时, 将R14对应的异常模式版本设置为异常返回地址 (有些异常有一个小的固定偏移量) 。
18、寄存器 R15为程序计数器 (PC) ,它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - ARM7TDMI 内核包含 1 个 CPSR和 5 个供异常处理程序使用的SPSR 。 CPSR反映了当前处理器的状态,其包含:4 个条件代码标志(负 (N)、零(Z)、进位 (C)
19、和溢出 (V) ) ;2 个中断禁止位,分别控制一种类型的中断;5 个对当前处理器模式进行编码的位;1 个用于指示当前执行指令(ARM 还是 Thumb)的位。每个异常模式还带有一个程序状态保存寄存器(SPSR ) ,它用于保存在异常发生之前的CPSR。CPSR和 SPSR通过特殊指令( MRS、MSR)进行访问大多数 数值处理指令 可以选择是否影响条件代码标志位。通常如果指令带 S 后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。N、 Z、 C 和 V 位都是条件代码标志。算术操作、逻辑操作、MSR或者 LDM 指令可以对这些位进行设置。所有ARM 指令都可
20、按条件来执行,而 Thumb 指令中只有分支指令可按条件执行。各标志位的含义如下:N 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时 N=1,结果为正数或零时N=0;Z 指令结果为 0 时 Z=1(通常表示比较结果 相等 ) ,否则 Z=0;各标志位的含义如下:C 当进行加法运算 (包括 CMN 指令),并且最高位产生进位时C=1,否则 C=0。当进行减法运算 (包括 CMP 指令),并且最高位产生借位时C=0,否则 C=1。对于结合移位操作的非加法/减法指令, C 为从最高位最后移出的值,其它指令C 通常不变;V 当进行加法 /减法运算,并且发生有符号溢出时V=1,否则
21、V=0,其它指令 V 通常不变。CPSR 的最低 8 位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。它们分别是:中断禁止位;T 位;模式位。中断禁止位包括 I 和 F 位:当 I 位置位时, IRQ 中断被禁止;当 F 位置位时, FIQ 中断被禁止。T 位反映了正在操作的状态:当 T 位为 1 时,处理器正在 Thumb 状态下运行;当 T 位清零时,处理器正在ARM 状态下运行。模式位包括 M4、M3、M2、M1 和 M0,这些位决定处理器的操作模式。注意:不是所有模式位的组合都定义了有效的处理器模式,如果使用了错误的设置,将引起一个无法恢复的
22、错误。4进入 /退出异常进入异常在异常发生后, ARM7TDMI 内核会作以下工作:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 21 页 - - - - - - - - - 在适当的 LR 中保存下一条指令的地址,当异常入口来自:ARM 状态,那么 ARM7TDMI 将当前指令地址加4 或加 8 复制 (取决于异常的类型)到LR 中;为 Thumb状态, 那么 ARM7TDMI 将当前指令地址加 2、 4或加 8 (取决于异常的类型)复制到LR 中;异常处理器程序不
23、必确定状态。2.将 CPSR复制到适当的 SPSR中;3. 将 CPSR模式位强制设置为与异常类型相对应的值;4.强制 PC从相关的异常向量处取指。ARM7TDMI 内核在中断异常时置位中断禁止标志, 这样可以防止不受控制的异常嵌套。注:异常总是在 ARM 状态中进行处理。当处理器处于Thumb 状态时发生了异常,在异常向量地址装入PC 时,会自动切换到ARM 状态。退出异常当异常结束时,异常处理程序必须:1.将 LR( R14 )中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;2.将 SPSR的值复制回 CPSR;3.清零在入口置位的中断禁止标志。注:恢复 CPSR的动作会将 T
24、、F 和 I 位自动恢复为异常发生前的值。5.ARM7TDMI 处理器可以将存储器中的字以下列格式存储:大端格式( Big-endian)小端格式( Little-endian)存储器系统有两种映射机制:小端存储器系统:在小端格式中,高位数字存放在高位字节中。因此存储器系统字节0 连接到数据线 70(低位对齐 )。大端存储器系统:在大端格式中,高位数字存放在低位字节中。因此存储器系统字节0 连接到数据线 3124(高位对齐 ) 。在 ARM 指令集中不包含任何直接选择大小端的指令,但是一个同时支持大小端模式的 ARM 芯片可以通过硬件配置(一般使用芯片的引脚来配置)来匹配存储器系统所使用的规则
25、。ARM 结构使用单个平面的232个 8 位字节地址空间。字节地址按照无符号数排列,从0 到 2321。地址空间可以看作是包含230 个 32 位字,或 231 个 16 位半字。如果地址向上或向下溢出地址空间,通常会发生翻转。基于 ARM 内核的芯片具有许多的外设,这些外设访问的标准方法是使用存储器映射的 I/O,为外设的每个寄存器都分配一个地址。通常,从这些地址装载数据用于读入,向这些地址保存数据用于输出。有些地址的装载和保存用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年嵌入式总结 2022 嵌入式 总结
限制150内