15 KiB
tags, create time
| tags | create time | ||
|---|---|---|---|
|
2026-06-10 10:41 |
试题 8 — 武汉科技大学《嵌入式系统》
概述
- 课程:嵌入式系统(第 2 学期)
- 学校:武汉科技大学
- 题型:填空题、选择题、名词解释、简答题、综合题
- 知识点:ARM 体系结构与指令集、处理器模式与寄存器、RTOS 调度策略、嵌入式系统定义
[!tip] 学习建议 本试卷填空题和选择题覆盖面广,建议结合
[[嵌入式系统/ARM架构与指令集]]笔记进行系统复习。名词解释部分需要准确记忆专业术语的规范定义。
正文
一、填空题(每空 2 分,共 20 分)
-
嵌入式系统是以(应用)为中心,以(计算机技术)为基础,(软硬件可裁剪),适应应用系统的(专用)计算机系统。
-
嵌入式系统的两大指令体系分别是(ARM 指令体系)和(Thumb 指令体系)。
-
ARM9TDMI-5 中采用的是(哈佛)体系结构。
-
CPSR 的中文名称是(当前程序状态寄存器)。
-
ARM 指令条件码 EQ 表示(相等)。
-
在 Thumb 状态中,为了提高数据的传输效率,可以使用(LDR/STR)指令。
[!note] 教学提示 第 1 题是嵌入式系统的经典定义,务必熟记"以应用为中心、以计算机技术为基础、软硬件可裁剪、专用"四个关键词。第 2 题中 ARM 指令集为 32 位,Thumb 指令集为 16 位,Thumb 通过压缩指令码提高代码密度。
二、选择题(每题 2 分,共 10 分)
-
μC/OS-II 操作系统属于()。
A. 批处理操作系统 B. 嵌入式实时操作系统 C. 占先式实时操作系统 D. 非占先式实时操作系统
-
当异常发生时,ARM 处理器进入()模式。
A. 系统模式 B. 管理模式 C. 用户模式 D. 中断模式
-
寄存器 R13 除了可以做通用寄存器外,还可以做()。
A. 程序计数器 B. 链接寄存器 C. 栈指针寄存器 D. 基址变址寄存器
-
ARM 汇编语句"ADD R0, R1, R2, LSL#1"的操作结果是()。
A. R0 = R2 + (R1) B. R0 = (R2 << 1) + R1 C. R1 = R0 + (R2 << 1) D. R0 = R1 + (R2 << 1)
-
LDR R2, [R3, #12] 属于()寻址方式。
A. 立即数寻址 B. 多寄存器寻址 C. 寄存器间接寻址 D. 相对寻址
参考答案: 1. C 2. C 3. C 4. A 5. A
[!warning] 易错点
- 第 1 题:μC/OS-II 既是嵌入式实时操作系统(B),也是占先式实时操作系统(C)。但作为"操作系统类别"的考查,答案为 C(占先式实时操作系统),强调其调度特性。
- 第 2 题:异常发生时 ARM 进入管理模式(SVC),而非中断模式。这是一个常见混淆点。
- 第 4 题:ARM 汇编操作数从左到右读,
ADD R0, R1, R2, LSL#1等价于R0 = R1 + (R2 << 1),注意结果存入 R0 而非 R1。
[!tip] 答题技巧 ARM 指令格式为:
操作码{条件码}{S} 目标寄存器, 操作数1, 操作数2。其中操作数 2 支持桶形移位器(Barrel Shifter),可以在一条指令内完成移位和运算。
三、名词解释(每题 2 分,共 10 分)
1. ARM 存储器的字
ARM 体系结构中,存储器的数据组织以字节为基本单位。字(Word) 为 32 位(4 字节),半字(Halfword) 为 16 位(2 字节),字节(Byte) 为 8 位(1 字节)。ARM 处理器支持对字、半字和字节的访问。
2. SPSR
SPSR(Saved Program Status Register)即保存程序状态寄存器。当异常发生时,ARM 处理器自动将当前 CPSR 的值保存到对应异常模式的 SPSR 中,以便异常返回时恢复处理器状态。每种异常模式都有自己的 SPSR。
3. 嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统的专用计算机系统。它通常嵌入在宿主设备中执行特定功能,对实时性、可靠性、功耗等方面有严格要求。
4. 寄存器间接寻址
寄存器间接寻址是指令地址码给出的是寄存器编号,操作数的有效地址为该寄存器中存储的值。例如 LDR R0, [R1] 表示将 R1 中存储的地址所指向的内存数据加载到 R0。
5. 条件码
条件码是 ARM 指令集中用于实现条件执行的标志位编码。ARM 指令(非 Thumb)几乎都可条件执行,条件码如 EQ(相等/零标志置位)、NE(不等)、GT(大于)、LT(小于)等,共 15 种。当条件满足时指令才执行,否则被跳过。
[!note] 教学提示 条件码的判断依据来自 CPSR 中的 N、Z、C、V 四个标志位。例如 EQ 对应 Z=1(结果为零),NE 对应 Z=0。理解条件码需要先掌握 CPSR 标志位的含义。
四、简答题(共 3 题,8+9+9 共 26 分)
1. 简述嵌入式操作系统中占先式调度和非占先式调度的特点和区别。(8 分)
参考答案:
占先式调度(Preemptive Scheduling):
- 按任务优先级调度 CPU 资源
- 高优先级任务可以立即抢占当前正在运行的低优先级任务
- 中断返回后,若更高优先级任务就绪,当前任务被挂起
- 实时性好,响应迅速
- 实现复杂度较高,需要考虑任务切换时的上下文保护
非占先式调度(Cooperative Scheduling):
- 任务按合作型调度方式工作,各任务彼此共享 CPU
- 任务调度只发生在任务切换之时,即当前任务主动放弃 CPU 控制权
- 实现简单,系统开销小
- 实时性较差,高优先级任务可能因低优先级任务长时间运行而延迟
核心区别: 占先式允许高优先级任务随时打断低优先级任务;非占先式只能在当前任务主动让出 CPU 时才进行调度。
flowchart TD
A["Task Scheduling Triggered"] --> B{"Preemptive or Cooperative?"}
B -->|"Preemptive"| C["High Priority Task Arrives"]
C --> D["Current Task Suspended Immediately"]
D --> E["High Priority Task Runs"]
B -->|"Cooperative"| F["Current Task Running"]
F --> G{"Task Voluntarily Yields CPU?"}
G -->|"Yes"| H["Scheduler Selects Next Task"]
H --> I["High Priority Task Runs"]
G -->|"No"| J["Continue Current Task"]
[!note] 教学提示 占先式调度适用于对实时性要求高的场景(如工业控制、航空航天),非占先式适用于实时性要求不高但追求简单可靠的场景(如简单消费电子)。μC/OS-II 采用占先式调度。
2. 简述 MOV 指令与 LDR 指令的区别。(9 分)
参考答案:
| 对比维度 | MOV 指令 | LDR 指令 |
|---|---|---|
| 功能 | 数据传送 | 数据加载 |
| 操作对象 | 寄存器到寄存器、立即数到寄存器 | 内存到寄存器 |
| 访问内存 | 不能访问内存空间 | 可以访问内存地址 |
| 典型用法 | MOV R1, R2、MOV R1, #0x10 |
LDR R1, [R2]、LDR R1, =0x12345678 |
MOV 指令 用于将一个常数或寄存器中的值传送到另一个寄存器,不涉及内存操作。它是纯寄存器层面的数据传送。
LDR 指令 用于从内存中读取数据到寄存器。它以寄存器间接寻址的方式访问内存,是嵌入式编程中加载内存数据的必备指令。
; MOV 指令示例 - 寄存器间或立即数传送
MOV R1, R2 ; R1 = R2(寄存器到寄存器)
MOV R1, #0x10 ; R1 = 0x10(立即数到寄存器)
; LDR 指令示例 - 从内存加载数据
LDR R1, [R2] ; R1 = *R2(从 R2 指向的内存地址加载)
LDR R1, =0x12345678 ; R1 = 0x12345678(伪指令,加载 32 位常数)
[!warning] 关键区别 MOV 是数据传送指令,只能操作寄存器和立即数;LDR 是加载指令,可以访问内存地址。在实际编程中,需要从内存读取数据时必须使用 LDR,不能用 MOV 替代。
3. 什么是程序状态寄存器?请简述其包含的内容。(9 分)
参考答案:
ARM 处理器内部包含 1 个 CPSR(当前程序状态寄存器)和 5 个 SPSR(保存程序状态寄存器,每种异常模式各一个)。CPSR 反映当前处理器的状态。
CPSR 主要包含以下内容:
| 位域 | 名称 | 功能描述 |
|---|---|---|
| N[31] | 负数标志 | 运算结果为负数时置 1 |
| Z[30] | 零标志 | 运算结果为零时置 1 |
| C[29] | 进位标志 | 运算产生进位时置 1 |
| V[28] | 溢出标志 | 运算溢出时置 1 |
| I[7] | IRQ 禁止 | 置 1 时禁止 IRQ 中断 |
| F[6] | FIQ 禁止 | 置 1 时禁止 FIQ 中断 |
| T[5] | Thumb 状态 | 置 1 时处理器处于 Thumb 状态 |
| M[4:0] | 处理器模式 | 选择处理器工作模式(USR/SVC/IRQ/FIQ 等) |
当异常发生时,ARM 硬件自动将 CPSR 保存到对应异常模式的 SPSR 中;异常返回时,通过指令将 SSR 恢复到 CPSR,从而恢复处理器状态。
flowchart LR
subgraph CPSR["CPSR - Current Program Status Register"]
direction LR
N["N: Negative Flag"]
Z["Z: Zero Flag"]
C["C: Carry Flag"]
V["V: Overflow Flag"]
I["I: IRQ Disable"]
F["F: FIQ Disable"]
T["T: Thumb State"]
M["M[4:0]: Mode Bits"]
end
[!note] 教学提示 CPSR 的低 5 位 M[4:0] 决定处理器工作模式,共有 7 种模式:USR(用户)、SYS(系统)、SVC(管理模式)、ABT(中止)、UND(未定义)、IRQ(中断)、FIQ(快速中断)。理解 CPSR 是掌握 ARM 异常处理机制的基础。
五、综合题(共 3 题,每题 10 分,共 30 分)
1. 嵌入式操作系统的产品形式与智能移动终端的变革
嵌入式操作系统有哪些产品形式?分析智能移动终端产品出现后带来的变革。
参考答案:
嵌入式操作系统的产品形式:
嵌入式操作系统广泛应用于多种产品形态中:
| 产品类型 | 典型系统 | 应用场景 |
|---|---|---|
| 智能手机 | Android、iOS | 通信、娱乐、办公 |
| 平板电脑 | Android、iPadOS | 教育、商务、娱乐 |
| 智能手表 | Wear OS、watchOS | 健康监测、通知 |
| 车载系统 | Android Auto、QNX | 导航、车控、娱乐 |
| 智能家居 | 各类 RTOS | 家电控制、安防 |
| 工业控制 | VxWorks、FreeRTOS | 自动化、机器人 |
智能移动终端带来的变革:
- 随时随地计算: 打破了传统计算机的使用场景限制,用户可以随时接入网络获取信息和服务
- 移动互联网生态: 催生了 App 经济,形成了以应用商店为核心的软件分发模式
- 丰富的人机交互: 触摸屏、语音识别、手势控制等新型交互方式取代传统键盘鼠标
- 传感器融合: GPS、加速度计、陀螺仪、摄像头等多种传感器的集成,使设备具备环境感知能力
- 云计算协同: 移动终端与云端深度结合,实现计算任务的分布式处理
[!note] 教学提示 智能移动终端的出现本质上是嵌入式系统从"专用设备"向"通用移动平台"的演进。Android 和 iOS 的成功证明了嵌入式操作系统可以同时兼顾实时性、功耗管理和用户体验。
2. 嵌入式系统的定义、组成及特点
分析并论述嵌入式系统的定义、组成及特点。
参考答案:
定义:
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统的专用计算机系统。它将计算机硬件和软件集成到宿主设备中,完成特定的功能或任务。
组成:
嵌入式系统由硬件和软件两大部分组成:
- 硬件层: 嵌入式处理器(CPU/MPU/MCU/DSP)、存储器(ROM/RAM/Flash)、外设接口(GPIO/UART/SPI/I2C)、电源管理模块
- 软件层: 嵌入式操作系统(如 μC/OS-II、FreeRTOS)、设备驱动程序、中间件、应用程序
flowchart TD
subgraph Hardware["Hardware Layer"]
CPU["Embedded Processor"]
Memory["ROM / RAM / Flash"]
Peripherals["GPIO / UART / SPI"]
Power["Power Management"]
end
subgraph Software["Software Layer"]
OS["Embedded OS (RTOS)"]
Driver["Device Drivers"]
Middleware["Middleware"]
App["Application"]
end
Hardware --> Software
特点:
- 专用性: 面向特定应用领域,功能明确
- 实时性: 对响应时间有严格要求,需在限定时间内完成任务
- 可靠性: 在各种环境下长时间稳定运行
- 资源受限: 处理器性能、内存容量、存储空间有限,需优化设计
- 软硬件协同: 硬件和软件需紧密配合,可裁剪以满足成本和功耗需求
- 低功耗: 许多嵌入式设备依靠电池供电,功耗管理至关重要
3. 嵌入式系统在实际生活中的应用
结合所学知识,简要分析嵌入式系统在实际生活中的应用。
参考答案:
嵌入式系统已深入渗透到现代生活的各个方面,以下为主要应用领域:
| 应用领域 | 典型产品 | 关键技术 |
|---|---|---|
| 智能手机 | iPhone、Android 手机 | ARM 处理器、触控交互、移动 OS |
| 智能家居 | 智能音箱、扫地机器人 | IoT 通信、语音识别、传感器 |
| 汽车电子 | ECU、车载导航、ADAS | CAN 总线、实时控制、传感器融合 |
| 医疗设备 | 心脏起搏器、血糖仪、CT | 高可靠性、低功耗、精确控制 |
| 工业控制 | PLC、数控机床、机器人 | 实时控制、现场总线、抗干扰 |
| 物联网 | 智能穿戴、环境监测 | 低功耗通信(BLE/Zigbee)、边缘计算 |
分析要点:
- 智能手机 是嵌入式系统最成功的应用之一,集成 ARM 处理器、多种传感器、触摸屏等,运行 Android/iOS 等嵌入式操作系统
- 智能家居 通过 IoT 技术将家电设备联网,实现远程控制和自动化
- 汽车电子 是嵌入式系统的重要应用领域,现代汽车中包含数十个 ECU,负责发动机控制、安全气囊、ABS 等关键功能
- 医疗设备 对可靠性和实时性要求极高,如心脏起搏器需要 7x24 小时不间断工作
- 工业控制 强调实时性和稳定性,嵌入式系统在自动化生产线中发挥核心作用
[!note] 教学提示 嵌入式系统的应用场景虽然多样,但核心需求一致:专用性(面向特定功能)、实时性(限时响应)、可靠性(稳定运行)。不同应用场景在这些需求上的侧重点不同,例如医疗设备更强调可靠性,工业控制更强调实时性。