Files

376 lines
16 KiB
Markdown
Raw Permalink Normal View History

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