嵌入式系统复习参考_第1页
嵌入式系统复习参考_第2页
嵌入式系统复习参考_第3页
嵌入式系统复习参考_第4页
嵌入式系统复习参考_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第一章 嵌入式系统 指令系统从产生、发展到现在形成了五种风格,分别是复杂指令集(CISC)、精简指令集(RISC)、超长指令字(VLIW)、数据信号处理指令集(DSP)和专用指令集(ASIP)。这五种风格各有特点,不能笼统地说哪种好哪种坏,它们适合于不同的应用领域。 RISC有如下的特点: 指令条数和寻址方式少。 单一机器周期操作。在RISC机器中,绝大多数指令的执行只需要一个机器周期。 取指令操作限制。 简单固定的指令结构。 指令流水线。 RISC具有高速度、搞可靠、低成本的特点。书73页 CISC概念的实质是将处理器的设计复杂化,从而将程序简化,继而使其所需存储器容量降至最低。而RISC的

2、构思刚好与CISC相反,由于指令简单,它允许处理器在同一机器周期内执行一条以上指令,所以较CISC的复杂指令执行得更快。 一般来说,执行同样的功能,一个RISC程序比一个CISC程序长30%。这使得RISC处理器对编译器要求较高,优化编译器的设计师一项非常复杂且技术要求很高的工作,所以CISC的拥护者指出,虽然RISC简化了硬件设计,但是大大加重了软件的负担。 由于RISC架构中的多数指令是寄存器到寄存器的操作,因而减少了对内存的访问,加快了运行速度,但这同时也要求在处理器内部必须有足够多的通用寄存器来保存计算机中产生的中间结果。通常RISC处理器中至少采用32个通用寄存器,这么多的通用寄存器

3、不就占据了芯片空间,而且使寻址时间增多。而CISC处理器在同等性能的情况下不需要这么多通用寄存器。 RISC技术不断发展和完善产生了许多优秀的产品 例如,ARM RISC CORE和MIPS RISC CORE都是非常受欢迎的RISC架构的嵌入式微处理器。 DSP单独作为一种指令集风格来介绍,是因为DSP面向特殊的应用,采用了独特的体系结构,因此相应地其指令集与其它类型嵌入式微处理器相比也有显著的特点。为了更清楚地介绍DSP的指令集,首先介绍一下DSP体系结构上的特点。 数字信号处理与早期的模拟信号处理相比有着巨大的优势。早期的模拟信号处理主要通过运算放大电路 进行不同的电阻组配实现算术运算,

4、通过电阻、电容的组配实现滤波处理等。其中有一个很明显的问题是不灵活、不稳定,参数修改困难,需要采用多种阻值、容值的电阻、电容,并通过电子开关选通才能修改处理参数;而且对周围环境变化的敏感性强,温度、电路噪声等都会造成处理结果的改变。而数字信号处理可通过软件修改处理参数,因此具有很大的灵活性。只要环境温度、电路噪声的变化不造成电路逻辑的翻转,数字电路可以不受影响地完成工作,因此具有很好的稳定性。 ? DSP芯片采用改进的哈佛结构。TI公司的DSP芯片结构是基本哈佛结构的改进类型。改进之处是,在数据总线和程序总线之间进行局部的交叉连接。 第二,DSP指令系统是流水线操作。在流水线操作中,DSP处理

5、器可同时处理24条指令,每条指令处于其执行过程中的不同状态。 第三,采用专用的硬件乘法器。在一般的计算机上,算术逻辑单元只能完成两个操作数的加、减及逻辑运算。而乘法则由加法和移位来实现。DSP都有硬件乘法器,使乘法运算可在一个指令周期内完成。在TMS320C6000系列中则有两个硬件乘法器。 第四,特殊的DSP指令。DSP芯片的另一个重要特征是有一套专门为数字信号处理而设计的指令系统。 第五,良好的多机并行运行特性。TMS320C4X系列还提供了专门用于多个DSP并行运行的硬件通信接口。 第六,其中涉及的电压很低。芯片的集成度在数十到数百万门量级。为提高运行速度而采用多种并行的体系结构。 1.

