Files
final-exam/嵌入式系统/试题册/试题8.md
T

341 lines
15 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
tags:
- 嵌入式系统
- 试题
create time: 2026-06-10 10:41
---
# 试题 8 — 武汉科技大学《嵌入式系统》
## 概述
- **课程**:嵌入式系统(第 2 学期)
- **学校**:武汉科技大学
- **题型**:填空题、选择题、名词解释、简答题、综合题
- **知识点**:ARM 体系结构与指令集、处理器模式与寄存器、RTOS 调度策略、嵌入式系统定义
> [!tip] 学习建议
> 本试卷填空题和选择题覆盖面广,建议结合 `[[嵌入式系统/ARM架构与指令集]]` 笔记进行系统复习。名词解释部分需要准确记忆专业术语的规范定义。
## 正文
### 一、填空题(每空 2 分,共 20 分)
1. 嵌入式系统是以(**应用**)为中心,以(**计算机技术**)为基础,(**软硬件可裁剪**),适应应用系统的(**专用**)计算机系统。
2. 嵌入式系统的两大指令体系分别是(**ARM 指令体系**)和(**Thumb 指令体系**)。
3. ARM9TDMI-5 中采用的是(**哈佛**)体系结构。
4. CPSR 的中文名称是(**当前程序状态寄存器**)。
5. ARM 指令条件码 EQ 表示(**相等**)。
6. 在 Thumb 状态中,为了提高数据的传输效率,可以使用(**LDR/STR**)指令。
> [!note] 教学提示
> 第 1 题是嵌入式系统的经典定义,务必熟记"以应用为中心、以计算机技术为基础、软硬件可裁剪、专用"四个关键词。第 2 题中 ARM 指令集为 32 位,Thumb 指令集为 16 位,Thumb 通过压缩指令码提高代码密度。
---
### 二、选择题(每题 2 分,共 10 分)
1. μC/OS-II 操作系统属于()。
A. 批处理操作系统
B. 嵌入式实时操作系统
C. 占先式实时操作系统
D. 非占先式实时操作系统
2. 当异常发生时,ARM 处理器进入()模式。
A. 系统模式
B. 管理模式
C. 用户模式
D. 中断模式
3. 寄存器 R13 除了可以做通用寄存器外,还可以做()。
A. 程序计数器
B. 链接寄存器
C. 栈指针寄存器
D. 基址变址寄存器
4. 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)
5. 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 时才进行调度。
```mermaid
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 指令** 用于从内存中读取数据到寄存器。它以寄存器间接寻址的方式访问内存,是嵌入式编程中加载内存数据的必备指令。
```armasm
; 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,从而恢复处理器状态。
```mermaid
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 | 自动化、机器人 |
**智能移动终端带来的变革:**
1. **随时随地计算:** 打破了传统计算机的使用场景限制,用户可以随时接入网络获取信息和服务
2. **移动互联网生态:** 催生了 App 经济,形成了以应用商店为核心的软件分发模式
3. **丰富的人机交互:** 触摸屏、语音识别、手势控制等新型交互方式取代传统键盘鼠标
4. **传感器融合:** GPS、加速度计、陀螺仪、摄像头等多种传感器的集成,使设备具备环境感知能力
5. **云计算协同:** 移动终端与云端深度结合,实现计算任务的分布式处理
> [!note] 教学提示
> 智能移动终端的出现本质上是嵌入式系统从"专用设备"向"通用移动平台"的演进。Android 和 iOS 的成功证明了嵌入式操作系统可以同时兼顾实时性、功耗管理和用户体验。
---
#### 2. 嵌入式系统的定义、组成及特点
分析并论述嵌入式系统的定义、组成及特点。
**参考答案:**
**定义:**
嵌入式系统是以**应用**为中心,以**计算机技术**为基础,**软硬件可裁剪**,适应应用系统的**专用**计算机系统。它将计算机硬件和软件集成到宿主设备中,完成特定的功能或任务。
**组成:**
嵌入式系统由**硬件**和**软件**两大部分组成:
- **硬件层:** 嵌入式处理器(CPU/MPU/MCU/DSP)、存储器(ROM/RAM/Flash)、外设接口(GPIO/UART/SPI/I2C)、电源管理模块
- **软件层:** 嵌入式操作系统(如 μC/OS-II、FreeRTOS)、设备驱动程序、中间件、应用程序
```mermaid
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
```
**特点:**
1. **专用性:** 面向特定应用领域,功能明确
2. **实时性:** 对响应时间有严格要求,需在限定时间内完成任务
3. **可靠性:** 在各种环境下长时间稳定运行
4. **资源受限:** 处理器性能、内存容量、存储空间有限,需优化设计
5. **软硬件协同:** 硬件和软件需紧密配合,可裁剪以满足成本和功耗需求
6. **低功耗:** 许多嵌入式设备依靠电池供电,功耗管理至关重要
---
#### 3. 嵌入式系统在实际生活中的应用
结合所学知识,简要分析嵌入式系统在实际生活中的应用。
**参考答案:**
嵌入式系统已深入渗透到现代生活的各个方面,以下为主要应用领域:
| 应用领域 | 典型产品 | 关键技术 |
|----------|----------|----------|
| **智能手机** | iPhone、Android 手机 | ARM 处理器、触控交互、移动 OS |
| **智能家居** | 智能音箱、扫地机器人 | IoT 通信、语音识别、传感器 |
| **汽车电子** | ECU、车载导航、ADAS | CAN 总线、实时控制、传感器融合 |
| **医疗设备** | 心脏起搏器、血糖仪、CT | 高可靠性、低功耗、精确控制 |
| **工业控制** | PLC、数控机床、机器人 | 实时控制、现场总线、抗干扰 |
| **物联网** | 智能穿戴、环境监测 | 低功耗通信(BLE/Zigbee)、边缘计算 |
**分析要点:**
1. **智能手机** 是嵌入式系统最成功的应用之一,集成 ARM 处理器、多种传感器、触摸屏等,运行 Android/iOS 等嵌入式操作系统
2. **智能家居** 通过 IoT 技术将家电设备联网,实现远程控制和自动化
3. **汽车电子** 是嵌入式系统的重要应用领域,现代汽车中包含数十个 ECU,负责发动机控制、安全气囊、ABS 等关键功能
4. **医疗设备** 对可靠性和实时性要求极高,如心脏起搏器需要 7x24 小时不间断工作
5. **工业控制** 强调实时性和稳定性,嵌入式系统在自动化生产线中发挥核心作用
> [!note] 教学提示
> 嵌入式系统的应用场景虽然多样,但核心需求一致:**专用性**(面向特定功能)、**实时性**(限时响应)、**可靠性**(稳定运行)。不同应用场景在这些需求上的侧重点不同,例如医疗设备更强调可靠性,工业控制更强调实时性。
---
## 关联笔记
- [[嵌入式系统/ARM架构与指令集]]
- [[嵌入式系统/RTOS调度策略]]
- [[嵌入式系统/嵌入式系统设计]]