嵌入式必备八股文总结

嵌入式开发的面试,既考察基础知识,也会结合项目实践。本文整理了常见的必备八股文内容,帮助大家快速查漏补缺。

一、C 语言与内存管理

  • 指针与数组char *p 和 char a[] 的区别?二级指针、函数指针、回调函数的用法。
  • 字符串操作strlen 和 sizeof 的区别。strcpy 与 memcpy 的不同点。
  • 内存分配malloc/free 与 new/delete 的区别。内存对齐原则,为什么要对齐?栈区、堆区、静态区、常量区的区别。
  • 常考陷阱宏定义和 inline 的区别。const、volatile、static 的用法。大端小端存储的判断。

二、数据结构与算法

  • 链表单链表、双链表、循环链表的实现与反转。快慢指针寻找环。
  • 队列与栈循环队列的判空与判满。用两个栈实现队列。
  • 排序与查找快速排序、归并排序的时间复杂度。二分查找的实现。
  • 嵌入式常见算法环形缓冲区的实现。CRC 校验的原理和实现。

三、操作系统与 RTOS

  • 任务调度抢占式与协作式调度的区别。FreeRTOS 中的优先级反转与解决方法(优先级继承)。
  • 同步机制信号量、互斥锁、事件标志组的区别。队列在任务间通信中的应用。
  • 时间管理vTaskDelay 和 vTaskDelayUntil 的区别。滴答定时器(SysTick)的作用。

全网最全面的嵌入式八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

四、Linux 系统编程

  • 进程与线程fork 与 pthread_create 的区别。进程间通信方式:管道、消息队列、共享内存、socket。
  • 文件操作POSIX 接口:open、read、write、ioctl。阻塞与非阻塞 I/O。
  • 驱动开发字符设备驱动框架:open、read、write、release。中断处理流程:注册、上下半部、tasklet、工作队列。内核态与用户态的区别。

五、硬件相关知识

  • 总线协议I2C、SPI、UART 的区别与应用场景。DMA 传输的原理。
  • 存储器Flash 擦写机制,NAND 与 NOR 的区别。EEPROM 的使用注意事项。
  • 电路基础上拉电阻和下拉电阻的作用。开漏输出与推挽输出的区别。

六、项目与实战经验

  • 常见项目移植 FreeRTOS 到 STM32。基于 OLED/液晶屏的 GUI 界面开发。使用 Socket 实现简易 FTP/HTTP 客户端。驱动开发:I2C 传感器、SPI Flash、WS2812 灯条。
  • 项目问答你在项目中遇到过的最难的 bug 是什么?如何进行内存泄漏排查?如何优化系统功耗?

七、常见加分项

  • 工具链Makefile/CMake 的基本写法。交叉编译的流程。
  • 调试能力GDB 基本命令,如何调试段错误。使用 strace/dmesg 排查问题。
  • 工程素养代码可移植性与模块化设计。单元测试与持续集成的应用。

八、总结

嵌入式八股文不仅是面试题库,更是开发中必备的基础能力。想要在面试中脱颖而出,需要做到:

  1. 基础牢固:C 语言、数据结构、RTOS。
  2. 系统理解:Linux 驱动与内核机制。
  3. 硬件结合:懂协议、会调试。
  4. 项目可讲:能从设计到调优完整复盘。

只有把八股文知识点与实际项目经验结合,才能真正展示一个能写代码、能调问题、能解决实际需求的嵌入式工程师形象。

全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务