标签题目
嵌入式系统相关面试题
串口、IIC、SPI 通信特点有什么区别?
这题考常见板级串行通信的选型能力,回答要按时钟、拓扑、速度、引脚、可靠性和典型场景对比。
IIC 的上拉电阻有什么作用,实际配置时要考虑什么?
这题考双线开漏总线的电气基础,回答重点是上拉定义高电平、支持线与逻辑,并按电容、速率和灌电流选择阻值。
FreeRTOS 如何实现任务调度?
这题考实时内核调度机制,回答要把优先级就绪链表、节拍中断、阻塞唤醒和上下文切换串起来。
FreeRTOS 任务状态机有哪些状态,阻塞和挂起有什么区别?
这题考实时任务生命周期,重点是能解释运行、就绪、阻塞、挂起之间的转换,以及阻塞和挂起的本质差异。
RTOS 相比裸机开发有什么优势?
这题考嵌入式系统架构取舍,回答要说出多任务、实时性、同步通信和维护性优势,同时承认资源开销。
CAN 帧结构是什么,CAN 相比 SPI/IIC 为什么更适合车上?
这题考车载总线基础,回答要讲清帧字段、仲裁、差分物理层、错误处理,以及它相对板级总线的可靠性优势。
UART 波特率怎么算,两端波特率不一致会怎样?
这题考异步串口的时钟误差,回答要说明波特率由外设时钟分频产生,不一致会导致采样漂移、乱码和帧错误。
SPI 通信过程、四种模式和 DMA 使用如何回答?
这题考四线同步总线的通信过程、模式配置和大批量传输优化,回答要把线序、边沿采样、片选和 DMA 结合起来。
I2C 总线被从机一直拉低后,软件上如何恢复?
这题考总线挂死恢复,回答要讲清先判断哪根线被拉低,再通过 GPIO 模拟时钟和 STOP,必要时复位或断电从机。
I2C 设备返回 NACK 时,驱动层应重试、上报还是复位总线?
这题考驱动错误处理策略,回答要先分类 NACK 来源,再决定有限重试、错误上报或总线恢复,而不是一律重试。
哪些设备适合使用 SPI 通信,QSPI Flash 操作手册要重点看什么?
这题考同步串行接口的典型外设和存储器手册阅读能力,回答要从设备类型、命令集、地址模式、dummy cycles 和擦写限制展开。
SPI 的 CPOL 和 CPHA 怎么理解,配置错了会出现什么现象?
这题考同步时钟采样时序,回答要解释空闲电平和采样边沿,并能说出配置错误的具体波形和现象。
UART 空闲中断接收不定长数据的原理是什么?
这题考串口不定长接收方案,回答要讲清 DMA 持续收数据,空闲线中断负责判定一帧结束并计算本次长度。
如何保证串口接收数据时不丢帧?
这题考串口接收可靠性,回答要从吞吐预算、硬件 FIFO/DMA、缓冲区、协议校验和流控一起保证不丢帧。
CAN 总线仲裁机制如何通过物理层显性/隐性状态实现?
这题考 CAN 仲裁与物理层的关系,回答要说明显性位覆盖隐性位,节点边发边读,发送隐性却读到显性即仲裁失败。
设计上位机和嵌入式设备之间的二进制协议时,要如何考虑帧格式、校验、序号、重传和兼容性?
这题考嵌入式通信协议设计,回答要覆盖帧边界、版本长度、校验、序号重传、兼容扩展和调试可观测性。
FreeRTOS 的 heap_4 有什么特点,malloc 时底层具体做了什么?
这题考实时内核动态内存管理,回答要说明 heap_4 用空闲块链表、按地址合并相邻块,malloc 时对齐、查找、拆分并返回用户区。
FreeRTOS 任务栈溢出一般怎么排查,有哪些常见原因?
这题考任务栈问题定位,回答要覆盖溢出检测配置、高水位检查、故障现场和常见栈消耗来源。
FreeRTOS 上下文切换为什么常用 SysTick 和 PendSV?
这题考 Cortex-M 上实时内核切换机制,回答要说明 SysTick 负责时间节拍和唤醒,PendSV 以低优先级执行上下文保存恢复。
FreeRTOS 任务间传递一帧图像这类大量数据时,队列、流缓冲区和共享内存加信号量怎么选?
这题考任务间通信选型,回答要说明大块数据不宜直接队列拷贝,通常用共享缓冲加所有权同步或流式缓冲。
FreeRTOS 每个任务为什么需要自己的栈,任务切换时要保存哪些上下文?
这题考任务隔离和上下文切换基础,回答要说明每个任务必须有独立调用栈,切换时保存寄存器、栈指针和调度状态。
FreeRTOS 临界区和关中断是什么关系,使用时要注意什么?
这题考临界区保护机制,回答要说明临界区常通过屏蔽中断和调度来保护共享数据,但必须短小、不可阻塞并区分任务和中断接口。
FreeRTOS 低功耗是怎么做的,进入低功耗模式后如何唤醒?
这题考实时系统低功耗设计,回答要讲清 tickless idle、进入睡眠前判断、外部唤醒源和唤醒后的 tick/外设恢复。
设计支持 OTA 升级的 Bootloader 时,Boot 区和 App 区如何划分?
这题考 OTA 启动分区设计,回答要覆盖 Bootloader 保护、双 App/下载区、镜像校验、切换标志和回滚。
为什么要引入看门狗,程序卡死后如何结合寄存器或栈信息定位问题?
这题考看门狗设计和死机定位,回答要说明看门狗是故障恢复兜底,喂狗应由监督任务基于健康检查执行,并保存复位现场。
Cortex-M 的 HardFault 通常怎么定位到出错指令?
这题考 Cortex-M 异常现场分析,回答要说明从异常栈帧取 PC/LR,结合故障状态寄存器和符号表定位出错指令。
多传感器数据如何融合,卡尔曼滤波如何解释?
这题考多传感器融合和卡尔曼滤波基本功,重点是状态预测、观测更新、噪声协方差、异步数据和异常值处理。