面灵AI→

联芸科技嵌入式软件开发二面:项目深挖与存储固件方向

轮次
二面
时间
2026-09
来源
牛客网

《面试题目》

  1. 选一个你投入最多的项目,按需求、实现、联调、结果讲清楚,你个人交付物是什么?
  2. 如果项目再给你两个月迭代,你会优先动哪两块,预期收益是什么?
  3. 你怎么证明自己接触过嵌入式底层,而不是只调应用层 API?
  4. 为什么考虑存储主控 / 固件方向?

《参考解析》

项目讲述:先给指标,再划边界

面试官要的是可验证的结构。开头用一两句交代业务背景和目标指标(延迟、吞吐、稳定性分别是多少),再明确自己负责的模块边界,而不是把团队成果整体吞下来。实现部分点到关键设计就够:任务如何划分、缓冲队列多大、中断与主循环怎么分工、关键路径上用什么数据结构。联调部分讲清输入输出、和谁对接、用什么手段定位问题(日志、逻辑分析仪、示波器)。结果用可量化的说法:完成的功能点、性能提升幅度、缺陷收敛情况,避免只说「做完了」。最后把卡最久的点落到根因和改法上,比如竞态、DMA 对齐、优先级反转,而不是只抱怨环境或需求。

再给两个月:一块性能 + 一块工程化

先挑影响最大的瓶颈,在吞吐、稳定性和可维护性里选最痛的那个,别平铺五六条。性能侧可以谈减少拷贝、改环形缓冲、把重活挪出中断上下文;工程化侧可以谈补关键路径单测、统一错误码、加掉电与异常恢复。每块都要说清改动范围、风险点和验证方式(怎么压测、看哪些计数),否则「重构一下」是无效答案。收尾最好落到价值上:更稳、更容易定位问题、更接近产品固件的要求。

怎么证明自己做过底层

用寄存器级或驱动级的经历说话:时钟树、GPIO、UART/SPI 的配置链路,从复位向量到 main 的启动路径,外设初始化顺序。中断上下文要能讲约束:ISR 尽量短、共享变量加 volatile、临界区保护。再往深可以提链接脚本里的 section、栈水位、HardFault 定位、用 map 文件查符号。关键在于诚实区分「库封装好的」和「自己读手册调出来的」——面试官几乎一定会顺着追问细节,硬吹很容易翻车。

为什么选存储主控 / 固件

这题考的是动机是否真实。可以结合岗位职责回答:存储主控固件要处理 FTL 地址映射、坏块管理、ECC、磨损均衡和掉电保护,是 C 语言、驱动和异常路径处理密度都很高的方向,正好对上自己做过的底层工作;再补一句兴趣来源,比如做过掉电恢复或日志式写入,知道数据完整性有多难做。避免只讲「公司大」「方向热」这类对谁都能说的话。