6、什么是嵌入式系统(嵌入式系统是计算机软件与计算机硬件集成在一起,并嵌入到应用对象内部的计算机系统) ? 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 ? 它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。 2.嵌入式系统分类( 按技术复杂度分类:无操作系统控制的嵌入式系统NOSES; 小型操作系统控制的嵌入式系统SOSES; 大型操作系统控制的嵌入式系统LOSES。 按用途分类:军用,工业用,民用。 ) 系统级,板级,片级

7、 ? 芯片级嵌入 ? 含程序或算法的处理器 ? 模块级嵌入 ? 系统中的某个核心模块板 ? 系统级嵌入 ? 主计算机系统 3.嵌入式操作系统分类( 按照源代码分类:商用型和开源型; 按照实施性能分类:强实时性型和普通实时型; 按内核结构分类:单内核型和为内核型。 ) ? 按用途分类:军用/民用 ? 按载体分类:宇航/车载 ? ? ? ? 按通信性质分类:无线/有线 ? 按网络性质分类:联网/单机 ? 按环境分类:普通/恶劣 ? 按功耗分类:低功耗/普通功耗 ? 主要分类方法 按硬件软件性质 ? 根据控制技术的复杂度可以把嵌入式系统分为三类: ? 无操作系统控制的嵌入式系统 ? NOSES,No

8、n-OS control Embedded System; ? 小型操作系统控制的嵌入式系统 ? SOSES,Small OS control Embedded System; ? 大型操作系统控制的嵌入式系统 ? LOSES,Large OS control Embedded System。 4.嵌入式处理器特点,常见缩写 特点:1.对实施多任务有较强的支持能力,能完成多任务处理,并且中断响应速度快 2.处理器结构可扩展 3.内部集成了测试电路 4.低功耗 常见缩写: ? 通用型嵌入式微处理器(简称:EMPU,或者MPU) ? 微控制器(MCU) ? 数字信号处理器(DSP)(嵌入式DSP处

9、理器:EDSP) ? 混合处理器和片上系统(SOC) ? 嵌入式双核处理器,双核(dual core);多核处理器,多核DSP。 参考习题 P14 1,3 1-1. 什么是嵌入式系统?举例说明嵌入式系统和嵌入式产品的区别。 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 我们日常所见的PDA、手机、机顶盒、数码相机、媒体播放器、微波炉等都属于嵌入式产品,是某一包含嵌入式系统的专用设备。 1-3.说明嵌入式系统和PC系统的主要差异体现在哪些方面。 嵌入式的处理器指令系统是双密度的; PC系统可以随便安装到

10、任何符合硬件要求的电脑上,比如DOS系统和windows系统等; 嵌入式系统是固化在特定的设备里面的,不可以随意安装或卸载,需要使用专业的工具把系统代码写入到存储芯片上,比如,MP3 、手机里面的系统。 第三章 嵌入式微处理器技术基础 编址方式I/O嵌入式处理器中的 1.I/O地址空间有两种编址方式。 ? 独立编址:存储器地址空间和I/O端口地址空间分别编址。? X 86处理器系列?处理器不将I/O地址空间与主存地址空间合在一起编址,? 统一编址: 存在独立的I/O地址空间。 系列和ARM系列处理器? 8051 按照存储单元寻址的寄存器命名为特殊功能寄存器(SFR) PC体系结构差异2. 嵌入

