资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
第 1 章 嵌入式系统概述1填空题(1)嵌入式系统硬件平台 嵌入式软件(2)硬件抽象层 HAL 板级支持包 BSP 设备驱动程序(3)嵌入式微处理器 嵌入式微控制器 嵌入式片上系统 SoC2选择题(1)B (2)A B D (3)D 3简答题(1)什么是嵌入式系统?列举几个熟悉的嵌入式系统的产品。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。常见的有汽车、手机、MP3 等等。(2)嵌入式系统由哪几部分组成?嵌入式系统从大的方面分嵌入式系统硬件平台和嵌入式软件两大部分,其中软件部分又具体分为若干层次。对于包含有操作系统的嵌入式系统来讲,嵌入式系统软件结构包含4 个层次:设备驱动层、实时操作系统 RTOS 层、应用程序接口 API 层、应用程序层。(3)简述嵌入式系统的特点。系统内核小;专用性强;系统精简;软件固化;嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统;嵌入式系统开发需要开发工具和环境。第 2 章 ARM 体系结构1填空题(1)Cortex-R4 处理器 Cortex-A8 处理器(2)ARM Thumb(3)R13 R14 R15(4)8 16 322选择题(1)A C D (2)A (3)B C D3简答题(1)简述 ARM 可以工作的几种模式。ARM 体系结构支持 7 种处理器模式:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。(2)ARM7 内部有多少个寄存器?在 ARM7TDMI 处理器内部有 37 个用户可见的 32 位寄存器,其中 31 个通用寄存器,6 个状态寄存器。(3)描述一下如何禁止 IRQ 和 FIQ 的中断?在一个特权模式下,都可通过置位 CPSR 中的 I 位来禁止 IRQ。在一个特权模式中,可通过置位 CPSR 中的 F 标志来禁止 FIQ 异常。(4)请描述 ARM7TDMI 进入异常或退出异常时内核有何操作?当异常发生时,ARM 处理器尽可能完成当前指令(除了复位异常)后,再去处理异常,并执行如下动作: 进入与特定的异常相应的操作模式; 将引起异常指令的下一条指令的地址保存到新模式的 R14 中; 将 CPSR 的原值保存到新模式的 SPSR 中; 通过设置 CPSR 的第 7 位来禁止 IRQ;如果异常为快中断,则要设置 CPSR 的第 6位禁止快中断; 给 PC 强制赋向量地址值。退出异常时: 将 LR 中的值减去偏移量后移入 PC,偏移量根据异常的类型而有所不同; 将 SPSR 的值复制回 CPSR; 清零在入口置位的中断禁止标志。第 3 章 ARM7TDMI(-S)指令系统1填空题(1)ARM Thumb(2)存储器 目的寄存器(3)寄存器寻址 立即寻址 寄存器移位寻址 寄存器间接寻址 基址寻址2选择题(1)D (2)C (3)B3简答题(1)BIC 指令的作用是什么?BIC 指令用于位清除操作,将寄存器 Rn 的值与 operand2 的值的反码按位作逻辑“异或”操作,结果保存到 Rd 中。(2)描述 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 代码。(3)当执行 SWI 指令时,会发生什么?SWI 指令用于产生软件中断,以便用户程序能调用操作系统的系统例程。操作系统在SWI 的异常处理程序中提供相应的系统服务,指令中 24 位的立即数指定用户程序调用系统例程的类型,相关参数通过通用寄存器传递。当指令中 24 位的立即数被忽略时,用户程序调用系统例程的类型由通用寄存器 R0 的内容决定,同时,参数通过其他通用寄存器传递。(4)编写一段 ARM 汇编程序,实现数据块复制,将 R0 指向的 8 个字的连续数据保存到 R1 指向的一段连续的内存单元。第 4 章 基于 ARM 的嵌入式软件设计1填空题(1)代码 数据 (2)32 位的 ARM(3)指令 伪指令 伪操作 2选择题 (1)A (2)A B D (3)B3简答题(1)在 ARM 汇编中如何定义一个全局的算术变量?GBLA 伪指令用于定义一个 ARM 程序中的全局算术变量并将其初始化。(2)ADR 和 LDR 的用法有什么区别?ADR 伪指令为小范围地址读取伪指令。ADR 伪指令将基于 PC 相对偏移地址或基于寄存器相对偏移地址值读取到寄存器中,当地址值是字节对齐时,取值范围为255255,当地址值是字对齐时,取值范围为10201020。当地址值是 16 字节对齐时其取值范围更大。LDR 伪指令装载一个 32 位的常数和一个地址到寄存器。(3)什么是内联汇编?什么是嵌入式汇编?两者之间的区别是什么?内联汇编程序是在 C 程序中直接编写汇编程序段而形成一个语句块,这个语句块可以使用除了 BX 和 BLX 之外的全部 ARM 指令来编写,从而可以使程序实现一些不能从 C获得的底层功能。嵌入式汇编程序是一个编写在 C 程序外的单独汇编程序段,该程序段可以像函数那样被 C 程序调用。与内联汇编不同,嵌入式汇编具有真实汇编的所有特性,数据交换符合ATPCS 标准,同时支持 ARM 和 Thumb,所以它可以对目标处理器进行不受限制的低级别访问。但是不能直接引用 C/C+的变量名。内联汇编与嵌入式汇编的编译有如下区别: 内联汇编代码使用高级处理器抽象,并在代码生成过程中与 C/C+代码集成。因此,编译程序将 C 和 C+代码与汇编代码一起进行优化。 嵌入式汇编代码从 C/C+代码中分离出来单独进行汇编,产生与 C/C+源代码编译对象相结合的编译对象。 可通过编译程序来内联汇编代码,但无论是显式还是隐式,都无法内联嵌入式汇编代码。(4)汇编代码中如何调用 C 代码中定义的函数?首先,为保证程序调用时参数的正确传递,汇编语言程序的设计要遵守 ATPCS。其次,在 C 语言程序中,不需要使用任何关键字来声明被汇编语言程序调用的 C 语言子程序。但是在汇编语言程序调用 C 语言程序之前,需要在汇编语言程序中使用 IMPORT 伪指令对其进行声明。汇编语言通过 BL 指令进行调用。第 5 章 嵌入式系统常用开发工具1填空题(1)ADS 1.2(2)Microcontroller Development Kit(MDK) RealView Development Suite(RVDS )(3)PROTEUS 电路设计 PROTEUS 源程序设计和生成目标代码文件 PROTEUS 仿真2选择题(1)A B C (2)A B C D(3)B3简答题(1)如何使用 ADS1.2 集成开发环境新建一个工程。略。(2)新建一个 RealView MDK 工程,编写一个汇编程序实现 3+16 的操作。略。(3)如何在 Proteus 软件中搭建硬件开发平台进行源代码级调试。略。第 6 章 基于 LPC2000 系列的嵌入式应用开发实例1填空题(1)JTAG 仿真/调试器 ISP IAP(2)片内 Flash 片内 SRAM Boot Block(3)对内部事件进行计数的间隔定时器;通过捕获输入实现脉宽解调器;自由运行的定时器2选择题(1)C(2)C(3)A B C D3简答题(1)LPC2000 处理器是如何实现引脚多功能的?略。(2)如何对 GPIO 的输入/输出进行设置?略。(3)FIQ、IRQ 有什么不同?向量 IRQ 与非向量 IRQ 有何不同?略。(4)LPC2000 有几种串行通信接口?各有什么特点?略。第 7 章 嵌入式实时操作系统 C/OS-II 基础1填空题(1)嵌入式 Linux Windows CE VxWorks (2)应用软件层 与应用相关的配置代码 与处理器无关的核心代码 与处理器相关的设置代码(3)OSStart()2选择题(1)B (2)C (3)A3简答题(1)C/OS-II 的临界区是如何处理的?同其他内核一样,C/OS-II 为了处理临界段代码,须关中断,处理完毕后,再开中断。C/OS-II 定义了 2 个宏(macros )来关中断和开中断,分别是 :OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()。(2)什么是任务控制块?它有何作用?任务控制块(OS_TCB)是一个数据结构,全部存放在 RAM 中。一旦任务建立,一个任务控制块 OS_TCB 就被赋值。当任务的 CPU 使用权被剥夺时, C/OS-II 用它来保存该任务的状态。当任务重新得到 CPU 使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。(3)任务调度的功能是什么?它有哪几种方式?C/OS-II 是占先式实时内核,优先级最高的任务一旦进入就绪态,立即拥有 CPU 的控制权并开始运行。C/OS-II 的调度器(scheduler )就是用来查找准备就绪的优先级最高的任务并进行任务切换。任务级的调度是由 OSSched()函数完成的,中断级的调度是由OSIntExt()函数完成的。(4)C/OS-II 是如何处理中断的?C/OS-II 系统响应中断的过程是:系统接收到中断请求后,如果这时 CPU 处于中断允许状态(即中断是开放的) ,系统就会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统将会根据情况返回到被中止的任务继续运行,或者转向运行另一个具有更高优先级别的就绪任务。第 8 章 C/OS-II 在 ARM7 上的移植1填空题(1)ChangeToUSRMode()(2)OS_ENTER_CRITICAL( ) OS_EXIT_CRITICAL( )(3) 编写或获取启动代码; 挂接 SWI 软件中断; 中断及时钟节拍中断; 编写应用程序。2选择题(1)B (2)C (3)B3简答题(1)移植的概念是什么?略。(2)C/OS-II 移植的前提是什么?写出移植的主要内容。略。(3)移植 C/OS-II 到 ARM7 为何使用 SWI 软件中断异常接口?略。(4)在 LPC2000 上编写一个简单的基于 C/OS-II 的程序。略。第 9 章 综合实例超声波测距仪设计1简答题(1)列举几个常用的温度传感器。热电偶、DS18B20 、热电阻 RTD、AD590(2)反相器 74LS04 在发射电路中的作用是什么?略。(3)请设计出该系统的电源电路。略。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号