一填空题
嵌入式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)两大部分。 驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)和(设备驱动程序)。 嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器和(嵌入式片上系统SoC)4大类。
处理器分为(ARM)和(Thumb)两种操作状态。 状态下,SP寄存器指的是(R13)、LR寄存器指的是(R14)、PC寄存器指的是(R15). 处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。 (-S)指令集包括(ARM)指令集和(Thumb)指令集。
指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。 指出下面各条指令的寻址方式。
SUB R0,R1,R2 ;寻址方式:( 寄存器寻址 )。 SUBS R0,R0,#1 ;寻址方式:( 立即寻址 )。 MOV R0,R2,LSL#3 ;寻址方式:( 寄存器移位寻址 )。 SWP R1,R1,[R2] ;寻址方式:( 寄存器间接寻址 )。 LDR R2,[R3,#0x0C] ;寻址方式:( 基址寻址 )。 汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)和宏指令组成。 对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )和(IAP)3重方法来实现。 异常向量表可以来自4个不同的存储器区域,分别是( 片内Flash )、( 片内SRAM )、( Boot Block )和片外存储器。
系列的定时器主要用于3个方面:( 对内部事件进行计数的间隔定时器 )、( 通过捕获输入实现脉宽解调器 )、( 自由运行的定时器 )。 二选择题
可以表示微控制器的缩略词是( B )
A. MPU B. MCU C. WDT 类存储器包括( ABD )
A. NOR Flash B. EPROM C. SRAM D. PROM 不属于ARM的系列是( D )
A. MCS-96 B. 80C51 C. LPC2000 处理器系列采用( A )级流水线。
A. 3 B. 5 C. 6 D. 8 下面ARM处理器模式中属于特权模式的有( BCD )
A. 用户模式 B. 中断模式 C. 系统模式 D. 管理模式 (或STM)指令允许一条指令最多传送( C )个寄存器。
A. 4 B. 8 C. 16 D. 24 指令限制在当前指令的( B )地址范围。
A. ±16MB B. ±32MB C. ±64MB D. ±128MB 汇编程序所支持的变量有( ABC )
A. 数字变量 B. 逻辑变量 C. 字符变量 D. 字符串变量
汇编语言程序用到C语言程序变量的情况实质上是一个引用不同文件定义的变量问题。解决这个问题的办法就是使用关键字( B )。
A. ATPCS B. IMPORT C. EXPORT D. CODE32 一个异常向量表实际占用了( C )个字的存储单元。
A. 4 B. 8 C. 16 D. 64
系列ARM7微控制器的UART接收器FIFO触发器可设置为( ABCD )个字节。 A. 1 B. 4 C. 8 D. 14 三简答题
什么是嵌入式系统?列举几个熟悉的嵌入式系统的产品。
答:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 常见的有汽车、手机、MP3等等。 嵌入式系统由哪几部分组成?
答:嵌入式系统从大的方面分嵌入式系统硬件平台和嵌入式软件两大部分,其中软件部分又具体分为若干层次。对于包含有操作系统的嵌入式系统来讲,嵌入式系统软件结构包含4个层次:设备驱动层、实时操作系统RTOS层、应用程序接口API层、应用程序层。 简述嵌入式系统的特点。
答:系统内核小;专用性强;系统精简;软件固化;嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统;嵌入式系统开发需要开发工具和环境。 简述ARM可以工作的几种模式。 答:ARM体系结构支持7种处理器模式:用户模式、快中断模式、中断模式、管理模式、中 止模式、未定义模式和系统模式。(除用户模式外,其他模式均为特权模式) 内部有多少个寄存器?
答:在ARM7TDMI处理器内部有37个用户可见的32位寄存器,其中31个通用寄存器,6个状态寄存器。
描述一下如何禁止IRQ和FIQ的中断?
答:在一个特权模式下,都可通过置位CPSR中的I位来禁止IRQ。
在一个特权模式中,可通过置位CPSR中的F标志来禁止FIQ异常。 请描述ARM7TDMI进入异常或退出异常时内核有何操作?
答:当异常发生时,ARM处理器尽可能完成当前指令(除了复位异常)后,再去处理异常,并执行如下动作:
① 进入与特定的异常相应的操作模式;
② 将引起异常指令的下一条指令的地址保存到新模式的R14中; ③ 将CPSR的原值保存到新模式的SPSR中;
④ 通过设置CPSR的第7位来禁止IRQ;如果异常为快中断,则要设置CPSR的第6位
禁止快中断;
⑤ 给PC强制赋向量地址值。 退出异常时:
① 将LR中的值减去偏移量后移入PC,偏移量根据异常的类型而有所不同; ② 将SPSR的值复制回CPSR;
③ 清零在入口置位的中断禁止标志。 (p28)指令长度及数据类型
ARM微处理器的指令长度可以是32位(在ARM状态下),也 可以是16位(在Thmb状态下)。装载/保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符合扩展。
ARM处理器支持下列数据类型: 字节(1字节=8位);
半字(半个字=16位,必须分配为占用2字节(B)); 字(1个字=32位,必须分配为占用4字节)
(p29)流水线使用3个阶段,因此指令分3个阶段执行: 答:取指:从存储器装载一条指令; 译码:识别将要被执行的指令;
执行:处理指令并将结果写回寄存器。 描述B、BL、BX指令的区别。
答:B指令实现跳转到指定的地址执行程序。注意:B指令限制在当前指令的±32MB地址范围内(ARM指令为字对齐,最低两位地址固定为0)。
BL指令实现先将下一条指令的地址拷贝到R14(即LR)连接寄存器中,然后跳转到指定地址运行程序。注意:BL指令限制在当前指令的±32MB地址范围内,BL指令用于子程序调用,在子程序的最后可以使用MOV PC, LR指令跳回BL Label指令处的下一条指令继续执行。
BX指令跳转到Rm指定的地址去执行程序。若Rm的bit0为1,则跳转时自动将CPSR中的标志T位置,即把目标地址的代码解释为Thumb代码;若Rm的bit0为0,则跳转时自动将CPRS中的标志T复位,即把目标地址的代码解释为ARM代码。
编写一段ARM汇编程序,实现数据块复制,将R0指向的8个字的连续数据保存到R1指向的一段连续的内存单元。 答:
汇编代码中如何调用C代码中定义的函数?
答:首先,为保证程序调用时参数的正确传递,汇编语言程序的设计要遵守ATPCS。其次,在C语言程序中,不需要使用任何关键字来声明被汇编语言程序调用的C语言子程序。但是在汇编语言程序调用C语言程序之前,需要在汇编语言程序中使用IMPORT伪指令对其进行声明。汇编语言通过BL指令进行调用。 处理器是如何实现引脚多功能的? 答