11、式处理器体系结构与)计算机存储器分为两个部分,一部分存放指令,另一部分存放数据,它们各自拥(1那么这种计算机结构称为哈佛体系结构,有自己的地址空间和访问指令,可以分别独立访问, 称为哈佛结构。,主存储)冯诺依曼体系结构(普林斯顿结构):只有一个主存储器(内存储器)(2 器里存放的内容可以是数据也可是是指令。从而使哈冯诺依曼体系结构中的数据总线在哈佛结构中被分为指令总线和数据总线, 因此哈佛结构的微处佛结构处理器的数据吞吐率比冯诺依曼结构处理器提高了大约一倍, 理器通常具有较高的执行效率。 桶型移位器功能3.定义:在一个时钟周期内能够进行字宽限度之内任意位数移位或循环移位操作的硬件移 位器,这种

12、移位器称为桶型移位器。 位。? 通常的移位器都是一个时钟脉冲左移或者右移1 个时钟脉冲移位任意位。 桶型移位器采用了开关矩阵电路,可以做到用1? 处理器省去了通用计算机指令中的各移位指令。 预先处理,使ARM? 正交指令集的概念4.(正交指令集是用来描述特定处理器指令系统的操作码或者地址码的长度特征,以及操作 码与各地址码的取值关联度特征。) 5.双密度指令集的意义和特点 (意义:指令密度是衡量一个指令系统的设计是否精巧,是否合理的重要标志。 程序员事实上做到了可以使用所有ARM指令的对等指令特点:1. 2.12个全新的指令改善了性能和代码尺寸98% ARM指令集的2指令集执行C代码的运行速度

13、达到了3.Thumb23% ,但是速度提高了Thumb-14.Thumb-2指令集的尺寸比指令集减小5% )ARM指令集的74%指令集仅仅是等效的5.就芯片的占位面积而言,Thumb-2 WDG6.看门狗及其功能()看门狗是一个用来引导嵌入式微处理器脱离死锁工作状态的部件,也是嵌入式处理? 器中的一个特色硬件部分。看门狗是一个专用计数器,能够在一个指定的间隔时间后复位微控制器或者微处理? 器。 7.嵌入式系统调试技术 )? 指令集模拟器(ISS ROM? 仿真器 ICE) ?实时在线仿真( )与背景调试模式(BDM)OCD ?片上调试技术( 的调试方案Angle基于 ? 边界扫描测试技术和JT

14、AG接口 ? 跟踪接口ETM ? Nexus调试标准 ? 半主机调试方式 参考习题 ? 与通用处理器相比嵌入式处理器的技术有哪些? 1. 对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度。 2. 具有功能很强的存储器保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。 3. 可拓展的处理器结构,以能最迅速地开展除满足应用的高性能的嵌入式微处理器。 4. 嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动计算和通信设备中靠电池供电

15、的嵌入式系统更是如此,如需要功耗只有mw甚至是uw级 以上是嵌入式处理器的特点,它与通用处理器的最大不同是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有耗能低,体积小,集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部。 ? 简单说明RISC处理器与CISC处理器的主要区别有哪些? (1) CISC指令系统丰富而RISC指令系统精简 (2) CISC指令长度不一而RISC指令长度相同 (3) CISC指令可以直接对存储器操作而RISC不能 (4) RISC可以提供直接支持高级语言的能力而CISC不能 ? 简要说明看门狗电路的作用和原理 作用:看门狗定时器是一个用

16、来引导嵌入式微处理器脱离死锁工作状态的部件。能够在一个指定的间隔时间后复位微控制器或者微处理器。 原理:系统启动后,初始化程序想看门狗的计数寄存器写入计数初值,此后每经过一个预订的时间间隔看门狗执行一次技术(减1或加1)。如果软件与设备正常工作,那么看门狗的计数寄存器中设定的计数值满之时(即-1,也就是二进制的计数值为全1),系统程序就会重置看门狗寄存器的计数初值,让它继续计数,并且一直循环下去。 P80 17,19 3-17 试描述JTAG测试标准的基本原理 JTAG主要是用到了边界扫描技术,其思想是在靠近芯片的输入输出的管脚上增加一个移位寄存器单元。但芯片处于调试状态的时候,这些边界扫描寄

17、存器可以将芯片和外围的输入输出隔离开来,通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。 3-19就测试技术而言,嵌入式系统与PC机有什么不同? PC及一般采用桌面操作系统,调试器与被调试的程序常常位于同一台机器上,调试器进程通过OS提供的调用接口来控制被调试进程。 嵌入式应用程序通常采用嵌入式操作系统运行在嵌入式系统上,开发机场采用PC及,开发机和目标机处于不同机器中,程序在开发机上开发,在目标机上运行和调试。 章)8嵌入式硬件及接口(参考第(内容参考课件第03讲) ? DRAM与SRAM在数据操作上的区别是什么? ? 对DRAM芯片来说,在读出数据之后还需重新写回数据,

18、因而它的访问延迟和存储周期不同。SRAM的访问时间与存储周期则没有差别 ? 为防止信息丢失,DRAM需要定期刷新每个存储单元,SRAM却不需要 ? DRAM设计强调容量,而对SRAM设计来说,容量和速度同样重要 ? 就可以比较的存储器设计技术而言,DRAM的容量大概为SRAM的16倍,而SRAM的存储周期比DRAM的约快816倍 ? 与SDRAM相比,DDR技术为什么能够提高数据存取速度? 由于DRAM需要动态充电的特性使每次读数据后需要进行再次充电才能进行下次读,因此SDRAM采用了两个(或多个)Bank的方式进行交替数据操作,Bank0读数据时Bank1充电, 下一周期Bank1读数据时B

19、ank0充电,从而提高对外的数据交换能力。 SDRAM的操作改为由外部时钟上升沿同步控制方式,以实现突发数据传送能力。突发数据传送可以实现接收一次列地址发送多个数据的能力。 DDR (Double Data Rate)SDRAM则采用了二倍预读取的技术,在每次得到一个地址时芯片内部读取两个数据,这两个数据分别在一个时钟的上升沿和下升沿传送出去,从而提高读/写速度。 ? RS232与RS422/485通信距离的差异如何造成的? RS422/485接口,为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,采用平衡发送和差分接收,具有抑制共模干扰的能力,加上总线收发器具有

20、高灵敏度,能接收到低至200mv的电压,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时)。 ? 为什么异步传输只以字节为单位传送数据,而不是数据块? 异步传输将比特分成小组进行传送,小组可以是8位或1个字符或更长,发送方可以在任何时刻发送这些比特组,而接收方不知道它们会在什么时候到达。异步传输以字节为单位,发送每一个字符代码时,前面均加上一个“起”“信号”,其长度规定为一个码元,极性为“0”,即空号的极性;字符代码后面均加上一个“止”“信号”,其长度为1或2个码元,极性为“1”,即与信号极性相同,加上起、止信号的作用就能区分串行传输的字符,以实现串行传输收、

