ARM嵌入式系统基础与开发教程丁文龙_第1页
ARM嵌入式系统基础与开发教程丁文龙_第2页
ARM嵌入式系统基础与开发教程丁文龙_第3页
ARM嵌入式系统基础与开发教程丁文龙_第4页
ARM嵌入式系统基础与开发教程丁文龙_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、第 1 章 嵌入式系统概述 1填空题 1)嵌入式系统硬件平台 2)硬件抽象层 HAL 3)嵌入式微处理器 嵌入式软件 板级支持包 BSP 设备驱动程序 嵌入式微控制器 嵌入式片上系统 SoC 2选择题 (1)B(2)A B D(3)D 3简答题 (1)什么是嵌入式系统?列举几个熟悉的嵌入式系统的产品。 嵌入式系统是以应用为中心, 以计算机技术为基础, 并且软硬件可裁剪, 适用于应用系 统对功能、 可靠性、 成本、 体积、 功耗有严格要求的专用计算机系统。 常见的有汽车、 手机、 MP3 等等。 (2)嵌入式系统由哪几部分组成? 嵌入式系统从大的方面分嵌入式系统硬件平台和嵌入式软件两大部分, 其

2、中软件部分又 具体分为若干层次。对于包含有操作系统的嵌入式系统来讲,嵌入式系统软件结构包含 4 个层次:设备驱动层、实时操作系统 RTOS 层、应用程序接口 API 层、应用程序层。 ( 3)简述嵌入式系统的特点。 系统内核小;专用性强;系统精简;软件固化;嵌入式软件开发要想走向标准化,就必 须使用多任务的操作系统;嵌入式系统开发需要开发工具和环境。 第 2 章 ARM 体系结构 1填空题 ( 1) Cortex-R4 处理器Cortex-A8 处理器 ( 2)ARM Thumb ( 3)R13 R14 R15 ( 4) 8 16 32 2选择题 (1)A C D (2)A( 3)B C D

3、3简答题 ( 1)简述 ARM 可以工作的几种模式。 ARM 体系结构支持 7 种处理器模式:用户模式、快中断模式、中断模式、管理模式、 中止模式、未定义模式和系统模式。 ( 2)ARM7 内部有多少个寄存器? 在 ARM7TDMI 处理器内部有 37 个用户可见的 32 位寄存器, 其中 31 个通用寄存器, 6 个状态寄存器。 ( 3)描述一下如何禁止 IRQ 和 FIQ 的中断? 在一个特权模式下,都可通过置位 CPSR 中的 I 位来禁止 IRQ 。 在一个特权模式中,可通过置位 CPSR中的 F标志来禁止 FIQ 异常。 ( 4)请描述 ARM7TDMI 进入异常或退出异常时内核有何

4、操作? 当异常发生时, ARM 处理器尽可能完成当前指令 (除了复位异常)后, 再去处理异常, 并执行如下动作: 进入与特定的异常相应的操作模式; 将引起异常指令的下一条指令的地址保存到新模式的 R14 中; 将 CPSR 的原值保存到新模式的 SPSR 中; 通过设置 CPSR 的第 7 位来禁止 IRQ ;如果异常为快中断,则要设置 CPSR 的第 6 位禁止快中断; 给 PC 强制赋向量地址值。 退出异常时: 将 LR 中的值减去偏移量后移入 PC ,偏移量根据异常的类型而有所不同; 将 SPSR 的值复制回 CPSR; 清零在入口置位的中断禁止标志。 第 3 章 ARM7TDMI(-S

5、) 指令系统 1填空题 ( 1)ARM Thumb ( 2)存储器目的寄存器 ( 3)寄存器寻址立即寻址 寄存器移位寻址 寄存器间接寻址 基址寻址 2选择题 ( 1)D(2)C(3)B 3简答题 ( 1)BIC 指令的作用是什么? BIC 指令用于位清除操作, 将寄存器 Rn 的值与 operand2 的值的反码按位作逻辑 “异或” 操作,结果保存到 Rd 中。 (2)描述 B、BL、 BX 指令的区别。 B 指令实现跳转到指定的地址执行程序。注意: B 指令限制在当前指令的 32MB 地址 范围内( ARM 指令为字对齐,最低两位地址固定为0)。 BL 指令实现先将下一条指令的地址拷贝到R1

