嵌入式系统与设计复习提纲PPT课件.ppt_第1页
嵌入式系统与设计复习提纲PPT课件.ppt_第2页
嵌入式系统与设计复习提纲PPT课件.ppt_第3页
嵌入式系统与设计复习提纲PPT课件.ppt_第4页
嵌入式系统与设计复习提纲PPT课件.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计与开发复习提纲 2013年12月 1 复习提纲 Chap1 2知识点 嵌入式系统的组成 通常由嵌入式处理器 外围设备 嵌入式操作系统和应用软件等四大部分组成 嵌入式系统的硬件可分成三部分嵌入式处理器 外围电路和外设终端 嵌入式系统的软件可分成嵌入式操作系统和嵌入式应用软件两部分 嵌入式处理器可以分为 1 嵌入式微处理器 EMPU 2 嵌入式微控制器 EMCU 3 嵌入式DSP处理器 EDSP 4 片上系统 SoC 典型嵌入式操作系统 1 VxWorks2 WindowsCE3 嵌入式Linux4 uC OS II嵌入式系统的定义和特点 2 嵌入式系统的层次结构 Chap2 1 硬件层中间层 HAL BSP 软件层功能层嵌入式系统设计流程 Chap2 2 自顶向下的设计流程各步骤的作用嵌入式系统开发工具编译器 汇编器 连接器 调试器的作用 3 1 不是常规意义上的嵌入式系统 A 手机B MP3C PC机D 数码相机2 下面哪个系统不属于嵌入式系统 A MP3播放器B GPS接收机C 银河玉衡 核心路由器D 天河一号 计算机系统3 完全把系统软件和硬件部分隔离开来 从而大大提高了系统的可移植性 硬件抽象层B 驱动映射层C 硬件交互层D 中间层4 一般而言 嵌入式系统的构架可以分为4个部分 处理器 输入 输出和软件 一般软件亦分为 和应用软件两个主要部分 5 是嵌入式系统的核心部件 是控制 辅助系统运行的硬件单元 英文缩写解释 DSP SoC PDA EMPU EMCU RISC ARM OS 4 第二章ARM处理器 ARM处理器的工作状态 ARM状态 此时处理器执行32位的字对齐的ARM指令 Thumb状态 此时处理器执行16位 半字对齐的Thumb指令 ARM微处理器的七种运行模式 用户模式 快速中断模式 外部中断模式 管理模式 数据访问终止模式 系统模式 未定义指令中止模式 特权模式 除用户模式外 其它模式均为特权模式 异常模式 除用户模式和系统模式 其他5种模式 外当特定的异常出现时 处理器进入相应的模式 CPSR寄存器中哪些位用来定义处理器模 M 4 0 bit 4 0 5 ARM的寄存器组织 内含37个寄存器 31个通用寄存器 6个状态寄存器ARM寄存器组织的特点 1 未分组寄存器R0 R7 都指向同一个物理寄存器 未被系统用作特殊的用途 在中断或异常处理进行运行模式转换时应注意 2 分组寄存器R8 R14 每一次访问的物理寄存器与处理器当前的运行模式有关 对R8 R12来说 每个寄存器对应两个不同的物理寄存器 对R13 R14来说 每个寄存器对于6个不同的物理寄存器 3 程序计数器PC R15 寄存器R15用作程序计数器 虽然可以用作通用寄存器 但是有一些指令在使用R15是有一些特殊限制 如不注意 执行的结果哦将是不可预料的 4 寄存器R16 用作CPSR 当前程序状态寄存器 它在任何运行模式下被访问 每一种运行模式下又有一个专业的物理状态寄存器 SPSR 当发生异常时 SPSR用于保存CPSR的当前值 从异常退出时则可由SPSR来恢复CPSR 6 7 大 小 端地址模式 占多字节的数据在存储时 如果高位字节存在低地址 首地址 称大端地址模式 如果低位字节存在低地址 首地址 称小端地址模式 例如 存放0 x01020304 0 x01 0 x02 0 x03 0 x04 大端模式 0 x30000 0 x30003 0 x04 0 x03 0 x02 0 x01 小端模式 0 x30000 0 x30003 8 填空题1 ARM微处理器有七种工作模式 它们分为两类 其中用户模式属于 2 ARM核有两个指令集 分别是 3 ARM微处理器复位后 PC R15 的地址通常是 选择题 1 存储一个32位数0 x2168465到2000H 2003H四个字节单元中 若以大端模式存储 则2000H存储单元内容为 A 0 x21B 0 x68C 0 x65D 0 x022 寄存器R13除了可以做通用寄存器外 还可以做 A 程序计数器B 链接寄存器C 栈指针寄存器D 基址寄存器4 寄存器R15除可做通用寄存器外 还可以做 A 程序计数器B 链接寄存器C 栈指针寄存器D 基址寄存器5 用ARM汇编编程时 其寄存器有多个别名 通常PC是指 LR是指 SP是指 A R12B R13C R14D R156 S3C2410采用的是 核心A ARM7TDMIB ARM9TDMIC ARM926EJ SD ARM920T简述题 简述ARM9处理器的内部寄存器结构 并分别说明R13 R14 R15寄存器的作用 9 Chap3ARM指令 ARM指令的基本格式 S 第2个操作数 operand2 能够提高代码效率 它有如下的形式 immed 8r 常数表达式 Rm 寄存器方式 Rm shift 寄存器移位方式 10 指令条件码表 11 1 寄存器寻址MOVR1 R2 R2 R1SUBR0 R1 R2 R1 R2 R0指令执行时直接取出寄存器值操作 2 立即寻址SUBSR0 R0 1 R0 1 R0MOVR0 0 xff00 0 xff00 R0数据就包含在指令当中 取出指令也就取出了可以立即使用的操作数 立即数要以 为前缀 表示16进制数值时以 0 x 表示 3 寄存器偏移寻址MOVR0 R2 LSL 3 R2的值左移3位 结果放入R0 即R0 R2 8ANDSR1 R1 R2 LSLR3 R2的值左移R3位 然后和R1相与操作 结果放入R1寄存器偏移寻址是ARM指令集特有的寻址方式当第2操作数是寄存器偏移方式时 第2个寄存器操作数在与第1个操作数结之前 选择进行移位操作 12 4 寄存器间接寻址LDRR1 R2 将R2中的数值作为地址 取出此地址中的数据保存在R1中SWPR1 R1 R2 将如R2中的数值作为地址 取出此地址中的数值与R1中的值交换指令中的地址码给出的是一个通用寄存器编号 所需要的操作数保存在寄存器指定地址的存储单元中 即寄存器为操作数的地址指针 5 基址寻址LDRR2 R3 0 x0F 将R3中的数值加0 x0F作为地址 取出此地址的数值保存在R2中STRR1 R0 2 将R0中的数值减2作为地址 把R1中的内容保存到此地址位置基址寻址是将基址寄存器的内容与指令中给出的偏移量相加 形成操作数的有效地址 基址寻址用于访问基址附近的存储单元 常用于查表 数组操作 功能部件寄存器访问等 6 多寄存器寻址LDMIAR1 R2 R7 R12 将R1单元中的数据读出到R2 R7 R12 R1自动加4多寄存器寻址就是一次可以传送几个寄存器值 允许一条指令传送16个寄存器的任何子集或所有寄存器 使用多寄存器寻址指令时 寄存器子集的顺序时由小到大的顺序排列 连续的寄存器可用 连接 否则 用 分隔书写 13 7 堆栈寻址STMFDSP R1 R7 LR 将R1 R7 LR入栈 满递减堆栈 LDMFDSP R1 R7 LR 数据出栈 放入R1 R7 LR寄存器 满递减堆栈 向上生长 向高地址方向生长 称为递增堆栈向下生长 向低地址方向生长 称为递减堆栈满堆栈 堆栈指针指向最后压入的堆栈的有效数据项空堆栈 堆栈指针指向下一个要放入的空位置满递增 堆栈通过增大存储器的地址向上增长 堆栈指针指向内含有效数据项的最高地址 指令如LDMFA STMFA等 空递增 堆栈通过增大存储器的地址向上增长 堆栈指针指向堆栈上的第一个空位置 指令如LDMEA STMEA等满递减 堆栈通过减小存储器的地址向下增长 堆栈指针指向内含有效数据项的最低地址 指令如LDMFD STMFD等 空递减 堆栈通过减小存储器的地址向下增长 堆栈指针指向堆栈下的第一个空位置 指令如LDMED STMED等 14 8 块拷贝寻址STMIAR0 R1 R7 将R1 R7的数据保存到存储器中 存储器指针在保存第一个值之后增加 增长方向为向上增长 STMIBR0 R1 R7 将R1 R7的数据保存到存储器中 存储器指针在保存第一个值之前增加 增长方向为向上增长 STMDAR0 R1 R7 将R1 R7的数据保存到存储器中 存储器指针在保存第一个值之后增加 增长方向为向下增长 STMDBR0 R1 R7 将R1 R7的数据保存到存储器中 存储器指针在保存第一个值之前增加 增长方向为向下增长 多寄存器传送指令用于一块数据从存储器的某一位置拷贝到另一位置 15 变址模式 16 分支指令 ARM有两种方法可以实现程序跳转 跳转指令直接向PC寄存器 R15 中写入目标地址 ARM跳转指令有以下4种 B分支指令 语法B cond label BL带链接分支指令语法 BL cond label BX分支并可选地交换指令集语法 BX cond Rm BLX带链接分支并可选择地交换指令集 语法 BLX cond label Rm 17 ARM汇编程序中每一行的通用格式 标号 指令 伪操作 伪指令操作数 注解 在ARM汇编语言源程序中 除了标号和注释外 指令 伪指令和指示符都必须有前导空格 而不能顶格书写 如果每一行的代码太长 可以使用字符 将其分行书写 并允许有空行 指令 伪操作和寄存器名既可以用大写字母 也可以用小写字母 但不能混用 注释从 开始 到该行结束为止 标号代表一个地址 段内标号的地址值在汇编时确定 段外标号的地址值在链接时确定 ARM汇编程序的书写格式 18 符号定义伪操作 19 数据定义伪操作 20 汇编控制伪操作 21 其他伪操作 22 MOV指令与LDR加载指令的区别及用途 MOV将有效立即数或寄存器 operand2 传送到目标寄存器 Rd 可用于移位运算等操作 读取指定地址上的存储器单元内容 执行条件AL LDR伪指令的用法 指令格式与LDR加载指令的区别 LDR伪指令用于加载32位的立即数或一个地址值到指定寄存器 第二个数为地址表达式 ARM状态与Thumb状态的切换指令 可以使用BX指令将ARM7TDMI内核的操作状态在ARM和Thumb之间切换 从ARM状态转换位Thumb状态LDRR0 LABLE 1BXR0 从Thumb状态转换位ARM状态LDRR0 LABLEBXR0 23 ARM指令集和Thumb指令集分别是 位的 A 8位 16位B 16位 32位C 16位 16位D 32位 16位指令 LDMIAR0 R1 R2 R3 R4 的寻址方式为 A 立即寻址B 寄存器间接寻址C 多寄存器寻址D 堆栈寻址对寄存器R1的内容乘以4的正确指令是 A LSRR1 2B LSLR1 2C MOVR1 R1 LSL 2D MOVR1 R1 LSR 2下面指令执行后 改变R1寄存器内容的指令是 A TSTR1 2B ORRR1 R1 R1C CMPR1 2D EORR1 R1 R1ADDR0 R0 1属于 A 立即寻址B 寄存器间接寻址C 寄存器寻址D 基址变址寻址 24 汇编程序中子程序的最后一条指令必须是 A MOVPC R14B MOVPC R14 undC SUBSPC R14 fig 4D SUBSPC R14 irg 4若R1 2000H 2000H 0 x86 2008H 0 x39 则执行指令LDRR0 R1 8 后R0的值为 A 0 x2000B 0 x86C 0 x2008D 0 x39说明如下的伪指令的作用LDRR1 0 xFF880022XEQU0 xE00111 25 阅读如下代码 对每行作注释 并说明程序的功能是什么 XEQU19 定义X的值19NEQU20 定义Y的值20AREAExample CODE READONLY 声明代码段Example 属性为只读ENTRY 标示程序入口CODE32 声明是32位的arm指令STARTLDRR0 X R0的值为XLDRR1 N R1的值为YBLMAX 跳到MAX处执行 并保存下一条指令的地址到LRHALTBHALT 死循环MAXCMPR0 R1 比较大小MOVHIR2 R0 如果R0的值大 就赋给R2MOVLSR2 R1 如果R1的值大 就赋给R2MOVPC LR 返回语句END 程序结束 26 解释如下指令的功能 并说明寻址方式 SUBSR1 R1 1ADDNER2 R1 0 x20 SUBR0 R1 R2ADDR3 R2 R1 LSRR4STRR1 R0 LDRR1 R2 4 STMIAR0 R1 R2 R3 STMIAR0 R1 R2 R3 STMEDSP R4 R7 LR LDMFDsp r4 r7 pc 27 是根据指令中的信息来寻找真实操作数地址的方式 实现程序跳转的指令有 和 两种方法 C语言调用汇编程序 一般使用 声明外部函数 即可调用汇编子程序 在汇编程序中用 申明本子程序 以使其他程序可以调用此子程序 汇编程序调用C程序 在汇编中用 声明将要调用的C程序函数 即可在汇编程序中调用C程序 28 写一个程序 判断R1的值是否大于0 x30 是则将R1减去0 x30 CMP指令将寄存器Rn的值减去operand2的值 根据操作的结果更新CPSR中的相应条件标志位 以便后面的指令根据相应的条件标志来判断是否执行 CMPR1 0 x30SUBHIR1 R1 0 x30调用子程序是用B什么指令 请写出返回子程序的指令 BL指令用于子程序调用 MOVPC R14 29 写一条ARM指令 完成操作r1 r2 4MOVR1 R2 LSL 2将R1中的数据保存到R0 0 x12地址处STRR1 R0 0 x12 将R0 R2地址处的数据读出 保存到R1中LDRR1 R0 R2 将R1中数据保存到R0 R2地址处STRR1 R0 R2 将R0 R2地址处的数据读出 保存到R1中LDRR1 R0 R2 将R1中的数据保存到R0 R2地址处STRR1 R0 R2 求R1 R2 和放在R1中ADDR1 R1 R2 30 求R1 R2 差放在R1中SUBR1 R1 R2将R0最低4位数据保留 并影响标志位ANDSR0 R0 0 x0F将R0的1 3 5位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论