21、发双方码组或字符的同步,在传输过程中也易于检测出错情况。 ? 常用的嵌入式输入设备和输出设备有哪些?各举两例 键盘,触摸屏,液晶显示器,音响。 第四章ARM处理器的体系结构和指令集 主要内容 1. ARM处理器主要特点 1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 、大多数数据操作都在寄存器中完成;4 5、寻址方式灵活简单,执行效率高; 6、指令长度固定。 2. RISC处理器主要特征 (1)使用等长指令,目前的典型长度是4个字节。 (2)寻址方式少且简单,一般为23种,最多

22、不超过4种,绝不出现存储器间接寻址方式。 (3)只有取数指令、存数指令访问存储器。指令中最多出现RS型指令,绝不出现SS型指令。 (4)指令集中的指令数目一般少于100种,指令格式一般少于4种。 (5)指令功能简单,控制器多采用硬布线方式,以期更快的执行速度。 (6)平均而言,所有指令的执行时间为一个处理时钟周期。 (7)指令格式中用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数不少于16个 3. ARM处理器中寄存器的数量,名称等 ARM处理器总共有37个32位寄存器,其中有31个通用寄存器,6个状态寄存器(到目前为止只定义了12位) 通用寄存器:不分组寄存器R0R7;分组寄

23、存器R8R14(写入寄存器R12,栈指针R13-sp,链接指针R14-LR,);程序计数器R15。 状态寄存器:CPSR。 4.ARM处理器的七种工作模式特点和区别 4. ARM处理器存储器的组织,内存管理单元(MMU)的功能 (MMU功能:虚拟存储空间到物理存储空间的映射;控制存储器访问权限;设置虚拟存储空间的缓冲特性。) ? ARM的存储器管理单元MMU部件的用途: 完成虚拟存储空间到物理存储空间的映射。 管理方式:页式虚拟存储器。 页的大小有两种:粗粒度和细粒度。 存储器访问权限的控制。 设置虚拟存储空间的缓冲特性。 ? 保护单元 ? PU,Protection Unit。允许将ARM的

24、4GB地址空间映射为8个区域。每一个区域都有可编程的起始地址及大小、可编程属性和Cache属性。 简化了硬件和软件。PU的嵌入式系统而言,MMU对于不需要 ? 主要表现在不使用转换表, 降低系统开销。 6.ARM指令系统与THUMB指令的区别 在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有

