常见问题 FAQ
考生最容易搞混的概念,按章节整理
第一章
Q1:嵌入式CPU的字长一定是16位以下吗?
不是。 ARM是32位,现代高端嵌入式处理器(如手机用的Cortex-A)是64位。
题目说"字长在16位以下"是错误的说法,这是官方样题第2题考点。
Q2:SoC中只有一个CPU吗?
不是。 SoC可以有多个CPU核心(如今天的手机处理器都是多核)。官方样题选A就是这个错误选项。
Q3:MPEG-4和MPEG-2有什么区别?
- MPEG-2 → DVD、数字有线电视(高质量,适合广播)
- MPEG-4 → 网络视频、手机(高压缩比,流量少)
数字有线电视选MPEG-2,不要选MPEG-4。
Q4:C类IP地址适合中型网络吗?
不是。 C类IP地址适合小型网络(最多254台主机),B类才适合中型网络。这是高频考点,选A就是错的。
第二章
Q5:ARM状态和Thumb状态有什么区别?
| ARM状态 | Thumb状态 | |
|---|---|---|
| 指令宽度 | 32位 | 16位 |
| 性能 | 更高 | 略低 |
| 代码密度 | 低(占空间大) | 高(占空间小) |
| 复位后状态 | 是(默认进入ARM状态) | 否 |
注意:ARM状态不支持16位指令,这是样题第12题的考点。
Q6:CPSR和SPSR有什么区别?
- CPSR(Current)= 当前程序状态,每时每刻都在用
- SPSR(Saved)= 中断发生时,系统自动把CPSR保存到SPSR,处理完中断后恢复
设置工作模式/状态/中断使能 → 修改 CPSR
Q7:ARM的7种异常怎么记?优先级怎么排?
口诀记忆(从高到低):
即:复位 > FIQ > IRQ > PABT > DABT > SWI > UND
Q8:LDR R2,[R5,#2]! 执行后R5变不变?
变! 有!号表示前索引带回写,执行后R5自动变成R5+2。
没有!号 → R5不变(如 LDR R2,[R5,#2])。
Q9:BIC指令和AND指令都能清零,有什么区别?
- AND:写目标掩码(要保留的位写1,要清零的位写0)
- 例:清零bit0 →
AND R0, R0, #0xFFFFFFFE(bit0写0) - BIC:写清零掩码(要清零的位写1,要保留的位写0)
- 例:清零bit0 →
BIC R0, R0, #0x1(bit0写1)
两者效果相同,BIC更直观(直接说哪一位要清)。
Q10:大端和小端怎么快速记?
大端(Big-Endian)= 大头朝前 = 高字节存在低地址 = 符合人类阅读习惯
例子:数字0x12345678 - 地址0x000: 0x12(最高字节) - 地址0x001: 0x34 - 地址0x002: 0x56 - 地址0x003: 0x78(最低字节)
小端(Little-Endian)= 小头朝前 = 低字节存在低地址 = x86默认、ARM默认
例子:同样的0x12345678 - 地址0x000: 0x78(最低字节) - 地址0x001: 0x56 - 地址0x002: 0x34 - 地址0x003: 0x12(最高字节)
第三章
Q11:DMA控制器挂在哪条总线上?
DMA挂在AHB(系统总线/高速总线)上,不是APB(外围总线)。
记忆:DMA是高速数据搬运,当然挂高速总线AHB。
Q12:ADC是定时/计数组件吗?
不是! ADC(模数转换器)是数据采集组件,不是定时/计数组件。
定时/计数组件只有:Timer、RTC、WDT。
Q13:SPI可以构成多主多从吗?
可以! SPI理论上支持多主多从拓扑。
题目说"采用SPI不能构成多主多从式系统"是错误说法(选D)。
Q14:USB 2.0是目前速率最高的USB版本吗?
不是! USB 3.0(5Gbps)、USB 3.1(10Gbps)、USB 3.2(20Gbps)都比USB 2.0(480Mbps)快得多。
题目说"USB 2.0是目前传输速率最高的"是错误说法(选B)。
Q15:FRAM和MRAM是什么?
填空题必考,直接背: - FRAM = Ferroelectric RAM = 铁电存储器 - MRAM = Magnetoresistive RAM = 磁性存储器
Q16:半导体芯片存储容量怎么算?
容量 = 2^(地址线条数) × 数据总线位数
例:某芯片有16根地址线,8位数据总线 → 容量 = 2^16 × 8bit = 65536 × 8 = 512Kbit = 64KB
第四章
Q17:μC/OS-II最多有多少个任务?用户可用多少个?
- 最多64个任务(优先级0~63)
- 内核保留4个(空闲任务、统计任务等)
- 用户可用60个(64-4=60)
注意:题目说"最多可以有63个任务"是错误的(选B),正确是60个。
Q18:μC/OS-II支持时间片轮转吗?
不支持! μC/OS-II是纯粹的优先级调度,每个任务必须有唯一的优先级,不用时间片。
题目说"μC/OS-I不支持时间片轮转调度法"是正确的说法(选C)。
Q19:OSTimeDly()之后任务进入什么状态?
进入等待态(Waiting/Blocked),不是被中断态。
被中断态是任务在运行时被中断打断,是暂时的;等待态是主动等待某个时间或事件。
Q20:时钟节拍应该在OSStart()之前还是之后激活?
之后! 必须先调用OSStart()启动多任务,然后才在某个任务中激活时钟节拍。
题目说"在调用OSStart()之后做的第一件事是初始化定时器中断"是错误的(选C)。
正确做法:OSStart()之前不启动时钟节拍,启动后在第一个任务里设置。
Q21:VxWorks、QNX、μC/OS-II属于硬实时还是软实时?
全部是硬实时OS(选A)。
Windows Embedded、μCLinux是软实时。
Q22:WinCE属于什么内核?
单内核(宏内核)。
单内核的缺点:内存空间大、维护困难、任务执行时间可预测性差。
(注意:"内核切换太快"不是单内核的缺点,这是错误选项C,答案选C。)
Q23:iOS跟哪个OS关系最紧密?
UNIX(选B)。
iOS底层是基于Mach微内核+BSD Unix的XNU内核,macOS也是同样的底层。
第五章
Q24:裸机调试需要什么接口?
JTAG接口(选C)。
SPI/以太网/USB接口都不能直接用来连调试仿真器调试裸机。
Q25:arm-linux-gcc编译时如何加调试信息?
加 -g 参数:
填空:若要对应用程序进行调试,编译命令中应加 -g 参数。
Q26:嵌入式系统开发有哪4个阶段?
- 需求分析与规格说明
- 系统设计
- 构件设计(注意!不是"模块设计")
- 系统集成与测试
填空格式:嵌入式系统开发过程按顺序可以分成需求分析与规格说明、系统设计、构件设计、系统集成与测试等4个阶段。