收藏 分享(赏)

武汉理工大学嵌入式复习重点.doc

上传人:精品资料 文档编号:11092021 上传时间:2020-02-06 格式:DOC 页数:22 大小:2.52MB
下载 相关 举报
武汉理工大学嵌入式复习重点.doc_第1页
第1页 / 共22页
武汉理工大学嵌入式复习重点.doc_第2页
第2页 / 共22页
武汉理工大学嵌入式复习重点.doc_第3页
第3页 / 共22页
武汉理工大学嵌入式复习重点.doc_第4页
第4页 / 共22页
武汉理工大学嵌入式复习重点.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、第一章1. 嵌入式系统的定义:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、重量、功耗严格要求的专用计算机系统。2.3.4.嵌入式系统的特点:嵌入专用 嵌入式处理器与通用处理器的最大不同就是嵌入式处理器嵌入在针对特定应用设计的系统中综合性强 嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,是一个技术密集、资金密集、知识高度分散、不断创新的知识集成系统设计高效 可裁剪嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余程序固化 软件一般都固化在存储器芯片或处理器本身中,这样提高了系统的执行速度和可靠性需要独立的

2、开发系统 嵌入式系统本身不具备自举开发能力,必须有一套开发工具和环境才能进行开发生命周期长 嵌入式系统和具体应用结合在一起,其升级换代一般与具体产品同步进行,因此具有较长的生命周期可靠性高、成本低、资源受限、功耗低等等第二章1嵌入式设计方法的演变硬件设计的进步 旧方法:选择和使用标准通用集成电路器件 新方法:自己设计和制作部分专用的集成电路器件 由各种 EDA 工具软件提供支持的软件设计的进步 旧方法:无操作系统 新方法:基于操作系统设计 简化多任务、实时、复杂软件设计第三章(3.7 以后是重点,第三章前面的都不考。从 3.7 往后看)1.ARM 微处理机的工作模式ARM 微处理器支持 7 种

3、工作模式 User-用户模式(usr) ARM 处理器正常的程序执行状态 System-系统模式(sys) 运行具有特权的操作系统任务 IRQ-外部中断模式(irq) 用于通用的中断处理 FIQ-快速中断模式(fiq) 用于高速数据传输或通道处理Supervisor-管理模式(svc) 操作系统使用的保护模式 复位、软中断调用(SWI) Abort-中止模式(abt) 当数据或指令预取中止时进入该模式 可用于虚拟存储及存储保护 Undefined-未定义指令模式(und) 当未定义的指令执行时进入该模式 可用于支持硬件协处理器的软件仿真特权模式 除用户模式以外,其余 6 种模式称之为特权模式(

4、Privileged Modes) ,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。异常模式 除去用户模式和系统模式以外的 5 种又称为异常模式(Exception Modes) ,常用于处理中断或异常,以及需要访问受保护的系统资源等情况2.工作模式的改变通过软件改变 系统调用 通过外部中断或异常处理改变 外部中断:IRQ、FIQ 来自中断控制器 异常处理 来自 CPU 内部工作模式的改变举例SWI 软件中断指令 SWI 0x0 ; 调用 0 号软中断 SWI 0x12 ; 调用 12 号软中断IRQ 外部中断 _irq void HandlerTIMER5(void) ti

5、meval+; / 当前时刻递增 pIC-I_ISPC = INT_TIMER5; / 清除中断请求位 3.ARM 微处理器的工作状态一般有两种 第一种为 ARM 状态 处理器执行 32 位的 ARM 指令 ARM 指令要求字对齐 第二种为 Thumb 状态 处理器执行 16 位的 Thumb 指令 Thumb 指令要求半字对齐工作状态切换 在程序的执行过程中,处理器可以随时在两种工作状态之间切换,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容ARM 微处理器在开始执行代码时总是处于 ARM 状态,也就是复位后进入 ARM 状态工作状态切换方法 进入 Thumb 状态 执行

6、BX 指令 BX:带状态切换的跳转指令 当操作数寄存器的最低位0为 1 时,可以使微处理器从 ARM 状态切换到 Thumb 状态 BX R0 ;R0 的最低位0为 1 处理器工作在 Thumb 状态,如果发生异常并进入异常处理子程序,则异常处理完毕返回时,自动从 ARM 状态切换到 Thumb 状态工作状态切换举例B LabelCMP R1, #0BEQ LabelADRL R0, ThumbFun+1BX R0BLX Label4. ARM 处理器的寄存器37 个 32 位寄存器 31 个通用寄存器 6 个状态寄存器 这些寄存器不能被同时访问 取决于处理器的 工作状态 工作模式1)通用寄存