25、改变ARM体系地层的程序设计模型,只是在该模型上加上了一些限制条件。Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。 7.常用的ARM指令功能 助记符 指令功能描述 ADC 带进位加法指令 ADD 加法指令 AND 逻辑与指令 B 跳转指令 BIC 位清零指令 BL 带返回的跳转指令 BLX 带返回和状态切换的跳转指令 BX 带状态切换的跳转指令 CDP 协处理器数据操作指令 CMN 比较反值指令 CMP 比较指令 EOR 异或指令 LDC 存储器到协处理器的数据传输指令 LDM 加载多个寄存器指令 LDR 存储器到寄存器的数据传输指令 MCR 从ARM寄存器到

26、协处理器寄存器的数据传输指令 MLA 乘加运算指令 MOV 数据传送指令 MRC 从协处理器寄存器到ARM寄存器的数据传输指令 MRS 传送CPSR或SPSR的内容到通用寄存器指令 MSR 传送通用寄存器到CPSR或SPSR的指令 MUL 32位乘法指令 MLA 32位乘加指令 MVN 数据取反传送指令 ORR 逻辑或指令 RSB 逆向减法指令 RSC 带借位的逆向减法指令 SBC 带借位减法指令 STC 协处理器寄存器写入存储器指令 STM 批量内存字写入指令 STR 寄存器到存储器的数据传输指令 SUB 减法指令 SWI 软件中断指令SWP 交换指令 TEQ 相等测试指令 TST 位测试指

27、令 8,指令的使用规则和参数规则 寄存器使用规则:子程序间通过寄存器 r0 r3 来传递参数,这时可以使用它们的别名 a1 a4 。被调用的子程序返回前无需恢复 r0 r3 的内容。在子程序中,使用 r4 r11 来保存局部变量,这时可以使用它们的别名 v1 v8,在THUMB程序中,通常只能使用寄存器 r4 r7 来保存局部变量。 数据栈使用规则:ATPCS规定数据栈为FD类型,并且对数据栈的操作是8字节对齐的。使用 stmdb / ldmia 批量内存访问指令来操作FD数据栈。使用stmdb命令往数据栈中保存内容时,先递减sp指针,再保存数据,使用ldmia命令从数据栈中恢复数据时,先获得

28、数据,再递增sp指针,sp指针总是指向栈顶元素,这刚好是FD栈的定义。 参数传递规则:一般地,当参数个数不超过 4 个时,使用 r0 r3 这4个寄存器来传递参数;如果参数个数超过 4 个,剩余的参数通过数据栈来传递。对于一般的返回结果,通常使用 r0 r3 来传递. ? 参考习题 P136 9,21 4-9什么是ARM影子寄存器? ARM影子寄存器是为外处理器的不同工作模式配备的专用物理寄存器,在异常模式下他们将替代用户系统模式下使用的部分寄存器。 4-21 试说明ARM指令和Thumb指令的主要差别。 在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据

29、总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有改变ARM体系地层的程序设计模型,只是在该模型上加上了一些限制条件。Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。 ? ARM处理器中的指令指针PC、堆栈指针SP、返回地址指针LR,分别是哪一个寄存器? PC-R15 SP-R13 LR-R14 ? ARM的中断向量表与X86中断向量表有何区别?

30、第五章 ARM汇编语言程序设计 1. ARM汇编语言程序编写格式要求 ? ARM汇编语言程序源代码中允许有空行,可以在汇编程序中加上一个空白行,来增加程序的可阅读性。此外需要注意的是:指令,指示符,伪指令前必须加空格或者Tab制表符,这就是说指令,指示符,伪指令不可以从行的最左边开始书写,即不能顶格书写。 ? 在ARM汇编语言程序中,所有标号必须在一行的最左边的位置开始书写,标号的后面不要加“:”。指令,指示符,寄存器名可以用小写字母也可以用大写字 母来表示,但不能大小写字母相杂。? 当一行写不下时,可以用反斜线作为这一行最后的符号,然后另起一行接下去写,这样汇编器会将这两行代码看作一行代码。

31、需要注意的是,如果在被引号括住的字符串中使用反斜线,则反斜线不能起到续行的作用。每行的长度限制一般在128255个字符串之间。 ? 分号; 除非在字符串常量中出现,否则它的出现就表示着注释的开始,此注释直至行尾结束。可以将注释单独列为一行。所有注释被汇编器忽略 2. ARM汇编语言指示符的功能 AREA指示符用于定义一个代码段或者数据段。 ? 语法格式 ? AREA sectionname,attr,attr. ENTRY指示符指定程序的入口点 ? 语法格式 ? ENTRY ? 使用说明 ? 一个程序(可以包含多个源文件)中至少要有一个ENTRY(可以有多个ENTRY),但一个源文件中最多只能

