芯海嵌入式软件开发二面 面经 综合性强

最近整理了一份芯海嵌入式软件开发二面面经,二面的风格和一面不太一样。一面更偏基础知识排查,会系统问 MCU、FreeRTOS、启动流程、中断、内存这些底层内容;二面通常更看重项目经历,尤其会围绕你简历里写过的项目持续深挖。

整体感受是,二面题量不会像一面那样特别散,但每个问题都会追得更细。面试官重点想确认三件事:这个项目你是不是真的做过、关键模块是不是你自己负责、遇到问题时你有没有独立分析和落地解决的能力。

面经总结:

  1. 详细介绍一下你做过的一个嵌入式项目,项目背景、目标和你的职责分别是什么?
  2. 这个项目的整体软件架构是怎么设计的?模块是怎么划分的?为什么这样拆分?
  3. 你在项目里具体负责了哪些功能模块?哪些部分是你独立完成的?
  4. 项目里如果用了 FreeRTOS,任务是怎么划分的?任务优先级为什么要这样设置?
  5. 项目里的任务之间是怎么通信和同步的?用了队列、信号量、互斥锁还是事件组?为什么这么选?
  6. 你们项目里用了哪些外设和接口,比如 UART、SPI、I2C、ADC、DMA、定时器、GPIO 中断?你负责的是哪一部分?
  7. 项目里有没有做过驱动开发或者移植?你具体做了哪些工作?调试过程遇到过什么问题?
  8. 这个项目里最有难度的一个技术问题是什么?当时为什么难?你最后是怎么解决的?
  9. 你有没有遇到过偶现 bug,比如死机、跑飞、通信异常、数据错乱、任务卡死?你是怎么定位的?
  10. 项目中如果出现实时性不够、任务响应慢、丢数据或者卡顿,你通常会从哪些方向分析?
  11. 你在项目里做过哪些优化?比如内存占用、CPU 占用、任务调度、通信效率、功耗、启动速度、稳定性这些方面。
  12. 你们项目是怎么做调试和问题定位的?常用过哪些方法,比如日志、示波器、逻辑分析仪、在线调试、抓波形、状态打点?
  13. 项目最后的测试和验证是怎么做的?你怎么证明这个功能是稳定可交付的?
  14. 如果现在让你重新做这个项目一次,你会在哪些地方优化设计,或者避免当时踩过的坑?

嵌入式八股文专栏https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

(专栏包括各类基础八股文以及大厂面试题等内容)

总结

芯海嵌入式软件开发二面,项目问题一般比基础题更难准备,因为它没有标准答案,更看重你能不能把自己的工作讲具体、讲真实、讲出技术判断。很多同学一面能过,二面卡住,往往不是因为基础不行,而是项目讲不透,一问到“为什么这么设计”“这个问题你怎么排查”“如果重来怎么优化”就容易乱。

准备二面时,建议重点把自己最熟的 1 到 2 个项目梳理透,至少把架构设计、任务划分、通信方式、关键问题、调试过程、优化点这几个部分讲顺。项目讲顺了,二面通过率通常会明显高很多。

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

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