浙工大嵌入式考点整理讲解

上传人:我** 文档编号:113625772 上传时间:2019-11-09 格式:DOC 页数:21 大小:646.85KB
返回 下载 相关 举报
浙工大嵌入式考点整理讲解_第1页
第1页 / 共21页
浙工大嵌入式考点整理讲解_第2页
第2页 / 共21页
浙工大嵌入式考点整理讲解_第3页
第3页 / 共21页
浙工大嵌入式考点整理讲解_第4页
第4页 / 共21页
浙工大嵌入式考点整理讲解_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《浙工大嵌入式考点整理讲解》由会员分享,可在线阅读,更多相关《浙工大嵌入式考点整理讲解(21页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统定义以应用为中心,以计算机技术为基础,软件、硬件可裁减,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。ARM7架构的3级流水线取指级:取指级完成程序存储器中指令的读取,并放入指令流水线中。译码级:对指令进行译码 ,为下一周期准备数据路径需要的控制信号。这一级指令“占有”译码逻辑,而不“占有”数据路径。执行级:指令“占有”数据路径,寄存器被读取,运算单元产生相应的运算结果并回写到目的寄存器中,运算单元的结果则根据指令需求来更改状态寄存器的条件位。ARM9的5级流水线取指:指令从存储器中取出,放入指令流水线。译码:指令译码,从寄存器中读取寄存器操作数。执行:产生逻辑运算的结果或

2、存储器地址。访存/缓冲:如果需要,则访问数据存储器。否则,ALU的结果只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。回写:将指令产生的结果回写到寄存器,包括任何从存储器读取的数据。复杂指令集CISC 精简指令集RISCCISC处理器的实现复杂性更高,而RISC编译器的复杂性更高;CISC处理器功耗高、流水线效率低;RISC代码密度不高,可执行文件体积较大,汇编代码可读性较差总线分类 按相对于CPU的位置划分 片内总线 片外总线:按功能类型 数据总线Dbus 地址总线Abus 控制总线Cbus总线的主要参数 总线宽度 又称总线位宽,指的是总线能同时传送数据的位数。如16位总线就

3、是具有16位数据传送能力。总线频率 总线工作速度的一个重要参数,工作频率越高,速度越快。通常用MHz表示。总线带宽 又称总线的数据传送率,是指在一定时间内总线上可传送的数据总量,用每秒最大传送数据量来衡量。总线带宽越宽,传输率越高。总线带宽(单位:MB/s) =(总线宽度/8) 总线频率如:总线宽度32位,频率66MHZ,则总线带宽=(32/8)* 66MHz=264MB/s一个微处理器系统可能含有多条总线 高速总线AHB 低速总线APB嵌入式存储系统是由寄存器、高速缓冲区Cache、主存储器和辅助存储器组成。SDRAM存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新。

4、FLASH存储器(可在线进行电写入、电擦除的ROM存储器)有两种主要技术NOR FLASH:具有SRAM接口,可字节读写、操作速度慢、10万次寿命NAND FLASH:多周期寻址,页读写、速度快、需ECC校验、100万次寿命、易产生坏块存储格式大端格式:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端小端格式:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端32bit的数0x12345678在Little-endian模式以及Big-endian模式CPU内存中的存放方式设计一个C语言程序,判定CPU的大、小端模式short int x;char x0,x1;x=0x112

5、2;x0=(char*)&x)0; /低地址单元x1=(char*)&x)1; /高地址单元若x0=0x11,则是大端; 若x0=0x22,则是小端.嵌入式软件分类 系统软件 控制、管理计算机系统的资源 支撑软件 辅助软件开发的工具应用软件 面向应用领域ARM指令集变种:T、M、E、D、I、J、F、S 标志 含义 说明T支持Thumb指令集Thumb指令集版本1:ARMv4TThumb指令集版本2:ARMv5TThumb-2:ARMv6TD片上调试DebugM支持长乘法32位乘32位得到64位,32位的乘加得到64位IEmbedded ICE在线仿真EDSP指令增加了DSP算法处理器指令:16