32、有一个ENTRY(可以没有ENTRY)。 ? 示例 AREA example, CODE, READONLY ENTRY ;应用程序的入口点 CODE16指示符告诉汇编编译器后面的指令序列为16位的Thumb指令。 CODE32指示符告诉汇编编译器后面的指令序列为32位的ARM指令。 ? 语法格式 CODE16/CODE32 ? 使用说明 当汇编源程序中同时包含ARM指令和Thumb指令时,使用CODE16指示符告诉汇编编译器后面的指令序列为16位的Thumb指令;使用CODE32指示符告诉汇编编译器后面的指令序列为32位的ARM指令。但是,CODE16指示符和CODE32指示符只是告诉编译器

33、后面指令的类型,该指示符本身并不进行程序状态的切换。 EQU指示符为数字常量、基于寄存器的值和程序中的标号(基于PC的值)定义一个字符名称。 ? *是EQU的同义词。 ? 语法格式 ? name EQU expr, type ? 其中: ? expr为基于寄存器的地址值、程序中的标号、32位的地址常量或者32位的常量。 ? name为EQU指示符为expr定义的字符名称。 ? type 当expr为32位常量时,可以使用type指示expr表 示的数据的类型。ROUT指示符用于标记局部标号使用范围的边界。用法如下: ? NAME ROUT ? 使用说明:NAME是指定作用范围的名称 使用ROU

34、T指示符用于规定局部标号的使用范围。避免无意之中用错局部标号导致的越界。 如: SUB1 ROUT SUB1 ROUT END指示符告诉编译器已经到了源程序结尾。 ? 语法格式: ? END ? 使用说明: 每一个汇编源程序都包含END指示符,以告诉本源程序的结束。 ? 示例: AREA example CODE,READONLY END ALIGN指示符通过添加补丁字节使当前位置满足一定的对齐方式。 ? 语法格式 ? ALIGN expr,offset ? 其中,expr为数字表达式,用于指定对齐方式。可能的取值为2的次幂,如1、2、4、8等。如果指示符中没有指定expr,则当前位置对齐到下

35、一个字边界处。 ? offset为数字表达式。表示当前位置到下一个地址之间按照:offset+n*expr的方式进行对齐 DCB用于在内存中分配一个字节单元或者一组字节单元,并用指定的EXPR对其进行初始化 语法格式:labelDCBuexpr,expr label是可选项,expr为-128255的值或字符串。 例: AREA DCB_EXAMPLE ,CODE DCB 1 ALIGN 4,2 DCB 1 MAP用于将一个结构化内存的首地址映射到一个指定地址。是MAP的同义词 语法格式:MAP expr ,base-register 表示此内存首地址的值。expr时,expr当只有当包括ba

36、se-register时内存首地址值为 base-register+expr 如 MAP 0x00 ,r9 ;表示结构化内存首地址为r9+0 timer FIELD 4 ;表示一个数据域timer长度4字节 FIELD用于定义一个结构化内存区域中的数据域。常与MAP联合使用,#是FIELD的同义词。 ? 语法格式:labelFIELD expr label是当前数据域的一个标号,expr是当前数据域的长度 例:YEAR FIELD 4 ;数据域YEAR 4字节 MONTH FIELD 2 ;数据域MONTH 2字节 DAY FIELD 2 ;数据FIELD 2字节 SPACE用于分配一个全0的

37、内存区域。%是SPACE的同义词。 ? 语法格式:labelSPACE expr ? label是该内存域的标识,expr表示本内存空间的大小(以字节为单位)。 例: data_timer SPACE 0x1000 ;定义一个4K字节的内存空间,初值为0 ALIGN ;恢复字对齐 3. 汇编语言程序设计基本程序 4. 汇编,C,C+混合编程问题 1.采用内嵌汇编,即在C/C+源程序中嵌入一块汇编代码,让这块汇编代码来完成特定的操作; 2.将必须使用汇编代码的部分独立编写成在一个文件中,形成一个子程序,C/C+程序可以调用这些汇编程序来完成特定的操作。 ? 参考例题 P156 5-13,5-19

