1、 1.8 练习题 P14 1.选择题 ( 1) A 说明:嵌入式系统的发展趋势表现在以下几方面: 1.产品种类不断丰富,应用范围不断普及 2.产品性能不断提高 3.产品功耗不断降低,体积不断缩小 4.网络化、智能化程度不断提高 5.软件成为影响价格的主要因素 ( 2) D 说明:常见的嵌入式操作系统 : VxWorks, Windows CE、 uC/OS-II 和嵌入式 Linux。 ( 3) A 说明: VxWorks 是美国 WindRiver 公司于 1983 年开发的一种 32 位嵌入式实时操作系统。 2.填空题 (1) 嵌入式计算机 (2) 微处理器 外围电路 外部设备 (3) 板
2、级支持包 实时操作系统 应用编程接口 应用程序 (4) 嵌入式处理器 微控制器 数字信号处理器 3.简答题 ( 1) 简述嵌入式系统的定义和特点 答: 定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 特点:专用性强、实时性好、可裁剪性好、可靠性高和功耗低等。 ( 2) 简述计算机系统的发展历程 第一阶段大致在 20 世纪 70 年代前后,可以看成是嵌入式系统的萌芽阶段; 第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统; 第三阶段是以嵌入式操作系统为标志的 嵌入式系统,也是嵌入式应用开始普及的阶段;
3、第四阶段是以基于 Internet 为标志的嵌入式系统,这是一个正在迅速发展的阶段。 ( 3) 简述 MCU和 DSP 的区别 MCU 是微控制器, DSP 是数字信号处理器。 MCU 相当于小型的电脑,内部集成的 CPU、 ROM、 RAM、 I/O 总线,所以集成度高是它的特点。 DSP 是专用的信息处理器,内部的程序是对不同的机器和环境进行特别优化,所以处理速度是最快的。 2.4 练习题 1. 填空题 (1) ARM7 ARM9 ARM9E ARM10E ARM11 (2) 精简指令 集计算机 (3) Samsung ARM920T IIC 总线 (4) BGA 显卡布线 (5) 1.8
4、V 3.3V (6) 8 128 1 (7) S3C2410 64MB 64MB 2. 选择题 (1) D (2)C (3)A (4)B (5)B (6)C (7)D (8)C (9)C (10)B 3. 简答题 (1)ARM和 S3C2410X有什么关系 ? S3C2410是韩国三星公司生产的嵌入式处理器 ,它采用了 ARM公司的ARM920T(即 ARM9)内核 (2)ARM7 是 32 位 RISC 处理器,使用 3 级流水线,采用冯 诺依曼体系结构 ,不支持 MMU。 (3)ARM8 是 32 位 RISC 处理器,使用 5 级流水线,采用哈佛体系结构,支持 MMU。 (4)S3C24
5、10X 芯片有 27 根地址线, 8根片选线 (nGCS), 32 根数据线。 (5)S3C2410X 芯片内部集成了一个 LCD 控制器, SDRAM 控制器, 3个通道 UART, 4 个通道 DMA, 4 个具有 PWM 功能的计时器和一个内部时钟, 8 通道的 10 位 ADC。 (6)ARM 体系结构有哪几种工作状态?又有哪几 种运行模式?其中哪些为特权模式?哪些为异常模式?并指出处理器在什么情况下进入相应模式? 工作状态: 第 1 种: ARM 状态。处理器执行 32 位的字对齐的 ARM 指令。 第 2 种: Thumb 状态。处理器执行 16 位的半字对齐的 Thumb 指令。
6、 运行模式: 用户模式 (usr) 快速中断模式 (fiq) 外部中断模式 (irq) 管理模式 (svc) 数据访问中止模式 (abt) 系统模式 (sys) 未定义指令中止模式 (und) 在这 7 种运行模式,除了用户模式外,其他 6 种处理器模式都为特权模式。 在这 6 种特权模式中,除了系统 模式外的其他 5 种特权模式又称为异常模式。 用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下, 如果没异常发生,不允许应用程序自行切换果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式。 快速中断模式:支持高速
7、数据传输和通道处理,当一个高优 (fast)中断产生时将会进入这种模式。 外部中断模式:也称为普通中断模式,当一个低优先级中断产生时将会进入这种模式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处 理都在 IRQ 模式下进行。 管理模式:是一种操作系统保护模式,当复位或软中断指令执行时处理器将进入这种模式。 数据访问中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。 系统模式:使用和 user 模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。 未定义指令中止模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷
8、阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。 (7)ARM 体系结构支持的数据类型?有多少寄存器?如何组织? 支持的 数据类型: 1.字节 (byte),各种处理器体系结构中,字节的长度均为 8 位。 2.半字 (half-word),在 ARM 体系结构中,半字的长度为 16 位。 3.字 (word),在 ARM 体系结构中,字的长度为 32 位。 ARM 处理器共有 37 个寄存器,其中 31 个通用寄存器, 6 个状态寄存器。 (8)S3C2410 的存储控制器如何对内存空间进行管理? S3C2410X 存储控制器为片外存储器提供控制信号。它将系统的存储空
9、间分成 8 组 (Bank),每组的大小为 128MB,共 1GB。 (9)分析程序状态寄存器各位的功能描述,并说 明 C、 Z、 N、 V在什么情况下进行置 1 和清 0 状态寄存器 (PSR)的具体格式为 V溢出标志位 对于加 /减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时, V=1表示符号位溢出,其它指令通常不影响 V 位。 例如:两个正数 (最高位为 0)相加,运算结果为一个负数 (最高位为 1),则符号位溢出,相应 V=1. C-进位或借位标志位 对于加法指令(包括比较指令 CMN),结果产生进位,则 C 1,表示无符号数运算发生上溢出,其他情况下 C 0; 在减法指
10、令中(包括比较指令 CMP),结果产生借位,则 C 0,表示无符号数运算发生下溢出,其他情况下 C 1; 对于包含移位操作的非加 /减法运算指令, C 中包含最后一次溢出位的数值; 对于其他非加 /减法运算指令, C 位的值通常不受影响。 Z-结果为 0 标志位 Z 1 表示运算结果是 0, Z 0表示运算结果不是零; 对于 CMP 指令, Z 1 表示进行比较的两个数大小相等。 N-符号标志位 本位设置成当前指令运算结果的 bit31的值。当两个补码表示有符号整数运算时, N 1 表示运算的结果为负数, N 0 表示结果为正数或零。 (10)ARM指令可分为哪几类?说出哪几条指 令是无条件执
11、行的。 ARM 指令可分为: 数据处理指令, 跳转指令,程序状态寄存器处理指令,加载 /存储 指令,协处理器指令 ,异常产生指令。 无条件执行指令: BLX 指令 , BKPT 指令 (产生软件断点中断 ) (11)如何实现两个 64 位数的加法操作,如何实现两个 64 位的减法操作,如何求一个 64 位数的负数? 实现 64 位数据加法运算: 假设 R0 和 R1 存放了一个 64 位数据(作为被加数), R0存放数据的低 32 位; R2 和 R3 中存放了另一个 64 位数据(作为加数), R2中存放低 32 位数据。运算结果送回到 R1: R0中 ( R0 中存放低 32 位)。 AD
12、DS R0,R0,R2 ;低 32 位相加并影响标志位 ADC R1,R1,R3 ;高 32 位相加再加上 C 标志位 (进位值) 实现 64 位 数据 减法运算: 如果寄存器 R0 和 R1 中放置一个 64 位的被减数,其中 R0 中放置低32 位数值;寄存器 R2 和 R3 中放置一个 64 位的减数,其中 R2 中放置低 32 位数值。运算结果送回到 R1: R0中( R0 中存放低 32 位)。 SUBS R0, R0, R2 ;低 32 位相减并影响标志 位 SBC R1, R1, R3 ;高 32 位相减再减去 C 标志位的反码 求一个 64 位数的负数: 如果寄存器 R0和 R
13、1 中放置一个 64 位数,其中 R0 中放置低 32 位数值;寄存器 R4 和 R5 中放置其负数,其中 R4 中放置低 32 位数值。 RSBS R4, R0, #0 0 减去低 32 位并影响标志位 RSC R5, R1, #0 0 减去高 32 位再减去 C 标志位的反码 4.程序题 (1) 分析下列每条语句,并说明程序实现的功能。 CMP R0, #0 /判断 R0 是否等于 0 MOVEQ R1, #0 /当 R0 等于 0,则 R1 等于 0 MOVGT R1,#1 /当 R0 为正数时,则 R1 等于 1 此功能码段可以判别 R0 中的值为正数还是 0。 (2) 写一条 ARM
14、指令,分别完成下列操作。 R0 = 16 MOV RO, #16 R0 = R1 / 16 MOV RO,R1,LSR#4 R1 = R2 * 4 ADD R1,R2.R2.LSL#1 R0 = - R0 RSB RO,RO,#0 (3) 写出实现下列操作的 ARM 指令。 当 Z=1 时,将存储器地址为 R1 的字数据读入寄存器 R0。 MOVEQ R0, R1 当 Z=1 时,将存储器地址为 R1+R2的字数据读入寄存器 R0。 LDREQ R0, R1,R2 将存储器地址为 R1-4 的字数据读入寄存器 R0。 LDR R0,R1,#-4 将存储器地址为 R1+R6 的字数据读入寄存器
15、R0,并将新地址 R1 R6 写入 R1。 LDR R0,R1,R6! (4) 写出下列指令所实现的操作。 LDR R2 ,R3, -2! 将存储器地址为 R3-2 的字数据读入 R2,并将地址 R3-2 写入 R3 LDR R0 ,R0,R1 将存储器地址为 R0 的字数据读入 R0,并将地址 R0+R1 写入 R0 LDR R1 ,R0,R2,LSL #2! 将存储器地址为 R0+R2*4 的字数据读入 R1,并将地址 R0+R2*4 写入 R0 STRB R1 , R2, #0xB0 R0 的低 8 位存入存储器地址为 R2+0xB0 字节中 LDMIA R0 , R1, R2, R8
16、将内存单元 R0 所指向的地址单元以字为单位 递减方式读取到 R1,R2, R8 中,低地址编号的字数据内存单元对应低编号寄存器 STMDB R0!, R1R5, R8, R9 R1R5,R8,R9 存储到以 R0 为起始地址的递减内存中,最终 R0 指向存放 R9 的地址单元 5.计算题 某设备的接口电路如图所示,请计算出该设备的地址。 3.5 练习题 1.选择题 (1) B (2) A (3) C (4) D (5) A 2.填空题 (1) .so .a 程序运行过程中 编译过程中 (2) L I o (3) $ (4) $ $ $ ( CC、 CFLAGS 等) (5) 目标文件的完 整名称 所有不重复的依赖文件,以空格隔开 第一个依赖文件的名称、 3. 简答题 (1) make 和 Makefile 之间的关系? 答: make 是一种命令,是根据 Makefile 文件的规则决定如何编译和连接程序或其他的动作。