嵌入式春招八股文题目清单
一、C 语言与指针
sizeof与strlen的区别是什么?分别在什么阶段计算?- 解释 volatile、const、static 的作用及使用场景。
- 指针与数组的区别?数组名能否作为左值?
- 什么是野指针?如何避免?
- 函数指针是什么?如何定义与使用?
- 说说结构体内存对齐规则。
- 深拷贝与浅拷贝的区别?
- 如果一个函数返回局部变量的地址会发生什么?
- 为什么推荐少用递归?
- 宏定义与 inline 函数的区别?
全网最全面的嵌入式八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk
答案都在八股文专栏中了。
二、内存管理
- 堆和栈的区别是什么?
- 如何判断内存泄漏?常见场景有哪些?
- malloc/free 的内部机制?
- 内存碎片是什么?如何优化?
- 什么情况下会发生段错误?
三、嵌入式基础
- 单片机启动流程是什么?
- 什么是中断?中断优先级如何理解?
- 什么是临界区?如何保护?
- RTOS 的任务调度是怎样实现的?
- 死锁产生的条件有哪些?
- 什么是上拉电阻和下拉电阻?
- IIC、SPI、UART 的主要区别?
- 什么情况下需要使用 DMA?
- Cache 会带来哪些问题?
- 什么是 MMIO?与普通内存有什么区别?
四、Linux 驱动基础
- Linux 驱动层次结构是什么?
- 字符设备、块设备、网络设备的区别?
- Linux 中的中断上下半部分别做什么?
- 设备树是什么?有什么作用?
- 用户态与内核态的区别?
- copy_to_user 为什么不能直接 memcpy?
- 什么是零拷贝?应用场景有哪些?
- 内核态如何分配内存?
- 什么是页表、TLB?
- Linux 中的 poll/select/epoll 区别?
五、通信协议与总线
- TCP 与 UDP 的区别?
- CAN 总线仲裁机制是怎样的?
- Modbus RTU 的帧格式是什么?
- BLE 广播与连接模式的区别?
- RS-485 为什么可以实现长距离通信?
- 为什么 SPI 比 IIC 更快?
- WiFi 与蓝牙在硬件上有哪些差异?
- 什么是帧同步?数据链路层如何保证可靠?
六、硬件基础
- 电容的作用是什么?为什么能滤波?
- 电感的作用是什么?为什么能抗干扰?
- ADC 的采样频率与量化位数如何影响结果?
- PWM 调制原理是什么?
- 晶振偏差会导致什么问题?
- 什么是共模干扰和差模干扰?
- 高频信号为什么要注意阻抗匹配?
- LDO 与 DC-DC 的区别?
七、RTOS 高频考点
- 任务调度策略有哪些?
- 时钟节拍(tick)是什么?
- 信号量、互斥量、事件组的区别?
- 为什么互斥量需要优先级继承?
- 任务栈溢出会导致什么问题?
- 什么是时间片轮转调度?
- 什么是任务切换?哪些因素会触发?
八、项目与实际开发
- 描述一次你处理过的软件 Bug。
- MCU 项目如何降低功耗?
- 在项目中如何排查串口不输出?
- 如何优化一次 IIC 读写速度?
- 在实际工程中如何定位系统卡死问题?
- 如何做代码可维护性设计?
- 描述一次你做过的性能优化。