38、,5-26,5-28 5-13条件执行 While(a!=b) If(ab) a - =b ; else b -=a; 使用条件执行指令表示只有以下4句代码: gcd cmp r1,r2 subgt r1,r1,r2 sublt r2,r2,r1 bne gcd 5-19 高效率程序分支 Int c_switch(int i) switch(i) case 0:return method0(); case 1:return method1(); 2:return method2(); case case 3:return method3(); case 4:return method4();

39、default: return methodD(); 5-28 C语言调用汇编程序 #include extern int s_program(int arg1,int arg2) int product1; int main() product1 = s_program(i , j ); return (0); ;*汇编语言程序 c_call_s.s * AREA c_call_s .s ,CODE ,PEADONLY EXPORT s_program s_program MUL R0,R1,R1 MOV rc,1r END 可以使用下面的ARM汇编代码表示上述C结构: Arm_switch

40、 CMP r0 , #5 ADDLT pc, pc , r0 , LSL #2 B methodD B method0 B method1 B method2 B method3 B method4 5-26字符串复制 #include Void ex_strcpy(char *src,const char * dst) Int ch; _arm Loop; LDRB ch,src,#1 STRB ch ,dst,#1 CMP ch,#0 BNE loop Int main(void) const char * a = “this is a C program” ; char b30; _ar

41、m MOV R1,A MOV R1,b BL ex_strcpy, R0,R1 printf(“Original string: % s n ”,a); printf(“Copied string :%s n”,b); return 0; 参考习题 P177 1 5-1 编写一个ARM数据拷贝汇编子程。假设R0存放的是源数据的首地址,R1存放的是目标数据地址,R2 存放数据块的总长度 ? 由于ARM处理器的流水线结构,每一条指令执行时,其后指令已经被预读取,因此在执行保存PC的指令时其PC值已经是当前指令PC值8。 ? 在ARM程序设计中,程序调用时默认的参数通过什么方式传递?如果超过4个时又

42、如何传递?返回参数呢? 第六章 ARM开发工具 ? 主要内容 1. 什么是可执行映像文件 映像文件(image)是一个计算机上的可执行文件,在执行之前被加载到计算机的存储器中。通常,一个映像文件中包含多个线程。 2. 映像文件中的基本段结构 ARM的ELF文件有三种段结构:Text,Data,BSS。Text段包含可执行的代码,Data段包含经过初始化的可读可写的可执行数据,BSS段通常是指用来存放程序中未初始化的全局变量的一块内存区域。 3.主要的两种ARM开发工具有是什么 ? Windows操作系统 ? ARM ADS/SDT + 调试器 ? GNU + Cygwin + 调试器 ? AR

43、M SDT + 简易电缆 ? Linux操作系统 ? GNU + GDB ? ARM开发工具链接后生成的.axf文件和.bin文件有什么区别 .axf文件和.bin文件的区别之处在于前者包含有调试信息和注释信息,后者没有。编译器输出的ARM映像文件以.axf文件为主。通过fromelf工具,可以把AXF文件转换成.bin文件。实际下载到系统板的映像文件多数是.bin格式文件。 ? ARM程序开发工具包含的主要部件有哪些? (编译器,汇编器,连接器,调试器,嵌入式实时操作系统,函数库,评估板,JTAG仿真器,在线仿真器等) ADS命令行开发工具 ? ARM C(C+)编译器 ? ARM汇编器(a

44、rmasm) ? ARM链接器(armlink) ? 符号调试器(armsd) 第七章 ARM中断控制 1. ARM中断类型 a) 普通中断请求IRQ b) 快速中断请求FIQ 2. 什么是中断向量表 中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址称为中断向量,将中断向量集中放在一起,就形成中断向量表. ? 简要说明ARM中断发生后如何进入相应中断处理程序的过程? ? ARM中断向量表与X86中断向量表有什么不同? ARM中断向量表与x86处理器实模式中断向量表不同的是ARM处理器的中断向量表中存放的是转移指令,而不是转移目标的逻辑地址。 第九章 嵌入式操作系统概论 ? 主要内容 1. 什

温馨提示

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

最新文档

评论

0/150

提交评论