6、4(即 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 指令用于产

7、生软件中断,以便用户程序能调用操作系统的系统例程。操作系统在 SWI 的异常处理程序中提供相应的系统服务,指令中24 位的立即数指定用户程序调用系统 例程的类型,相关参数通过通用寄存器传递。当指令中24 位的立即数被忽略时,用户程序 调用系统例程的类型由通用寄存器R0 的内容决定,同时,参数通过其他通用寄存器传递。 (4)编写一段 ARM 汇编程序, 实现数据块复制, 将 R0 指向的 8个字的连续数据保存 到 R1 指向的一段连续的内存单元。 第 4 章 基于 ARM 的嵌入式软件设计 1填空题 ( 1)代码 数据 (2)32 位的 ARM ( 3)指令 伪指令 伪操作 2选择题 ( 1)A

8、(2)A B D( 3)B 3简答题 ( 1)在 ARM 汇编中如何定义一个全局的算术变量? GBLA 伪指令用于定义一个 ARM 程序中的全局算术变量并将其初始化。 ( 2)ADR 和 LDR 的用法有什么区别? ADR 伪指令为小范围地址读取伪指令。 ADR 伪指令将基于 PC 相对偏移地址或基于寄 存器相对偏移地址值读取到寄存器中,当地址值是字节对齐时,取值范围为- 255 255,当 地址值是字对齐时,取值范围为 - 10201020。当地址值是 16 字节对齐时其取值范围更大。 LDR 伪指令装载一个 32 位的常数和一个地址到寄存器。 (3)什么是内联汇编?什么是嵌入式汇编?两者之

9、间的区别是什么? 内联汇编程序是在 C 程序中直接编写汇编程序段而形成一个语句块,这个语句块可以 使用除了 BX 和 BLX 之外的全部 ARM 指令来编写,从而可以使程序实现一些不能从 C 获 得的底层功能。 嵌入式汇编程序是一个编写在 C 程序外的单独汇编程序段,该程序段可以像函数那样 被 C 程序调用。与内联汇编不同, 嵌入式汇编具有真实汇编的所有特性, 数据交换符合 ATPCS 标准,同时支持 ARM 和 Thumb ,所以它可以对目标处理器进行不受限制的低级别访问。 但 是不能直接引用 C/C+ 的变量名。 内联汇编与嵌入式汇编的编译有如下区别: 内联汇编代码使用高级处理器抽象, 并

10、在代码生成过程中与 C/C+ 代码集成。 因此, 编译程序将 C 和 C+ 代码与汇编代码一起进行优化。 嵌入式汇编代码从 C/C+ 代码中分离出来单独进行汇编,产生与C/C+ 源代码编译 对象相结合的编译对象。 可通过编译程序来内联汇编代码,但无论是显式还是隐式,都无法内联嵌入式汇编 代码。 (4)汇编代码中如何调用 C 代码中定义的函数? 首先,为保证程序调用时参数的正确传递,汇编语言程序的设计要遵守ATPCS 。其次, 在 C 语言程序中,不需要使用任何关键字来声明被汇编语言程序调用的 C 语言子程序。但 是在汇编语言程序调用 C 语言程序之前,需要在汇编语言程序中使用IMPORT 伪指

11、令对其 进行声明。汇编语言通过 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)B 3简答题 ( 1)如何使用 ADS1.2 集成开发环境新建一个工程。 略。 ( 2)新建一个 RealView MDK 工程,编写一个汇编程序实现 3

12、+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 D 3简答题 ( 1) LPC2000 处理器是如何实现引脚多功能的? 略。 ( 2)如何对 GPIO 的输入 /输出进行设置? 略。 ( 3) FIQ、IRQ 有什么不同?向量

13、IRQ 与非向量 IRQ 有何不同? 略。 ( 4) LPC2000 有几种串行通信接口?各有什么特点? 略。 第 7 章 嵌入式实时操作系统 C/OS-II 基础 1填空题 ( 1)嵌入式 Linux Windows CE VxWorks ( 2)应用软件层与应用相关的配置代码 与处理器无关的核心代码 与处理器相 关的设置代码 ( 3) OSStart() 2选择题 (1)B(2)C( 3)A 3简答题 ( 1) C/OS-II 的临界区是如何处理的? 同其他内核一样, C/OS-II 为了处理临界段代码,须关中断,处理完毕后,再开中断。 C/OS-II 定义了 2 个宏( macros)来

14、关中断和开中断,分别是: OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL() 。 (2)什么是任务控制块?它有何作用? 任务控制块( OS_TCB )是一个数据结构,全部存放在 RAM 中。一旦任务建立,一个 任务控制块 OS_TCB 就被赋值。当任务的 CPU 使用权被剥夺时, C/OS-II 用它来保存该任 务的状态。当任务重新得到 CPU 使用权时,任务控制块能确保任务从当时被中断的那一点 丝毫不差地继续执行。 (3)任务调度的功能是什么?它有哪几种方式? C/OS-II 是占先式实时内核,优先级最高的任务一旦进入就绪态,立即拥有CPU 的控 制权并开始运行

15、。 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)B 3简答题 ( 1)移植的概念是什么?

温馨提示

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

最新文档

评论

0/150

提交评论