13 KiB
tags, create time
| tags | create time | ||
|---|---|---|---|
|
2026-06-10 10:41 |
试题 1 — 武汉科技大学《嵌入式系统》
概述
- 课程:嵌入式系统
- 学校:武汉科技大学
- 题型:单选题、判断题、简答题、综合题
- 知识点:嵌入式系统基础概念、ARM 架构与指令集、操作系统调度策略、嵌入式系统设计
[!tip] 学习建议 本试题包含大量 ARM 指令分析题,建议结合
[[嵌入式系统/ARM架构与指令集]]笔记进行复习。作答后请对照参考答案进行自我评估。
正文
一、单选题(共10题,每题2分,共20分)
-
嵌入式系统的设计和实现过程中,需要考虑的因素包括()。 A. 可靠性 B. 实时性 C. 功耗 D. 以上都是
-
以下不属于嵌入式操作系统支持的存储管理方式是()。 A. 多重连续地址映射 B. 段页式存储 C. 虚拟存储 D. 存储保护单元
-
ARM7处理器除了可以访问通用寄存器外,还可以访问()。 A. 程序计数器 B. 状态寄存器 C. 基址寄存器 D. 链接寄存器
-
以下哪条指令不能单独执行的是()。 A. 将R1的值与立即数16进制相加,并将结果传送到CPSR的标志位 B. 将R1的值与立即数16进制相加,并将结果传送到R1 C. 将R1的值与立即数10进制相加,并将结果传送到CPSR的标志位 D. 将R1的值与立即数26进制相加,并将结果传送到R1
-
ARM的指令集属于()。 A. RISC B. CISC C. VLIW D. EPIC
-
Android系统的()主要是为应用程序提供程序开发需要的各种API。Android自带的一些应用程序也是通过这个API开发出来的。 A. 应用层 B. 应用程序框架层 C. 系统运行库层 D. Linux内核层
-
以下不属于ARM7处理器的工作模式是()。 A. 快速中断模式 B. 用户模式 C. 系统模式 D. 管理访问终止模式
-
ARM指令集是(),Thumb指令集是()。 A. 32位,16位 B. 16位,32位 C. 32位,32位 D. 32位,16位
-
以下哪个寄存器属于链接寄存器()。 A. CPSR B. SP C. LR D. R1
-
以下异常发生在异常向量表中地址偏移量正确的是()。 A. 复位 0x00000000 B. 未定义指令 0x00000004 C. 软中断SWI 0x00000008 D. 数据访问终止 0x00000010
[!warning] 易错点 第8题中,ARM指令集是32位,Thumb指令集是16位,选项 D 正确。请注意区分 ARM 状态和 Thumb 状态下指令宽度的差异。
[!tip] 答题技巧 对于 ARM 处理器工作模式相关题目,建议画出处理器模式状态图辅助记忆。ARM7TDMI 有 7 种工作模式:用户模式(USR)、系统模式(SYS)、管理模式(SVC)、中止模式(ABT)、未定义模式(UND)、中断模式(IRQ)、快速中断模式(FIQ)。
二、判断题(共10题,每题2分,共20分)
- ARM7TDMI中T代表ARM,D代表嵌入式数字。()
- 嵌入式系统开发环境与运行环境是不一样的。()
- 用户模式下不能切换到特权模式。()
- 软件指令可以加上条件码EQ变为BEQ表示"条件相等跳转",即CPSR中的Z标志置位。()
- ARM处理器的工作状态包括三种:ARM状态、Thumb状态和调试状态。()
- 大端模式中,半字数据的高字节存放低地址中,而半字数据的低字节存放在高地址中。()
- 不对齐地址访问时,如果不能安全分步存储在R0-R7中的数据,可能会造成该存储器数据的损坏。()
- ARM系统中的异常与中断概念是不完全等同的。()
- 芯片上电复位时会考虑将处理器的PC指针初始化。()
- 程序状态寄存器中的中断禁止位是一个一位屏蔽位用于屏蔽所有可屏蔽的ARM中断。()
[!note] 知识点辨析 第1题中,ARM7TDMI 的含义为:ARM7(处理器内核)、T(Thumb 指令集支持)、D(Debug 调试支持)、M(Multiplier 乘法器)、I(ICE 在线仿真接口)。D 代表 Debug,而非"嵌入式数字"。
三、简答题(共4题,7+7+8+8共30分)
1. 简述嵌入式操作系统中占先式调度和非占先式调度各自的特点和它们之间的区别。(8分)
参考答案:
占先式内核按照每个任务优先级调度CPU的资源。非占先式内核中任务调度策略是按合作型调度方式工作的,各个任务彼此共享一个CPU,任务调度只是发生在任务切换之时。
占先式内核可以使得一个高优先级的任务在紧急事件发生时,立即获得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] 教学提示 占先式调度的核心优势在于"立即响应",适用于对实时性要求高的场景,如工业控制、航空航天等。非占先式调度实现简单、开销小,适用于实时性要求不高的场景。
2. 简述MOV指令与LDR指令的区别。(5分)
参考答案:
MOV指令用于将数据从一个寄存器传送到另一个寄存器,或者将一个常数传送到一个寄存器中,但是不能访问内存空间。LDR指令用于从内存中读取数据到寄存器中。
; MOV 指令示例 - 寄存器间传送
MOV R1, R2 ; R1 = R2
MOV R1, #0x10 ; R1 = 0x10
; LDR 指令示例 - 从内存加载数据
LDR R1, [R2] ; R1 = *R2
LDR R1, =0x12345678 ; R1 = 0x12345678
[!warning] 关键区别 MOV 是数据传送指令,只能操作寄存器和立即数;LDR 是加载指令,可以访问内存地址。在实际编程中,需要加载内存数据时必须使用 LDR。
3. 什么是程序状态寄存器?请简述其包含的内容。(9分)
参考答案:
ARM内部包含1个CPSR和5个保留的备份SPSR。CPSR反映当前处理器的状态。
其低5位为:M[4:0],处理器模式位。T位:Thumb指令。中断禁止位I和F位。条件标志位N、Z、C和V溢出标志。
flowchart LR
subgraph CPSR["Program Status Register (CPSR)"]
direction LR
N["N: Negative"]
Z["Z: Zero"]
C["C: Carry"]
V["V: Overflow"]
I["I: IRQ Disable"]
F["F: FIQ Disable"]
T["T: Thumb State"]
M["M[4:0]: Mode Bits"]
end
| 位域 | 名称 | 功能描述 |
|---|---|---|
| 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] | 处理器模式 | 选择处理器工作模式 |
4. 指出以下每行ARM指令助记符的含义(8分)
| 序号 | 指令 | 含义 |
|---|---|---|
| (1) | ADD R1, R2, R3 |
R1等于R2加R3 |
| (2) | SWI 0 |
软件中断,中断号为0,具体功能由芯片厂商定义 |
| (3) | MLS R1, R2, R3, R4 |
R1等于R3乘R4的值减去R2 |
| (4) | LDRB R2, [R3, #0x04] |
将存储器地址为R3+4的字节数据传送到R2 |
| (5) | STMFD SP!, {R1-R4} |
将R1-R4中的数据依次压入堆栈,FD表示满递减堆栈 |
| (6) | MRS R0, CPSR |
将CPSR的值读取到R0 |
| (7) | BL LOOP |
带链接跳转到LOOP,返回地址保存到LR |
| (8) | STMIA R0!, {R1-R4} |
将R1-R4的值依次存入R0指向的地址,R0递增 |
| (9) | MVNNE R0, R1, LSL#2 |
条件不等于时,将R1左移2位后按位取反送入R0 |
[!note] 教学提示 ARM 指令格式为:
操作码{条件码}{S} 目标寄存器, 操作数1, 操作数2。条件码如 NE(不等于)、EQ(等于)等,S 后缀表示更新 CPSR 标志位。
; 指令详解示例
ADD R1, R2, R3 ; R1 = R2 + R3
SWI 0 ; Software Interrupt
MLS R1, R2, R3, R4 ; R1 = R3 * R4 - R2
LDRB R2, [R3, #4] ; R2 = *(R3 + 4) (byte)
STMFD SP!, {R1-R4} ; Push R1-R4 to stack (Full Descending)
四、综合题(共2题,每题15分,共30分)
1. 紧急事件处理嵌入式系统设计
针对紧急事件处理等场合,需要根据紧急事件的预警等级(如家居安全管理、社区监管、交通管制、医疗卫生管理等),请根据紧急事件处理对实时性和高可靠性需求,设计一套嵌入式系统,简述其设计思路,并说明该系统怎样达到高可靠和实时的需求。
参考答案:
评分标准: 系统架构完整,具有较好的理论性和实际指导性给15分,其他酌情给分。
- 本题描述该系统方案(包括硬件设计和软件系统),方案可行(8分)
- 主题明确,满足应用需求(4分)
- 其他(创新、合理性、系统控制等)(3分)
设计思路要点:
- 硬件层面: 采用高性能嵌入式处理器(如 ARM Cortex-A/R 系列),配备冗余电源、看门狗定时器、外部中断控制器,确保硬件可靠性。
- 软件层面: 采用实时操作系统(RTOS),使用占先式调度算法,为紧急事件处理任务分配最高优先级。
- 通信机制: 设计多级中断优先级,紧急事件触发快速中断(FIQ),确保响应延迟最小化。
- 容错设计: 实现故障检测与恢复机制,关键数据采用双缓冲或冗余存储。
[!note] 设计要点 高可靠系统需要考虑:硬件冗余、软件容错、故障检测、数据校验、电源管理等多个维度。实时性则需要从调度算法、中断响应、任务优先级等方面进行优化。
flowchart TD
subgraph Hardware["Hardware Layer"]
Processor["ARM Cortex-R Processor"]
Watchdog["Watchdog Timer"]
RedundantPower["Redundant Power Supply"]
InterruptController["Interrupt Controller"]
end
subgraph Software["Software Layer"]
RTOS["Real-Time OS"]
PriorityScheduler["Priority Scheduler"]
TaskHigh["High Priority: Emergency Handler"]
TaskLow["Low Priority: Monitoring"]
end
subgraph Communication["Communication Layer"]
FIQ["Fast Interrupt (FIQ)"]
IRQ["Normal Interrupt (IRQ)"]
end
Hardware --> Software
Software --> Communication
InterruptController --> FIQ
InterruptController --> IRQ
FIQ --> TaskHigh
IRQ --> TaskLow
2. 可穿戴设备应用现状与未来趋势分析
嵌入式系统应用到实际的计步器、可穿戴设备智能手环等"穿戴"的方式进行使用。例如智能手环,可穿戴设备在人体运动中通过传感器对加速度变化规律检测,智能设备在对人体运动数据记录分析后,实现人体运动监测等应用。简要分析可穿戴设备的应用现状和未来趋势。
参考答案:
评分标准: 理论叙述完整,逻辑清晰,表达流畅,并附有相关要求可给满分,其他酌情给分。
随着传感器技术的进步和低功耗蓝牙技术的成熟,可穿戴设备迎来了爆发式增长。
应用现状:
- 穿戴方式: 智能手环贴近皮肤、手表贴近手腕,都是贴身穿戴型。
- 传感器数据: 智能手环能够采集用户的心率、运动量等数据。
- 设备特点:
- 贴近人体,能持续采集生理数据
- 低功耗设计,保证续航
- 通过蓝牙等方式与手机同步数据
未来趋势:
- 设备小型化
- 功能集成化
- 数据云端化
- 功能更加专业化(如医疗级监测)
- 续航能力提升
- AI算法优化数据分析
flowchart LR
subgraph Current["Current State"]
Sensor["Motion Sensor"]
HeartRate["Heart Rate Monitor"]
BLE["Bluetooth Sync"]
end
subgraph Future["Future Trend"]
Mini["Miniaturization"]
Integration["Functional Integration"]
Cloud["Cloud Data"]
AI["AI Analytics"]
Medical["Medical Grade"]
end
Current -->|"Technology Evolution"| Future
[!note] 教学提示 可穿戴设备的核心技术包括:低功耗传感器技术、无线通信技术(BLE)、数据融合算法、电源管理技术。未来发展方向将更加注重医疗级精度和 AI 智能分析能力。