7、器 通用寄存器包括 R0R15 可以分为三类2)未分组寄存器 R0R7未分组寄存器 R0R7 在所有的工作模式下,每个未分组寄存器都指向对应的一个物理寄存器。在中断或异常处理进行工作模式转换时,由于不同的处理器工作模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏分组寄存器 R8R14分组寄存器 R8R14 R8R12 每个寄存器对应 2 个不同的物理寄存器 当使用 FIQ 模式时,访问 R8_fiqR12_fiq 当使用其他模式时,访问 R8_usrR12_usr R13、R14 每个寄存器对应 6 个不同的物理寄存器 其中一个寄存器是用户模式与系统模式共用 另外 5 个物理寄存器对应

8、于其他 5 种不同的工作模式R13 寄存器 一种习惯用法,常用作堆栈指针 SP(Stack Pointer) ,也可使用其他的寄存器作为堆栈指针,在 Thumb 指令集中,某些指令强制使用 R13 作为堆栈指针。在应用程序初始化时,一般都要初始化每种模式下的 R13,使其指向该工作模式的栈空间不同物理寄存器的区分。R14 寄存器 也称链接寄存器 LR (Link Register) 当执行 BL 子程序调用指令时,R14 中得到 R15(程序计数器 PC)的备份 BL Label;下一条指令地址LR, LabelPC 当发生中断或异常时,对应的分组寄存器 R14_svc、R14_irq、R14

9、_fiq、R14_abt 和R14_und 用来保存 R15 的返回值 其他情况下,R14 用作通用寄存器 R13_ R14_ mode 为:usr、fiq、irq、svc、abt、und 例如: R13_usr、R13_fiq、R13_irq R14_svc、R14_abt、R14_und3)程序计数器 R15 (PC)R15 寄存器R15 寄存器用作程序计数器(PC) 在 ARM 状态下,位1:0为 0,位31:2用于保存 PC 在 Thumb 状态下,位0为 0,位31:1用于保存 PC 由于 ARM 体系结构采用了多级流水结构,对于 ARM 指令集而言,PC 总是指向当前执行指令的下两

10、条指令的地址,即 PC 的值为当前执行指令的地址值加 8 个字节。R15 也可用作通用寄存器,但一般不这么使用。因为对 R15 的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。4) CPSR 寄存器 用作 CPSR(Current Program Status Register)CPSR 可在任何工作模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。异常模式下有一个专用的物理状态寄存器,称为 SPSR(Saved Program Status Register) ,当异常发生时,SPSR 用于保存 CPSR 的当前值,从异常退

11、出时则可由 SPSR 来恢复 CPSR。用户模式和系统模式不属于异常模式,没有SPSR。5. Thumb 状态下的寄存器Thumb 状态下的寄存器集是 ARM 状态下寄存器集的一个子集 程序可以直接访问 8 个通用寄存器(R7R0) 程序计数器(PC) 堆栈指针(SP) 连接寄存器(LR) CPSR:在每一种异常模式下都有一组 SP、LR 和 SPSR6. 程序状态寄存器程序状态寄存器的构成 一个当前程序状态寄存器(CPSR) 五个备份程序状态寄存器(SPSR):备份的程序状态寄存器用来进行异常处理程序状态寄存器的功能:保存 ALU 中的当前操作信息,控制允许和禁止中断,设置处理器的工作模式。

12、标志位 N当用两个补码表示的带符号数进行运算时 N=1 表示运算结果为负数 N=0 表示运算结果为正数或零标志位 ZZ=1 表示运算结果为零;Z=0 表示运算结果为非零标志位 V对于加/减法运算指令,当操作数和运算结果为补码表示的带符号数时,V=1 表示符号位溢出对于其他的非加/减运算指令,V 的值通常不改变标志位 C加法运算(包括比较指令 CMN): 当运算结果产生了进位时(无符号数溢出) ,C=1,否则 C=0减法运算(包括比较指令 CMP): 当运算时产生了借位(无符号数溢出) ,C=1,否则 C=0对于包含移位操作的非加/减运算指令,C 为移出值的最后一位 对于其他的非加/减运算指令,

13、C 的值通常不改变中断禁止位 I 和 FI=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 这些位决定了处理器的工作模式7. ARM 微处理器的寻址方式1)立即寻址:操作数本身就在指令中2)寄存器寻址:利用寄存器中的数值作为操作数3)寄存

