面灵AI→

联芸科技嵌入式主管面:栈溢出怎么查、任务赶不上工期怎么办

轮次
主管面
时间
2026-10
来源
牛客网

《面试题目》

  1. 介绍一下项目内容。
  2. 项目中的难点是什么?
  3. 实习中遇到过什么问题,如何解决的?
  4. 出现 bug 如何排查?
  5. 内存泄漏怎么发现和处理?
  6. 如何检查是否栈溢出?
  7. 任务在规定时间不能完成怎么办?
  8. 未来工作规划是什么?
  9. 反问。

《参考解析》

出现 bug 怎么排查,给一套能落地的顺序:先稳定复现(记录条件、频率、版本),再缩小范围(二分版本、注释模块、对比新旧硬件),然后取证(日志、GPIO 翻转测时序、示波器/逻辑分析仪、HardFault 寄存器与栈回溯),定位到根因后做最小修复,最后补回归用例并观察长稳。嵌入式尤其强调「先判断是软件还是电气问题」。

栈溢出怎么检查:编译期看 -fstack-usage 生成的栈用量、链接脚本里给栈留足空间;运行期用栈哨兵(填充魔数,周期性检查尾部是否被改写)、MPU 把栈底设为不可访问触发异常、以及在 FreeRTOS 里用 uxTaskGetStackHighWaterMark 看水位。溢出后的现象通常是 HardFault 或莫名重启,要能对上。

内存泄漏:先确认是否真的泄漏(长期运行看 heap 使用曲线是否单调上升),再用工具(Valgrind、ASan 的 leak 检测、自己封装的 malloc 计数)定位分配点;无 OS 的环境可以给每类对象建池并统计占用。修复后要做长稳验证。

任务赶不上工期这题考的是工程判断。答法:先拆优先级(哪些是发布必须、哪些可以延后),再评估风险(延期影响谁、有没有降级方案),然后同步(提前告知、给新的时间点与依据),最后复盘估算方法。避免两种极端:硬扛到最后一刻、或者一遇到问题就砍需求。

未来工作规划:给 1-3 年的具体方向(把驱动与 RTOS 打扎实、往系统联调与性能优化走、能独立负责一个模块的交付),并说明和这家公司的业务怎么对上。