已挂 面试时间为2026年4月21日
2026 KPIT 嵌入式实习面经
26年投递的上海KPIT嵌入式实习岗,JD是C/C++微控制器和外设开发。目前中文互联网相关面经很少,因此本文简单记录一下面试过程和内容。笔者面试的岗位需要跨国与公司在德国和印度的部门合作,因此面试以英文为主,由德国慕尼黑部门的面试官远程进行Team面试。
面试过程与内容
一面为技术面,Team会议室总共4名面试官,一位是上海部门的中国人,其余3位都是在慕尼黑部门的印度面试官。有些印度面试官的英语会有口音,HR在面试开始之前也很好心提醒我可以开Team的实时字幕辅助(虽然实际面试的时候字幕也不太能准确翻出来)。面试总共45分钟左右,内容是自我介绍,技术知识点以及项目经历,最后是反问和上海部门和我的一些简单信息确认。下面是笔者回忆的一些问题:
- 通信相关
CAN通信的概念,使用的channel。
驱动层面怎么获取和解析CAN的包。
应用层面怎么获取包中的数据。
说明CAN的仲裁机制。
介绍一下SPI。
SPI中,如果Slave要主动发送信息,如何实现这一点(注意CLK通道是Master控制的)。
SPI或者I2C是怎么解决data corruption的问题的。
- C/C++ 编译相关
- 描述Compiler的编译过程。
- 如果调用了一个没有被Implemented的函数,会有什么类的编译错误?编译还能输出object file吗?
- 编译过程中输出的section中各个字段的内容(
.bss,.data,.text等等)。 - 什么问题会导致stack overflow?
- 一个
.h头文件存在,但是编译时找不到,可能是什么原因? - 使用过什么debug工具?
- 系统相关
- 使用过RTOS吗?使用过STM32上的OS吗?
- 多线程资源抢占的解决方法。
- 什么情况下,shared的资源不需要保护也不会产生问题。
- 什么情况下微控制器的系统会自己reset,memory corruption会导致reset吗?
- 介绍一下看门狗机制,window看门狗和independent看门狗的区别是什么?
- 其它项目问题
- 说明一些项目的技术实现思路(我这里问了一些OTA项目的细节和开发工具链的使用经验)。
简单总结和碎碎念
其实回顾来看,面试的问题都不算难,但有些问题实际项目没有做过的话,光靠突击八股是答不上来的。对笔者而言,最大的难点是克服语言和心理障碍,其次是八股还需要全面巩固。
最后的最后再找点借口(´ー`)。面试的时候人还在北美,面试时间又是按照慕尼黑的时区定,所以当时早上6点面的时候整个人都挺晕...... 很多问题答得不确定,口语表达也不太准确和流利。面试前HR提前和我说过,这个岗位目前说不太倾向于招短期或者北美base的学生,所以笔者第一次纯英文面试就这样毫无悬念地被默拒了。