汇川技术 嵌入式面经
8月24日投递
9月3日一面(30min)
自我介绍
介绍一下你的第一个项目吧
按照以下顺序展开:
先说了这个比赛的背景,然后介绍了这个比赛里面自己的开发工作。是大学生电动方程式赛车的比赛,对赛车做嵌入式MCU开发,采集所有传感器的数据,用到了两块MCU
然后说了一下里面用到的技术,包括中断,ADC,UART,IIC,SPI,CAN,无线通信协议(LoRa模块,4G模块),上位机,FreeRTOS(任务调度,消息队列,临界资源保护等)
最后讲了一下成果
对于MCU的选型为什么使用F4的STM32
主要是考虑到主频以及功耗,在赛车上不太需要考虑功耗,所以尽可能提高主频,这样能够提升实时性,当然也要考虑成本
项目里面用到了SPI进行两块MCU之间的通信,介绍一下SPI
经典八股,提前准备了,没问题
为什么使用SPI,有考虑过或者对比过别的协议吗
我希望的是两块MCU互通有无,因为赛场上瞬息万变,实时性非常重要。别的通信方式速度都太慢了,SPI可以在这两块MCU上跑到42Mbit/s的速度,算下来传输一个字节大概3μs左右,相当快(现场演算了一下)。因此对比别的通信协议都难以达到这个速率。这也回到了刚刚那个问题,为什么选用两块F4作为主控
那C语言里面指针用得多吗
还行,比较常用的数据类型,也是C的一个特色。讲了一下项目中使用指针的例子,用指针传递六轴传感器的数据到消息队列,防止错乱与丢失
结构体用得多吗
讲了一下项目里SPI传输数据的时候用的数据包用的就是结构体来打包,包含了帧头、传感器ID以及数据本体
那来聊一下另外一个企业的项目吧,上面写了你们用Git管理代码,你能说一下这个Git是干嘛的吗
将我们用Git协作开发的场景描述了一遍
介绍一下你项目里优化雷达滤波算法的工作
继续讲项目,主要就是自己做的工作,还有思考过程,以及最后的结果
其实这个项目不是实习,而是跟着老师做的项目,老师把我丢给了一个公司老板,相对来说比自己做的比赛或者别的项目要正规一点
问了一些简单的FreeRTOS的问题
反问
当场表示一面过了
9月8日二面(20min)
自我介绍
不要以技术为主,主要体现自己的人各方面的魅力,谦虚得来又要有自信
就那些 hr 常问问题,可以看看宝洁八大问,挑他爱听的讲就好了
二面结束后一个小时通知三面
9月10日三面(30min)
自我介绍
项目里面用到了 IIC,SPI,UART,CAN,简述一下之间的区别
分同步异步展开讲
然后逐个拆解异同点,时序等关键信息,清晰讲述就好,也是经典八股
在比赛里面用的CAN波特率是多少
250k
为什么用250k
结合整车器件的特性,兼顾稳定性和速率,例如电池的BMS和整车控制器ECU等。
还有就是往届有些代码我们也会使用,所以一直以来都在用250k,也就没改(但是其实这样答题很不好,千万不要这样说)
介绍一下C的结构体对齐
经典八股
好,技术我对你了解差不多了,你家里是哪的
如实说
后面还问了:个人发展规划等这些综合问题,看情况发挥会好了
反问
9月15日 offer待审核
9月17日 OC
还没谈薪