205 lines
11 KiB
Markdown
205 lines
11 KiB
Markdown
|
|
---
|
|||
|
|
tags: [嵌入式系统, 试题]
|
|||
|
|
create time: 2026-06-10 10:41
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 试题 3 — 武汉科技大学《嵌入式系统》
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
- **课程**:嵌入式系统
|
|||
|
|
- **学校**:武汉科技大学
|
|||
|
|
- **题型**:填空题、选择题、名词解释、简答题、综合题
|
|||
|
|
- **知识点**:嵌入式系统定义、ARM 存储器体系、处理器模式、RTOS 调度
|
|||
|
|
|
|||
|
|
> [!tip] 学习建议
|
|||
|
|
> 本试题涵盖五大题型,适合系统性复习。名词解释部分需要准确记忆专业术语的规范定义。
|
|||
|
|
|
|||
|
|
## 正文
|
|||
|
|
|
|||
|
|
### 一、填空题(每空2分,共20分)
|
|||
|
|
|
|||
|
|
1. 嵌入式系统是以( **应用** )为中心,以( **计算机技术** )为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的( **专用** )计算机系统。
|
|||
|
|
2. 嵌入式处理器架构是通过( **流水线** )和( **RISC** )方式来提升性能。
|
|||
|
|
3. ARM7TDMI-5采用的是( **冯·诺依曼** )体系结构。
|
|||
|
|
4. ARM9TDMI中采用的是( **哈佛** )体系结构。
|
|||
|
|
5. CPSR的中文名称是( **当前程序状态寄存器** )。
|
|||
|
|
6. ARM指令条件码EQ表示( **相等** )。
|
|||
|
|
|
|||
|
|
> [!note] 教学提示
|
|||
|
|
> 第3、4题考察两种经典体系结构的区别。冯·诺依曼结构的指令和数据共用一条总线,哈佛结构则将指令和数据总线分开,因此哈佛结构在取指和访存上可以并行,性能更高。ARM7 -> ARM9 的演进正是从冯·诺依曼到哈佛结构的典型升级路径。
|
|||
|
|
|
|||
|
|
### 二、选择题(每题2分,共10分)
|
|||
|
|
|
|||
|
|
1. μC/OS-II操作系统属于( )。
|
|||
|
|
|
|||
|
|
A. 一批式操作系统
|
|||
|
|
B. 批处理操作系统
|
|||
|
|
C. 占先式实时操作系统
|
|||
|
|
D. 非占先式实时操作系统
|
|||
|
|
|
|||
|
|
**答案:C**
|
|||
|
|
|
|||
|
|
2. 复位操作后,ARM处理器进入( )模式。
|
|||
|
|
|
|||
|
|
A. 用户模式
|
|||
|
|
B. 系统模式
|
|||
|
|
C. 管理模式
|
|||
|
|
D. 中断模式
|
|||
|
|
|
|||
|
|
**答案:C**
|
|||
|
|
|
|||
|
|
3. 寄存器R13除了可以做通用寄存器外,还可以做( )。
|
|||
|
|
|
|||
|
|
A. 程序计数器
|
|||
|
|
B. 链接寄存器
|
|||
|
|
C. 栈指针寄存器
|
|||
|
|
D. 基址变址寄存器
|
|||
|
|
|
|||
|
|
**答案:C**
|
|||
|
|
|
|||
|
|
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)
|
|||
|
|
|
|||
|
|
**答案:A**
|
|||
|
|
|
|||
|
|
5. LDR R2, [R3, #12]属于( )寻址方式。
|
|||
|
|
|
|||
|
|
A. 直接寻址
|
|||
|
|
B. 多寄存器寻址
|
|||
|
|
C. 寄存器间接寻址
|
|||
|
|
D. 相对寻址
|
|||
|
|
|
|||
|
|
**答案:A**
|
|||
|
|
|
|||
|
|
> [!question] 思考题
|
|||
|
|
> 第4题中的 `LSL#1` 表示逻辑左移1位,即乘以2。注意 ARM 汇编中第二操作数(operand2)可以带有移位操作。请思考:如果要实现 R0 = R1 + (R2 << 2),即 R1 加上 R2 的4倍,汇编指令该怎么写?
|
|||
|
|
|
|||
|
|
> [!tip] 选择题解题技巧
|
|||
|
|
> 第5题 LDR R2, [R3, #12] 是以 R3 的值为基址,偏移量 #12 为立即数偏移,属于直接寻址。而 LDR R2, [R3] 则是寄存器间接寻址。关键区别在于是否带有偏移量。
|
|||
|
|
|
|||
|
|
### 三、名词解释(每题2分,共10分)
|
|||
|
|
|
|||
|
|
**1. ARM存储器的字**
|
|||
|
|
|
|||
|
|
ARM体系结构中,字(Word)为32位(4字节),半字(Half-word)为16位(2字节),字节(Byte)为8位。ARM处理器是32位处理器,其数据传输和存储操作通常以字为单位进行。
|
|||
|
|
|
|||
|
|
**2. SPSR**
|
|||
|
|
|
|||
|
|
SPSR(Saved Program Status Register)即保存程序状态寄存器。ARM处理器在进入异常模式时,会自动将当前CPSR的内容保存到对应异常模式的SPSR中,以便在异常返回时恢复之前的状态。每种异常模式都有自己的SPSR。
|
|||
|
|
|
|||
|
|
**3. 嵌入式系统**
|
|||
|
|
|
|||
|
|
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
|
|||
|
|
|
|||
|
|
**4. 寄存器间接寻址**
|
|||
|
|
|
|||
|
|
寄存器间接寻址是指令中的地址码给出的是通用寄存器的编号,寄存器中存储的值作为操作数的有效地址。例如 `LDR R0, [R1]`,表示将 R1 中的地址所指向的内存单元内容加载到 R0。
|
|||
|
|
|
|||
|
|
**5. 条件码**
|
|||
|
|
|
|||
|
|
条件码是ARM指令执行条件标志,如 EQ(相等,Zero标志置位)、NE(不相等,Zero标志清零)、GT(大于,有符号)等。ARM指令集中的所有指令均可条件执行,这是ARM架构的一大特色,可有效减少分支指令。
|
|||
|
|
|
|||
|
|
> [!note] 教学提示
|
|||
|
|
> ARM的条件执行机制非常独特——几乎所有指令都可以带条件码后缀。这意味着在简单的 if-else 场景中,有时可以避免使用跳转指令,减少流水线刷新带来的性能损失。建议学生查阅 ARM Architecture Reference Manual 中完整的条件码列表。
|
|||
|
|
|
|||
|
|
### 四、简答题
|
|||
|
|
|
|||
|
|
**1. 简述嵌入式操作系统中占先式调度和非占先式调度的特点和区别。(8分)**
|
|||
|
|
|
|||
|
|
占先式调度(Preemptive Scheduling):内核按照每个任务的优先级来调度CPU资源。当一个更高优先级的任务就绪时,内核会立即暂停当前正在运行的低优先级任务,将CPU控制权交给高优先级任务。其特点是响应速度快,适合实时性要求高的场合。
|
|||
|
|
|
|||
|
|
非占先式调度(Non-preemptive Scheduling):任务调度策略按合作型方式工作。只有当当前运行的任务主动放弃CPU控制权(如调用延时函数、等待信号量或主动退出)时,调度器才会选择更高优先级的任务运行。其特点是实现简单,不会发生任务间的资源抢占问题。
|
|||
|
|
|
|||
|
|
核心区别:占先式内核中,高优先级任务在紧急事件发生时能立即获得CPU控制权;非占先式内核中,只有当前任务主动放弃CPU控制权时,更高优先级任务才能运行。
|
|||
|
|
|
|||
|
|
> [!question] 教学提示
|
|||
|
|
> 实际上很多嵌入式RTOS(如FreeRTOS、μC/OS-II)都采用占先式调度,但在实际应用中也会结合非占先式的做法——例如在中断服务程序中只设置标志位,由任务级代码进行实际处理。请思考:为什么中断服务程序中通常不直接进行占先式任务切换?
|
|||
|
|
|
|||
|
|
**2. 简述MOV指令与LDR指令的区别。(9分)**
|
|||
|
|
|
|||
|
|
MOV指令用于寄存器到寄存器的数据传送,或者将一个立即数传送到寄存器中,但它不能访问内存。其操作数来自寄存器或立即数。
|
|||
|
|
|
|||
|
|
LDR指令用于从内存中读取数据到寄存器中(数据加载),或者将寄存器中的数据写入内存(通过STR指令)。LDR指令可以访问内存空间。
|
|||
|
|
|
|||
|
|
两者的关键区别在于:MOV只能在寄存器之间或使用立即数进行数据传送,操作范围限于CPU内部;LDR可以访问存储器,实现CPU与内存之间的数据交换。
|
|||
|
|
|
|||
|
|
**3. 什么是程序状态寄存器?请简述其包含的内容。(9分)**
|
|||
|
|
|
|||
|
|
程序状态寄存器(Program Status Register)是ARM处理器内部的一个32位寄存器,反映当前处理器的运行状态。ARM内部包含1个CPSR(当前程序状态寄存器)和5个保留的备份SPSR(每个异常模式一个)。
|
|||
|
|
|
|||
|
|
CPSR包含的主要内容:
|
|||
|
|
- **条件标志位**:N(负数/结果最高位)、Z(零标志)、C(进位/借位标志)、V(溢出标志)
|
|||
|
|
- **中断禁止位**:I(禁止IRQ中断)、F(禁止FIQ中断)
|
|||
|
|
- **处理器模式位**:M[4:0],标识当前处理器处于哪种模式(用户、系统、管理、中断等)
|
|||
|
|
- **Thumb状态位**:T,指示当前处理器处于ARM状态(T=0)还是Thumb状态(T=1)
|
|||
|
|
|
|||
|
|
### 五、综合题
|
|||
|
|
|
|||
|
|
**1. 嵌入式操作系统有哪些产品形式?请分析智能移动终端产品出现后带来的变革及解决对策。(10分)**
|
|||
|
|
|
|||
|
|
嵌入式系统产品形式多样,包括:智能手机、平板电脑、智能手表/手环、车载电子系统、智能家居设备、工业控制器、医疗设备、无人机等。
|
|||
|
|
|
|||
|
|
智能移动终端带来的变革:
|
|||
|
|
- **随时随地的计算能力**:人们不再局限于桌面电脑,移动计算成为常态
|
|||
|
|
- **丰富的人机交互方式**:触摸屏、语音识别、手势识别等新型交互方式
|
|||
|
|
- **移动互联网接入**:随时随地连接网络,推动移动应用生态爆发
|
|||
|
|
|
|||
|
|
解决对策:
|
|||
|
|
- **低功耗设计**:采用动态电压频率调节(DVFS)、多核异构架构(大小核)等技术延长续航
|
|||
|
|
- **多核异构计算**:利用CPU+GPU+NPU等异构处理器协同工作,兼顾性能与功耗
|
|||
|
|
- **安全机制增强**:引入可信执行环境(TEE)、生物识别认证、数据加密等安全手段
|
|||
|
|
|
|||
|
|
**2. 请分析并论述嵌入式系统的定义、组成及特点。(10分)**
|
|||
|
|
|
|||
|
|
**定义**:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
|
|||
|
|
|
|||
|
|
**组成**:
|
|||
|
|
- **硬件层**:嵌入式处理器(MCU、MPU、DSP、FPGA等)、存储器(ROM、RAM、Flash)、外设接口(GPIO、UART、SPI、I2C等)
|
|||
|
|
- **软件层**:嵌入式操作系统(RTOS或嵌入式Linux等)、设备驱动程序、中间件、应用程序
|
|||
|
|
|
|||
|
|
**特点**:
|
|||
|
|
- **专用性强**:面向特定应用,功能明确
|
|||
|
|
- **实时性要求**:需要在规定时间内完成响应
|
|||
|
|
- **可靠性高**:特别是工业和医疗领域,要求长时间稳定运行
|
|||
|
|
- **资源受限**:内存、存储、功耗等方面受到严格限制
|
|||
|
|
- **软硬件协同**:需要针对硬件进行软件优化,软硬件联合设计
|
|||
|
|
|
|||
|
|
**3. 请简要分析嵌入式系统在实际生活中的应用。(10分)**
|
|||
|
|
|
|||
|
|
嵌入式系统已深入渗透到日常生活的各个方面:
|
|||
|
|
|
|||
|
|
- **智能手机**:集成了高性能嵌入式处理器、传感器、通信模块,是最普及的嵌入式系统
|
|||
|
|
- **智能家居**:扫地机器人(路径规划与避障)、智能音箱(语音识别与处理)、智能门锁(安全认证)
|
|||
|
|
- **汽车电子**:车载导航系统(GPS定位与地图渲染)、自动驾驶(多传感器融合与实时决策)、发动机控制单元(ECU)
|
|||
|
|
- **医疗设备**:心脏起搏器(实时监测与刺激)、监护仪(生命体征实时采集与分析)
|
|||
|
|
- **工业控制**:PLC(可编程逻辑控制器)、工业机器人(运动控制与协调)、智能制造产线
|
|||
|
|
|
|||
|
|
> [!note] 教学提示
|
|||
|
|
> 综合题的答题关键在于:先给出定义/概念(踩点得分),再展开分析(体现理解深度),最后结合实际案例(展示应用能力)。建议学生在备考时,针对每个知识点准备2-3个具体的应用实例。
|
|||
|
|
|
|||
|
|
### 答案速查表
|
|||
|
|
|
|||
|
|
| 题型 | 题号 | 答案要点 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| 填空题 | 1 | 应用、计算机技术、专用 |
|
|||
|
|
| 填空题 | 2 | 流水线、RISC |
|
|||
|
|
| 填空题 | 3 | 冯·诺依曼 |
|
|||
|
|
| 填空题 | 4 | 哈佛 |
|
|||
|
|
| 填空题 | 5 | 当前程序状态寄存器 |
|
|||
|
|
| 填空题 | 6 | 相等 |
|
|||
|
|
| 选择题 | 1 | C |
|
|||
|
|
| 选择题 | 2 | C |
|
|||
|
|
| 选择题 | 3 | C |
|
|||
|
|
| 选择题 | 4 | A |
|
|||
|
|
| 选择题 | 5 | A |
|
|||
|
|
|
|||
|
|
## 关联笔记
|
|||
|
|
|
|||
|
|
- [[试题1]]
|
|||
|
|
- [[试题2]]
|