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

下载本文档

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

文档简介

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

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

3、支持7 种处理器模式:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。( 2)ARM7 内部有多少个寄存器?在 ARM7TDMI 处理器内部有 37 个用户可见的 32 位寄存器, 其中 31 个通用寄存器, 6 个状态寄存器。( 3)描述一下如何禁止 IRQ 和在一个特权模式下,都可通过置位在一个特权模式中,可通过置位FIQ 的中断?CPSR 中的 I 位来禁止CPSR 中的 F 标志来禁止IRQ 。FIQ 异常。( 4)请描述ARM7TDMI进入异常或退出异常时内核有何操作?当异常发生时, ARM 处理器尽可能完成当前指令(除了复位异常)后,再去处理异常,并执行如

4、下动作: 进入与特定的异常相应的操作模式; 将引起异常指令的下一条指令的地址保存到新模式的R14 中; 将 CPSR 的原值保存到新模式的SPSR 中; 通过设置CPSR 的第 7 位来禁止IRQ ;如果异常为快中断,则要设置CPSR 的第 6位禁止快中断; 给 PC 强制赋向量地址值。退出异常时: 将 LR 中的值减去偏移量后移入PC,偏移量根据异常的类型而有所不同; 将 SPSR 的值复制回CPSR; 清零在入口置位的中断禁止标志。第 3 章ARM7TDMI(-S)指令系统1填空题( 1)ARMThumb( 2)存储器目的寄存器( 3)寄存器寻址立即寻址寄存器移位寻址寄存器间接寻址基址寻址

5、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 指令用于子程序调用,在子程序的最后可以使

6、用MOV PC, LR指令跳回BL Label 指令处的下一条指令继续执行。BX 指令跳转到Rm 指定的地址去执行程序。若 Rm 的 bit0 为 1,则跳转时自动将CPSR中的标志T 位置,即把目标地址的代码解释为Thumb 代码;若Rm 的 bit0 为 0,则跳转时自动将 CPRS 中的标志T 复位,即把目标地址的代码解释为ARM 代码。( 3)当执行SWI 指令时,会发生什么?SWI 指令用于产生软件中断,以便用户程序能调用操作系统的系统例程。操作系统在SWI 的异常处理程序中提供相应的系统服务,指令中24 位的立即数指定用户程序调用系统例程的类型,相关参数通过通用寄存器传递。当指令中

7、24 位的立即数被忽略时,用户程序调用系统例程的类型由通用寄存器R0 的内容决定,同时,参数通过其他通用寄存器传递。( 4)编写一段 ARM 汇编程序, 实现数据块复制, 将 R0 指向的 8 个字的连续数据保存到 R1 指向的一段连续的内存单元。第 4 章基于 ARM 的嵌入式软件设计1填空题( 1)代码数据( 2) 32 位的 ARM( 3)指令伪指令伪操作2选择题( 1)A(2) ABD( 3) B3简答题( 1)在 ARM 汇编中如何定义一个全局的算术变量?GBLA 伪指令用于定义一个ARM 程序中的全局算术变量并将其初始化。( 2)ADR和LDR的用法有什么区别?ADR 伪指令为小范

8、围地址读取伪指令。ADR 伪指令将基于PC 相对偏移地址或基于寄存器相对偏移地址值读取到寄存器中,当地址值是字节对齐时,取值范围为- 255 255,当地址值是字对齐时,取值范围为- 1020 1020 。当地址值是16 字节对齐时其取值范围更大。LDR 伪指令装载一个32 位的常数和一个地址到寄存器。( 3)什么是内联汇编?什么是嵌入式汇编?两者之间的区别是什么?内联汇编程序是在C 程序中直接编写汇编程序段而形成一个语句块,这个语句块可以使用除了 BX和 BLX 之外的全部ARM 指令来编写,从而可以使程序实现一些不能从C 获得的底层功能。嵌入式汇编程序是一个编写在C 程序外的单独汇编程序段

9、,该程序段可以像函数那样被 C 程序调用。与内联汇编不同, 嵌入式汇编具有真实汇编的所有特性,数据交换符合ATPCS标准, 同时支持 ARM 和 Thumb ,所以它可以对目标处理器进行不受限制的低级别访问。但是不能直接引用C/C+ 的变量名。内联汇编与嵌入式汇编的编译有如下区别: 内联汇编代码使用高级处理器抽象,并在代码生成过程中与C/C+ 代码集成。 因此,编译程序将C 和 C+ 代码与汇编代码一起进行优化。 嵌入式汇编代码从C/C+ 代码中分离出来单独进行汇编,产生与C/C+ 源代码编译对象相结合的编译对象。 可通过编译程序来内联汇编代码,但无论是显式还是隐式,都无法内联嵌入式汇编代码。

10、( 4)汇编代码中如何调用C 代码中定义的函数?首先,为保证程序调用时参数的正确传递,汇编语言程序的设计要遵守在 C 语言程序中,不需要使用任何关键字来声明被汇编语言程序调用的是在汇编语言程序调用C 语言程序之前,需要在汇编语言程序中使用进行声明。汇编语言通过BL 指令进行调用。ATPCS 。其次,C 语言子程序。但IMPORT 伪指令对其第 5 章嵌入式系统常用开发工具1填空题( 1)ADS 1.2( 2)Microcontroller Development Kit( MDK )RealView Development Suite ( RVDS )( 3)PROTEUS 电路设计PROTE

11、US 源程序设计和生成目标代码文件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 仿真 /调试器ISPIAP( 2)片内 Flash片内 SRAMBoot Block( 3)对内部事件进行计数的间隔定时器;通过捕获输入实现脉宽解调器;自由运行的定时器2选

12、择题( 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 ( 2)应用软件层Windows CEVxWorks与应用相关的配置代码与处理器无关的核心代码与处理器相关的设置代码( 3)OSStart()2选择题( 1)B(2) C( 3)A3简答题( 1)

13、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 使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。(

14、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( ) ( 3) 编写或获取启动代码;OS_EXIT_CRITICAL( ) 挂接 SWI 软件中断; 中断及时钟节拍中断; 编写应用程序。2选择题( 1)B(2) C( 3)B3简答题( 1)移植的概念是什么?

温馨提示

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

评论

0/150

提交评论