首页 > 智元机器人嵌入式一二面面经
头像
幸运的小熊猫在努力存钱
发布于 昨天 09:36 北京
+ 关注

智元机器人嵌入式一二面面经

之前有人催着发智元嵌入式岗的面经,趁周末把一面二面一起复盘。我没上岸(二面挂),但题是真的、坑是真的。

智元不用多介绍,这两年人形机器人/具身智能里热度最高的几家之一。嵌入式岗位明显偏运动控制+底层驱动方向,所以面试重底层、重实时性,软件框架那种花架子问得反而少。

一面(电话技术面,约45分钟)

我按面试官问的顺序大致归了下类,方便看,实际过程是穿插着来的。

  1. 自我介绍
  2. static修饰局部变量和全局变量分别有什么影响?未初始化的全局变量和局部变量的初始值是什么?
  3. 函数调用的开销在哪里?什么场景该用内联函数?

硬件/底层一串

  1. 你MCU用的是什么芯片?主频多少?Flash多大?为什么主频会影响MCU性能?除了主频还有哪些因素影响MCU性能?
  2. 波特率是怎么定义的?为什么需要定义波特率?波特率拉太高会出什么问题?
  3. DMA的工作原理?双缓存区的好处?
  4. 为什么要内存对齐?没对齐会发生什么?跟数据总线位宽是什么关系?

硬件这一组连着问了快20分钟,是一面的主战场。其中第4题他追了好几层——主频之后问总线、问流水线、问cache,一路往下钻。

  1. HardFault_Handler算不算中断?中断和异常的区别是什么?中断和异常对CPU来说是同步还是异步?
  2. 中断为什么不能处理太多事情?
  3. FreeRTOS的调度机制讲一下?每个任务有自己的栈指针吗?
  4. FreeRTOS的堆是怎么管理的?heap_4有什么特点?调用malloc的时候底层具体做了什么?是链表还是别的结构?

一面节奏挺快,连珠炮式,答完一道立刻下一道,几乎不给你延展。我感觉一面是用来筛"底子稳不稳"的,深度还没到二面那种程度。

二面(视频面,约70分钟)

二面明显是个工作多年的工程师,问题不光问"是什么",还问"为什么这么做"和"你怎么选"。

  1. 自我介绍(这次只让说2分钟,开头浪费了10秒被打断重来,挺尴尬)
  2. 简历选一个最熟的项目深讲——为什么用这个方案、关键模块怎么设计的、遇到过最坑的bug是什么

我讲了基于STM32 + FreeRTOS的多电机驱动方案,这部分被深挖了快20分钟,每讲到一个模块他都会接一句"如果是xxx场景你怎么改"。

  1. CAN和CAN FD的区别?CANopen了解吗,PDO和SDO的差别?

CAN还行,CANopen答了个大概,PDO/SDO讲了但不够细。

  1. EtherCAT了解吗?为什么人形机器人多用EtherCAT而不是CAN?

我直接说"了解一些但没真上手过"。他没继续往细钻,给了简单引导(带宽、实时性、主从拓扑),算是放我一马。

  1. PID你写过吗?积分饱和怎么处理?

抗饱和我答了clamping和back-calculation两种,他追问哪种更适合快变场景。

  1. FOC算法的基本思想?Clarke变换和Park变换在做什么?

这是真让我现场推了一下Clarke变换的矩阵。我推到一半卡住,他没难为我,让我换思路讲Park变换的物理意义。

  1. 实时性:中断延迟的来源有哪些?怎么优化?

从中断响应延迟、屏蔽窗口、上下文保存、ISR本身长度几个角度讲,这道答得算稳。

  1. 优先级反转是什么?怎么解决?

经典题。优先级继承和优先级天花板都得讲清楚,FreeRTOS默认是哪种最好顺嘴提一下。

  1. mutex和semaphore的区别?什么场景用什么?
  2. 死锁的四个必要条件?工程实践里怎么避免?
  3. volatile真的能保证多线程安全吗?

陷阱题。volatile只防编译器优化,不防CPU乱序、不防缓存一致性问题,多线程同步必须配memory barrier或者锁。这道我之前刷面经专栏的时候反复看过,回答得比较顺,面试官点了下头。

  1. 你做项目时遇到过最难调的一个bug是什么?怎么排查的?

我讲了一个DMA和中断打架导致的数据错乱问题,从现象→假设→验证→定位讲了七八分钟,他听得比较认真

  1. 期望薪资?对加班的看法?
  2. 反问环节

前面提到volatile那题"刷面经专栏的时候反复看过",展开说一下。

我整个春招二面前的两周都在按一个面经专栏过题,《嵌入式软件工程师面试完全指南》,牛客上能搜到。

这次智元一面11道题里我数了下,至少7道在专栏里能直接找到对应章节——DMA、内存对齐、中断异常区别、FreeRTOS堆管理、函数调用开销那几题都在;二面里volatile、优先级反转、死锁四条件这种通用题也都覆盖了。

链接放这,自取:

https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

继续投。

后面要面机器人方向嵌入式的兄弟——CAN FD + CANopen + EtherCAT + FOC这四样务必上手做个小demo再去面,比我聪明

全部评论

(1) 回帖
加载中...
话题 回帖