6、位乘加指令,带符号数的加减法,双字数据操作,cache预取指令JJava加速器Jazelle提高java代码的运行速度S可综合提供VHDL或Verilog语言设计文件ARM处理器工作状态ARM状态,执行32位的、字对齐的ARM指令 操作数寄存器的状态(位0)为0Thumb状态,执行16位的、半字对齐的Thumb指令 操作数寄存器的状态(位0)为1处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等(系统调用)与用户模式类似,但具有可以直接切换到其它模式等特权快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(i

7、rq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护访问无效的地址空间时会进入此模式未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式内部寄存器31个通用32位寄存器;6个状态寄存器。 R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。R0R7为未分组的寄存器,对应于相同的32位物理寄存器。R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指

8、令都允许使用分组寄存器。R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。R13堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用R14链接寄存器(LR)在每种模式下,模式自身的R14版本用于保存子程序返回地址,当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。R15为程序计数器(PC),指向正在取指的地址

9、。 R14寄存器与异常异常类型偏移数据中止8PC=ADDR+12,返回当前指令未定义0PC=ADDR+8,返回下一条指令软中断0PC=ADDR+8,返回下一条指令取指异常4PC=ADDR+8,返回当前指令IRQ/FIQ4PC=ADDR+12,返回下一条指令寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在因为异常事件而进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。CPSR寄存器的格式N:运算结果的最高位。对于有符号二进制补码,结果为负数时N=1,为正数或零时N=0;Z:指令结果为0时Z=1

10、(通常表示比较结果“相等”),否则Z=0;C:当进行加法运算最高位产生进位时C=1,否则C=0。当进行减法运算最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通常不变; V:当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。立即寻址 操作数直接通过指令给出,数据包含在32位指令编码中,以#为前缀。0x, 0b, 0d分别对应16进制、2进制和10进制 例:MOV R1,#0x56000000寄存器寻址 把寄存器中的数值作为操作数,指令执行时直接取出寄存器值进行操作。寄存器内容并不变化 例:MOV R2,

11、 R3 ;R2R3 ;R3中的内容赋给R2寄存器移位寻址 操作数由寄存器的值做相应移位而得到。移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存器寻址方式表示。寄存器内容并不变化例:MOV R0,R1,LSL R3;R1 = R3 R0 = R15种位移操作:LSL/ASL 逻辑/算术左移,寄存器中字的低位空出位补0LSR逻辑右移,寄存器中字的高位空出位补0ASR算术右移,移位过程中保持符号位不变,即若源操作数为正数,则字的高位空出位补0,否则补1ROR循环右移,由字的低位移出位填入字的高位空出位RRX带扩展的循环右移,操作数右移一位高位空出位用原C标志值填充;寄存器间接寻址

12、寄存器的内容为操作数的地址指针,用 标示。操作数存放在存储单元中例:LDR R0,R1变址寻址 将基址寄存器的内容与指令中给出的偏移量(不超过4KB)相加,形成操作数的有效地址 变址寻址包括基址加偏移和基址加索引寻址两种方式基址加偏移前索引寻址LDR R0,R1,4;R0R14基址加偏移带自动索引的前索引寻址LDR R0,R1,4! ;R0R14、R1R14基址加偏移后索引寻址LDR R0,R1,4;R0R1、R1R14基址加索引寻址LDR R0,R1,R2;R0R1R2相对寻址 由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址BL SUBR

13、l ;调用到SUBRl子程序SUBR1 ; BL 使用了相对寻址方式多寄存器寻址 一条指令可以完成多个寄存器值的传送。这种寻址方式可以一次对多个寄存器寻址,最多可传送16个寄存器。LDMIA R1!,R2-R4,R5 ;R2R1,R3R14,R4R18,R5R112堆栈寻址 堆栈是一个按特定顺序进行存取的存储区,操作顺序为“后进先出” 。堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元即是堆栈的栈顶。存储器堆栈可分为两种: 向上生长:向高地址方向生长,称为递增堆栈 向下生长:向低地址方向生长,递减堆栈满堆栈 堆栈指针指向最后压入的堆栈的有效数据

14、项 空堆栈 堆栈指针指向下一个待压入数据的空位置堆栈寻址命令包括LDMFA/STMFA、LDMEA/STMEA、LDMFD/STMFD、LDMED/STMED。LDM和STM表示多寄存器寻址,即一次可传送多个寄存器值。LDM:一次装载多个,这里用来出栈。 STM:一次存储多个,这里用来入栈。F/E表示指针指向的位置F:full满堆栈,表示堆栈指针指向最后一个入栈的有效数据项E:empty空堆栈,表示堆栈指针指向下一个要放入的空地址A/D表示堆栈的生长方式A:堆栈向高地址生长,即递增堆栈(Ascend)。D:堆栈向低地址生长,即递减堆栈(Descend)。块复制寻址 多寄存器传送指令用于将一块数据从存储器的某一位置拷贝到另一位置。 如:STMIAR0!,R1-R7;将R1R7的数据保存到存储器中。;存储指针在保存第一个值之后增加,;增长方向为向上增长。A存储指针在保存第一个值前增加 B存储指针在保存第一个值后增加I增加方向为向上增长 D增加方向为向下增长通过控制GPF3,GPF4,GPF5,GPF6的控制实现对LED1,LED2,LED3,LED4 亮灭的控制。LED灯通过电源、限流电阻与ARM的I/O口相连,设计程序使得4个LED轮流闪烁。 #define GPFCON (*(volatile unsigned *)0x56

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号