华测导航嵌入式二面面经 综合性比较强

最近参加了华测导航嵌入式岗位的二面,整体感受是相比一面明显更深入一些。如果说一面更多是在考察基础知识是否扎实,那二面就更偏向于看你能不能把基础知识和实际项目结合起来,看看你对自己做过的东西到底理解到什么程度。

面试官整体风格还是比较平和,没有那种很强的压迫感,但问问题的方式会更有层次,不再只是单独问某个知识点,而是会顺着你的项目往下追问。很多问题表面上看是在问项目,实际上是在考察你的系统设计能力、排查问题能力、代码理解深度,以及你是不是真的亲手做过。

就我个人感受来说,二面的难度比一面高一些,主要难在“综合性更强”。不是单纯背八股就能很好应对,尤其是当面试官围绕项目细节不断展开时,如果平时只是做了表面工作、没有认真复盘,很容易答着答着就露出薄弱点。不过如果项目确实做得比较实,对模块划分、通信流程、异常处理、性能瓶颈这些都有思考,整体也还是可以接住的。

面试题目

先让你详细介绍一个你做过的嵌入式项目,重点讲你负责的部分、系统架构、通信流程以及你解决过的实际问题。

如果让你重新设计这个项目,你觉得当前方案有哪些不足,可以怎么优化?

项目里任务是怎么划分的?如果用了 RTOS,任务优先级是怎么分配的,为什么这样分?

多个任务同时访问同一资源时,你是怎么做同步和互斥的?有没有遇到过死锁或优先级反转问题?

消息队列、信号量、互斥锁、事件标志组分别适合用在什么场景?

如果某个高优先级任务偶发性卡死,你会怎么定位?

项目里出现过内存泄漏、栈溢出、野指针这类问题吗?当时怎么排查?

为什么有些全局变量需要加 volatile,有些却不需要?

中断里哪些事情适合做,哪些事情不适合做?如果中断频率很高,系统响应不过来怎么办?

DMA 的使用场景是什么?相比 CPU 搬运数据有什么优势?项目里有没有用过 DMA?

UART 接收不定长数据时,一般怎么设计接收方案?

如果串口通信偶尔丢包,你会从哪些方向排查?

SPI 和 I2C 在项目选型时你会怎么权衡?如果通信距离变长、干扰变强,方案上会做什么调整?

说一下你对 bootloader 的理解。主程序升级一般要考虑哪些问题?

如果设备需要支持远程升级,如何保证升级失败后设备不会变砖?

从上电到主程序运行,芯片大致经历了哪些过程?

硬件调试时,如果板子上电后系统不工作,你一般怎么一步步排查?

如果看门狗频繁复位,你会怎么定位原因?

你项目里做过哪些性能优化或稳定性优化?效果如何衡量?

如果一个模块现场运行很稳定,但换一批板子后问题频发,你会怀疑哪些方面?

有没有遇到过“实验室能跑,现场不稳定”的情况?最后是怎么解决的?

你和硬件、上位机、测试同学是怎么配合的?如果接口定义不清导致联调反复,你通常怎么推进?

项目里你觉得最能体现你能力的一次问题排查经历是什么?

如果现在让你带一个新人接手你的模块,你会怎么帮他快速上手?

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

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

总结

总的来说,华测导航这场嵌入式二面难度比一面高一点,但也不是特别偏怪,核心还是看两点:一是基础知识能不能真正用起来,二是项目经历是不是自己实打实做过。

如果后面有同学准备华测导航嵌入式二面,我觉得可以重点准备这几个方向:

  1. 把自己的项目从系统架构、模块职责、任务设计、通信流程、异常处理几个角度梳理清楚。
  2. 把 RTOS、任务调度、同步互斥、中断、DMA、通信协议这些内容和项目结合着准备。
  3. 提前总结几段典型的问题排查经历,最好能讲清楚现象、定位过程、根因和最终改进。
  4. 对 bootloader、在线升级、看门狗、稳定性优化这些偏工程化的问题也要有一定准备。

我自己的感觉是,二面更像是在判断你有没有独立做事和解决问题的能力,而不只是会不会背知识点。只要项目经历准备充分,回答时尽量结合真实场景去讲,整体还是能够比较顺畅地应对。

全部评论
感觉总结的很好呢
点赞 回复 分享
发布于 昨天 23:10 北京
之前投了这家的测试开发直接简历挂
点赞 回复 分享
发布于 04-10 23:12 辽宁

相关推荐

评论
3
2
分享

创作者周榜

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