大疆|嵌入式软件开发|一面面经

大疆嵌入式软件开发岗位,一面通常不会只问「会不会用 STM32」,而是围绕全链路交付能力展开:从 Boot、驱动、RTOS/Linux,到性能、功耗、可靠性,再到你如何把一块板子做成可量产、可维护的产品。

根据近年投递反馈与岗位 JD(芯片底层到智能系统、异构平台、软硬协同),一面常见节奏是:

  • 30% 项目经历与难点复盘(能不能讲清你负责什么、怎么验证)
  • 30% 基础与架构(ARM、总线、OS 选型、中断与内存)
  • 25% 编码或伪代码(C/C++、并发、协议解析)
  • 15% 调试与工程素养(示波器/逻辑分析仪、日志、版本管理、协作)

面试题目:

  1. 选一个你参与度最高的固件模块:它的输入/输出接口是什么?如果重来一次,你会改架构里的哪一处?
  2. 产品要求 MCU 在 500ms 内进入可通信状态,你会从 Bootloader、时钟树、外设初始化、任务启动哪几段分别估时间?
  3. 说明 Cortex-M 异常向量表 与中断服务函数的关系;若中断里调用了不可重入的 printf,可能引发什么问题?
  4. DMA 循环模式 接收 UART 不定长帧时,如何用 IDLE 线检测或定时器判定一帧结束?半帧丢失如何发现?
  5. 在 FreeRTOS 里,软件定时器回调 与 普通任务 在执行上下文上有何区别?为什么回调里不宜做耗时操作?
  6. 两个任务通过 共享全局结构体 交换传感器数据,最少需要哪些同步手段?只关中断是否总是够用?
  7. 用 C 实现 无锁单生产者单消费者队列(仅说明思路亦可):头尾指针、内存序、溢出时策略分别是什么?
  8. I2C 设备 NACK 时,驱动层应重试、上报还是复位总线?结合上拉、时钟频率说明你的判断依据。
  9. 一块板子 USB 枚举偶尔失败,你会按什么顺序排查(供电、D+/D-、时钟、描述符、任务初始化顺序)?
  10. 片内 Flash 写参数 时断电可能导致什么后果?你会如何用「备份区 + 顺序号」或类似机制保证数据有效?
  11. 系统 运行数小时后偶发复位,你会如何区分看门狗、HardFault、电源跌落、栈溢出?各保留哪些日志或寄存器信息?
  12. 要把 10ms 控制环 和 LVGL 刷新 放在同一颗 MCU 上,任务优先级、中断抢占、CPU 占用率你会怎么规划?
  13. 解释 「内存对齐」 对结构体大小与 DMA 传输的影响;举一个因对齐不当导致读错数据的例子。
  14. 若模块需对接 上位机自定义二进制协议,帧格式(帧头、长度、校验、序号)你会怎么设计以兼顾可靠性与实现成本?
  15. 未来三年,你更想深耕 底层驱动 / RTOS 平台 / 感知与算法部署 哪一条?结合你现有项目说明理由

更多嵌入式大厂面试经验和题目以及基础八股文资料都放在专栏了:

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

(oppo,vivo,海康威视,小米等大厂面经)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务