14、器间接寻址:以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中4)基址寻址:寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址5)相对寻址:相对寻址以程序计数器 PC 的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址6)多寄存器寻址:采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送,最多传送 16 个通用寄存器的值 例如 LDMIA R0!, R1, R2, R3, R4 ; R1R0,R0=R0+4 ; R2R0,R0=R0+4 ; R3R0,R0=R0+4 ; R4R0,R0=R0+4 指令后

15、缀 IA 表示在每次执行操作后 R0 按字长度增加 注意:在寄存器列表中同一寄存器仅能指定一次;加载/存储操作按照寄存器固定次序进行,所以寄存器排列先后关系随意。多寄存器寻址(块拷贝寻址) (特别注意!)IA:Increment After,操作完成后地址递增; IB:Increment Before,地址先递增后完成操作; DA:Decrement After,操作完成后地址递减; DB:Decrement Before,地址先递减后完成操作7)堆栈寻址:堆栈按先进后出(FILO)的工作方式寻址。8.指令格式S , , operand2 opcode: 指令助记符,如 ADD, LDR, S

16、TR cond: 执行条件,如 NE, EQ S: 是否影响 CPSR 的值 Rd: 目标寄存器 Rn: 第一操作数寄存器 operand2: 第二操作数 灵活使用第二操作数能够提高代码质量 例子:ADDEQS R0, R1, 0x3f1)指令助记符2)指令条件域条件执行当处理器工作在 ARM 状态时,几乎所有的指令均根据 CPSR 中条件码的状态和指令的条件域有条件的执行当指令的执行条件满足时,指令被执行,否则忽略条件码每一条 ARM 指令包含 4 位的条件码,位于指令码的最高 4 位31:28条件码共有 15 种,每种条件码可用两个字符表示,这两个字符可添加在指令助记符的后面。下面的实例多

17、研究下!实例 1 C 代码: if (ab) a+; else b+; ARM 代码: CMP R0, R1 ADDHI R0, R0, #1 ADDLS R1, R1, #1 C 代码: if (a!=10) ARM 代码: CMP R0, #10 CMPNE R1, #20 ADDNE R0, R0, R1实例 2if (a=10)ARM 指令:CMP R0, #10CMPEQ R1, #20ADDNE R0, R0, R1?第四章1.常用的几种存储器SRAM(静态随机存储器):存储密度小,6 管结构,占用较大芯片面积,价格较高,功耗较高,容量较小,存取速度快,接口时序简单。DRAM(动态

18、随机存储器):存储密度大,单管结构,单位存储成本较低,功耗较低,容量较大,接口时序复杂,需要刷新电路。EEPROM:非挥发,存储密度小,单位存储成本较高,容量小,写入有限制,页写要等待,接口时序简单,一般采用串行接口,小量参数存储。Flash(闪存存储器):非挥发,存储密度大,单位存储成本较低,容量大,接口时序复杂需要擦除及 Block 写,NOR Flash / 19200bpsULCON0 = 0x03; / 帧长度 8 位,停止位 1 位,无校验UFCON0 = 0x21; / 启用 FIFO,发送 FIFO 触发级别为空,/ 接收 FIFO 触发级别为 12 字节UCON0 = 0x0

19、C5; / 接收中断 /查询允许,发送中断/ 查询允/ 许,允许接收错误中断、接收超时中断 2)查询通信方式查询通信的思想 循环读取串口状态,以决定收发 (数据收发! URXH0 和 UERSTAT0) 发送数据(以 UART0 为例) CPU 写字符到发送保持寄存器 UTXH0,则此时发送保持寄存器非空,因此发送接收状态寄存器 UTRSTAT0.b1 = 0 当发送保持寄存器空时(数据发送出去) ,则 UTRSTAT0.b1 = 1,CPU 可以写入新的字符发送程序设计 发送时不断检测 UTRSTAT0.b1 即可接收数据(以 UART0 为例) 接收过程 首先,数据串入接收移位寄存器 然后,去掉奇偶校验、起始位和停止位 最后,数据进入接收保持寄存器 URXH0,同时 UTRSTAT0.b0 = 1,若出错,则UERSTAT0(反映错误的原因)相应位会置 1 接收程序设计 接收时先检测 UTRSTAT0.b0(是否有数据) 然后检测 UERSTAT0(是否存在错误) 3)中断通信方式4) DMA 通信方式

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报