校招 未知部门 / 硬件工程师 / 一面/二面
[面试日期] 2026-06-29 [面试时长] 未知
[学校背景] 未知 | 未知 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>小米嵌入式面经,两面都过了,记一下</h2>
<p>之前看牛客上小米嵌入式的面经不多,我来补一个。投的嵌入式软件岗,base 武汉。整体两面,一面抠基础和项目,二面偏底层和工程细节,氛围都挺随和,但该追的细节一个没放过。按被问的顺序记下来,给后面要面的兄弟参考。</p><h3><strong>一面 技术面 约 50min</strong></h3><p>面试官应该是组里开发,人很有耐心,全程对着简历问,中间穿插基础题,最后手撕。</p><p>先自我介绍,然后问在校情况——排名、学过哪些语言、做过什么。我说主要 C/C++。</p><p>接着是一串基础:</p><ol><li>volatile 有什么用?什么场景必须加?</li><li>讲一下内存对齐,为什么要对齐,不对齐会怎样?</li><li>int 占几个字节?指针多大?</li><li>sizeof 一个数组和一个指针,结果分别是什么?</li><li>栈和堆的区别?</li><li>内联函数的优点是什么,缺点又是什么?</li><li>两个井号(##)在宏里是什么作用?</li></ol><p>基础过完开始挖项目。我简历上写了个信号处理的项目,里面用到 FFT 和 DTW,面试官就顺着问:FFT 在你这干嘛用的、DTW 解决什么问题、具体怎么实现的。</p><p>手撕是一道链表题,实现链表平移。思路不难,我看一眼就说出来了,投屏写代码。写得挺快但紧张老打错字,改了几遍。</p><h3><strong>二面 技术面 约 1h</strong></h3><p>二面明显更资深,问得比一面深,往多线程、驱动、工程细节那块挖。</p><p>还是先讲项目,但追得很细,揪着一个我提过的"偶发性问题"问怎么定位的、最后怎么解决的。然后是知识点:</p><ol><li>Linux 多线程里,一个线程在访问某个外设驱动时,怎么防止其他线程同时访问?(互斥锁,顺着追了临界区保护)</li><li>进程和线程的区别?从内核角度看到底差在哪?</li><li>用 DMA 做串口通信时,怎么解析数据才能提高吞吐量?</li><li>内联函数的缺点是什么?(代码膨胀那块)</li><li>做过 I2C 从机设备开发吗?异步 I2C 接触过吗?</li><li>设备树了解吗?是干嘛用的?</li><li>Linux 下查找一个字符串用什么命令?(grep)</li><li>看门狗了解吗?多线程情况下怎么喂狗才安全?</li></ol><p>二面没有手撕,主要是顺着项目和这些点聊工程上的取舍。最后反问环节聊了聊团队和业务方向。</p><p>我整个秋招都在跟着牛客上那个《嵌入式软件工程师面试完全指南》过题。今天小米这两场,不少题在里面能直接对上——volatile、内存对齐、栈和堆、进程线程区别、内联函数优缺点、DMA、看门狗这些,专栏里都有专门的章节,而且是按"面试官会怎么往下追、坑在哪"写的,不是干背结论那种。</p><p>像二面的"多线程怎么防止并发访问外设""多线程喂狗",这种偏工程的追问,专栏里也有讲到思路,我答的时候心里有底就是因为提前看过。</p><p>倒不是说看完就能过,项目那块还得靠自己吃透。但通用底层和八股这一层,跟着它过一遍确实省事,至少不会被基础题问倒。</p><p>32 篇 12w 字,C / 操作系统 / RTOS / Linux 驱动 / 通信协议 / 硬件基础都覆盖,需要系统过一遍的可以看看:</p><p><a href="https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fwww.nowcoder.com%2Fcreation%2Fmanager%2FcolumnDetail%2FMJNwoM">https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM</a></p><p>两面都过了,等后续流程。后面要面小米嵌入式的兄弟,重点就两条:<strong>把简历每个技术点和参数都吃透,基础别背要真懂。</strong> 祝上岸。</p>
AI 推荐面试题
