嵌入式最后考试复习题
一、 填空(24分
- 嵌入式系统的三要素是嵌入、专用、计算机
- 嵌入式采用交叉开发的方式进行。交叉开发环境由宿主机和目标机组成,宿主机一般采用通用计算机系统
- 嵌入式系统呈现出不同的外观和形式,但是,其核心的计算系统仍然可以抽象出一个典型的组成模型,一般可划分为硬件层、中间层、软件层和功能层
- 嵌入式系统的分类按照嵌入式微处理器的位数分类,按照实时性分类,按照嵌入式软件结构分类,按照应用领域分类。
- 嵌入式处理器的分为嵌入式微控制器,嵌入式微处理器,嵌入式DSP,嵌入式片上系统,微处理器像PowerPC、ARM、MIPS
- 6. ARM9两种工作状态:ARM状态,处理器执行32位的字对齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令。7种工作模式:用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)。特权模式:除usr之外的其它的六种工作模式都是持权模式。异常模式:除usr和sys之外的其它的五种工作模式都是持权模式。
- ARM9寄存器分成哪几类?各类有哪些寄存器?寄存器LR有什么用途?分两类:31个通用寄存器和6 个状态寄存器。31个通用寄存器:R0~R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq 。6 个状态寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq。 (LR (R14):也称作子程序链接寄存器或链接寄存器LR,当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值)
- ARM9有寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、基址寻址、堆栈寻址、块拷贝寻址、相对寻址 ARM9伪指令:ADR:小范围的地址读取伪指令、ADRL:中等范围的地址读取伪指令、LDR:大范围的地址读取伪指令、NOP:空操作伪指令。 ARM9指令集分为哪几种类型?各类有哪些指令(可以不考虑协处理器指令)。五类:存储器访问指令、数据处理指令、分支指令、协处理器指令、杂项指令。存储器访问指令:单存储器存取指令,多存储器存取指令。 数据处理指令:算术运算指令,逻辑运算指令,数据传送指令,比较指令,测试指令。 分支指令:B分支指令 BL带链接的分支指令 BX带状态切换的分支指令 BLX带链接和状态切换的分支指令。 杂项指令:程序状态寄存器操作指令,中断操作指令。
- 嵌入式开发工具举例windows DNW, ADS,AXD,SecureCrt;linux gcc,vi,GDB
- 基于OS开发包括BSP开发,应用程序开发,内核移植,驱动开发
- 微处理器有两种总线架构,使用数据和指令使用同一接口的是 冯诺依曼 ,分开的指令和数据接口、取指和数据访问可以并行进行的是 哈佛结构
二.判断(10分)
1.HAL只和硬件有关,和OS无关,BSP既和OS有关,又和硬件有关,设备驱动只和OS有关,与硬件无关 (Y)
2.嵌入式接口包括IO方式(屏幕)和通信方式(键盘) (Y)
3. 伪指令告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。不能直接执行。 (Y)
4. 凡是嵌入式系统都是可裁剪的。
5.嵌入式软件设计都是自顶向下的,而软件实现都是自底向上。
6. 指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。
7. 嵌入式有字符设备,块设备(这2个基于文件系统),网络设备(基于socket)。
8. HAL把硬件隔离开,这样最底层就可以实现可移植。
9.通信方式之间所存在的差异现有的物理层规范比较多,主要介绍数据通信借口特性,包括机械特性,电气特性,功能特性和规程特性。
10. 嵌入式不能直接在目标机上编译。
三选择(14);略
四.简答(30分)
1. 伪指令
用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。 将相对于程序或相对于寄存器的地址载入寄存器中。 与 ADR 指令相似。ADRL 所加载的地址比 ADR 所加载的地址更宽,因为它可生成两个数据处理指令。
2. Bootloader工作原理
Bootloader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码,通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。对于嵌入式系统来说,有的使用操作系统,也有的不适用存在系统,挡在系统启动时都必须运行bootloader,为系统运行准备好软硬件环境。
3. 交叉编译工作原理
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
4. 测试与驱动交互
驱动模块(Driver)可以通过模拟一系列用户操作行为,比如选择用户界面上的某一个选项或者按下某个按钮等,自动调用被测试模块中的函数。驱动模块(Driver)设置,使对模块的测试不必与用户界面真正交互。
5. 大端与小端
答:1)小端存储器组织是较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址(同同小)。 2) 大端存储器组织是较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址(正反大)。
6. 同步于互斥
相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它 们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。
显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。
也就是说互斥是两个线程之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)!
7. ADS主要功能
ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。ADS 是全套的实时开发软件工具,包编译器生成的代码密度和执行速度优异。可快速低价地创建ARM 结构应用。ADS包括三种调试器: 1.AXD(ARM eXtended Debugger):ARM扩展调试器 2.armsd(ARM Symbolic Debugger):ARM 符号调试器。 3.与老版本兼容的Windows或Unix下的ARM调试工具,ADW/ADU(Application Debugger Windows/Unix) 其中AXD 不仅拥有低版本ARM调试器的所有功能,还新添了图形用户界面,更方便的视窗管理数据显示,格式化和编辑以及全套的命令行界面。该产品还包括RealMonitor™(可以在前台调试的同时断点续存并且在不中断应用的情况下读写内存跟踪调试工具)
8. 调度原则与任务分类
分为中断性任务,周期性任务,一般任务
调度原则是优先级低的先运行,优先级高的抢占运行
9. 嵌入式系统开发的基本流程
系统定义与需求分析 系统设计方案的初步确定 初步设计方案性价比评估与方案评审论证 完善初步方案,初步方案实施 软硬件集成测试 软硬件集成测试 系统功能性能测试与可靠测试
10 .ARM处理器的工作模式有哪几种?
答:1)正常用户模式(usr);
2)快速中断模式(fiq);
3)普通中断模式(irq);
4)操作系统保护模式(svc)或 管理模式 ;
5)数据访问中止模式(abt);
6)处理未定义指令的未定义模式(und);
7)运行特权级的操作系统任务的系统模式(sys)。
五,阅读(10)
1、写一条 ARM 指令,完成操作r1 = r2 * 4(4分)
MOV R1,R2, LSL #3
2、初始值R2=5,R3=4,R4=3,执行指令SUBS R2, R3,R4,LSR #2后,寄存器R2,R3的值分别是多少?(4分)
R2=3,R3=4
3、有如下程序段,画出程序流程图,并回答执行程序以后R0的值是多少。(8分)
num EQU 2
start
MOV r0, #1
MOV r1, #6
MOV r2, #3
BL arithfunc
stop
B stop
arithfunc
CMP r0, #num
MOVHS pc, lr
ADR r3, JumpTable
LDR pc, [r3,r0,LSL#2]
JumpTable
DCD (.WORD) DoA ;注意:使用ADS开发工具用伪指令DCD
DCD (.WORD) DoS ; 使用GNU开发工具用伪指令.WORD
DoA
ADD r0, r1, r2
MOV pc, lr
DoS
SUB r0, r1, r2
MOV pc,lr
END
答:R0为0执行DoA,R0为0执行DoS,流程图略。R0=5。
六设计(12分)