摘要

本文收集、梳理了大疆嵌入式软件面试的一系列问题,每个问题都值得我们深思、学习,我会逐个对问题进行分析、回答,当然答案肯定开放的,不会有一个标准的正确答案。
问题基本上来自于CSDN、知乎、小红书等各个平台,先谢过各位大佬们的热心分享。其中有的问题可能也不一定是来自于大疆,而是来自于相似的超级大厂,反正都是我们嵌入式软件工程师非常值得思考的一些问题,这些问题可能看上去简单,就这么简单一句话,但真要回答,要全面的考虑问题场景,可能需要非常多的知识点去做支撑。
个人知识有限,题解可能有误、有缺陷,小弟抛砖引玉一下,希望各位大佬能各抒高见。
蓝色链接为个人对各个问题的见解,仅供参考。

问题清单

驱动或硬件类别

  1. 设计CAN总线驱动时,如何处理总线冲突和数据丢包?
    如何应对CAN总线冲突和数据丢包
  2. STM32中DMA设置的目的地址和源地址的数据宽度不一致,会发生什么现象?
    DMA与外设数据宽度不一致的问题现象及本质
  3. 中断管理的设计逻辑是怎样的?
  4. 在MCU上如何实现用户态与内核态隔离?如何保障系统安全?
  5. 驱动开发中遇到过哪些棘手问题?如何解决的?
  6. 如何使用示波器排查串口通信异常问题
  7. 设计SPI驱动时,如何处理数据传输的稳定性问题
  8. 如何通过原理图定位IIC异常原因
  9. 对“软硬件协同设计”的理解是什么,如何平衡性能和成本
  10. 通过驱动开发解决硬件兼容性问题
  11. 嵌入式系统,想要做低功耗设计,可以从哪些方面考虑?
    嵌入式系统 低功耗设计
  12. 如何评估一个嵌入式模块的功耗水平,会从哪些模块开始优化?
  13. C语言实现串口解析协议,核心逻辑是什么?
  14. 中间件开发,简化应用层调用
  15. 请以你熟悉的芯片型号,讲述从上电启动到运行用户程序的具体过程
  16. 嵌入式系统设计时,如何选择存储介质,FLASH SD卡
  17. 无刷电机控制原理,嵌入式软件在其中的作用
  18. 用嵌入式平台开发低功耗蓝牙时,如何优化连接稳定性
  19. 一次从芯片手册,到解决问题的经历
  20. 设计以太网驱动时,如何处理网络延迟和数据包重传问题
  21. 使用逻辑分析仪分析SPI时,会重点关注哪些参数
  22. 如何优化系统启动的时间,关键步骤是什么?
  23. 设计嵌入式系统电源模块时,如何实现低功耗模式的切换
  24. 熟悉那种存储管理方法,在嵌入式系统中如何应用
  25. 如何判断主频能带动多少电机
  26. 摄像头驱动底层,如何检测驱动错误
  27. 如果打印日志,如何根据日志排查12C驱动
  28. 12C驱动的时序
  29. Camera HAL的了解,camx框架的工作流,ISP简单介绍
  30. 做过哪些 Linux 驱动,遇到过什么问题?项目这些都是自己做的吗?简单说一下难点
  31. cortexM3 M4处理任务的区别
  32. 两个同一型号的芯片,想要挂载到同一个IIC总线上,如何操作?
  33. IIC为何是开漏输出
  34. 为什么要做Device BUS Driver这样的驱动模型?这三个分别代表什么
  35. 优化嵌入式系统性能的经历,功耗或速度

编程基础类别

  1. 野指针如何出现的,怎么解决?
    C野指针的概念与应对(源头、阻隔、定位)
  2. 嵌入式代码开发中,如何保证代码编写规范,有哪些工具?
  3. 讲讲多人合作开发一个项目时的工作流?如何解决多人之间软件版本冲突的?
    GitFlow Workflow 工作流理论模型
  4. 如何管理代码的版本迭代和代码分支问题?
    GitFlow Workflow 工作流理论模型
  5. 为什么需要头文件,设计头文件时需要注意什么?
    头文件_架构师必经之路
  6. 头文件分尖括号和双引号,应该如何写引入的顺序 ?
  7. 就是要先写双引号再写尖括号,为什么 ?
  8. float可以移位吗 ?就是要float移位怎么办 ?
  9. new和malloc 区别?
  10. 编译器优化做了什么,O2 和 O3 的区别?
  11. 手撕代码:手撕螺旋矩阵 给一个整数N ,螺旋打印1 - N*N
  12. 虚函数了解吗?
  13. 函数return的值是怎么return的?
  14. 堆栈的区别?
  15. C语言中static的作用,是如何把变量/函数限制在当前文件的?
  16. C和C++混编的时候,需要使用extern来声明,为什么?
  17. C和C++编译时,有哪些不一样的地方?

操作系统类别

  1. RTOS设计优先级时,原则有哪些?
    嵌入式系统中线程优先级的设计框架
  2. 线程切换的具体设计是怎样的?
  3. 讲一种你熟悉的RTOS,是如何选择最高优先级任务的?
  4. 信号量和互斥锁的底层实现机制是什么?
  5. 内存管理的设计思路如何实现?
  6. 实时操作系统的调度器如何设计?包括调度算法和上下文保存/恢复的具体实现
  7. 操作系统中有哪些场景会触发调度器调用?
  8. 释放信号量后,系统如何选择下一个调度的线程?
  9. 如何评估操作系统的实时性?中断响应时间如何测量?
  10. 在MCU上如何实现用户态与内核态隔离?如何保障系统安全?
  11. 释放信号量后,系统如何选择下一个调度的线程?
  12. 如何评估操作系统的实时性?中断响应时间如何测量?
  13. Linux和RTOS内核有何差异性,分别适用于哪些场景?
  14. 熟悉Linux内核的中断管理机制,如何避免中断嵌套导致的问题?
  15. 嵌入式系统中,如何设计日志系统,方便排查问题
  16. 对“异构系统平台”例如Linux+RTOS的资源调度有什么设计经验?
  17. 如何调试RTOS中的锁死问题,简述排查步骤
  18. 裸机和RTOS,如何挑选,包括Linux驱动
  19. RTOS如何保证实时性
  20. FreeRTOS源码如何实现任务调度
  21. FreeRTOS如何实现任务切换
  22. 进程间、线程间通讯,管道的优势
  23. 同进程多线程,可以socket通讯吗?
  24. Uboot 启动的流程/Linux启动流程,协同说一下这两个
  25. 页表实现机制,分页的缺点?三层页表的原理,页表的意义
  26. 操作系统调度过程深挖,内核组成
  27. cacheline填充减少伪共享?
  28. linux 内核的一些了解,主要是进程调度还有VFS
  29. Linux 下: VSS RSS PSS 的区别?
  30. FreeRTOS 任务调度的底层实现了解吗?
  31. STM32 单片机项目,为什么要使用消息队列,可以用其他方式代替吗?
  32. 多线程之间要传输大量的数据,如何实现?
  33. freerots底层任务是怎么调度的?
  34. 怎么选优先级最高的任务?
  35. 为什么操作系统要分为内核态和用户态?
  36. 死锁的必要条件?互斥条件、请求和保持条件、不剥夺条件、环路等待条件
  37. tasklet 和 workqueue 的底层区别 ?
  38. linux下有哪几类的设备驱动,这些设备驱动主要有哪些差异?实现上有什么区别?
  39. 用户空间的应用程序不能直接访问硬件资源吗?如果真的要访问有没有什么办法?
  40. 有几种方法从用户态进入内核态?
  41. RTOS任务切换在汇编层面做了什么?
  42. RTOS的内核调度的开销/实时指标有吗?展开说说

可靠性设计

  1. 嵌入式系统的高安全性设计有什么思路,例如攻击防御、数据加密等
  2. 讲讲你熟悉的AES加密
  3. 如何处理嵌入式系统在高温下的稳定性问题?
  4. 嵌入式系统的高可靠性设计有什么实践?例如看门狗 容错机制
    嵌入式三大线程之 守护线程的设计框架
  5. 如何平衡嵌入式系统中功能复杂性和代码可维护性?
  6. 嵌入式系统"安全OS",如何防止固件被破解?
  7. 解决系统偶发性崩溃的经历,及如何解决?

AI算法类别

  1. 如何将AI算法部署到嵌入式平台中,并进行性能优化?
  2. 熟悉AI推理框架,例如tensorflow lite ,在嵌入式部署的难点
  3. 传感器数据融合算法
  4. 仿射变换原理,简单说一下

其他类别

  1. 入职5年后你希望成为怎样的技术人才?有何规划?
  2. 假设工作第3年时,你需带领应届生团队开发新项目,会如何安排?
  3. 比赛中,队员提出激进方案(可能夺冠或失败)时,作为队长如何抉择?
  4. 是否有日常运动习惯?坚持运动的原因是什么?
  5. 作为教练如何选人分工?你个人打什么位置及原因?
  6. 你是否有问题需要提问?
  7. 嵌入式工程师最重要的“底层思维”是什么?举例
  8. 对“多通道多发展路线”的工程师文化有什么期待,如何规划自己的技术成长?
  9. 如何向非技术人员,讲解“驱动开发”对产品体验的影响
  10. 加入公司后,最想深耕的技术方向是什么?
  11. 碰到的最难的问题 ?
  12. 如何分配自己的精力和优先级?
  13. 心目中理想的工作是什么样子的?
  14. 你觉得是先有技术,还是现有产品的想象然后再用技术去实现?
  15. 有没有遇到过压力特别大的项目?举例子说明
  16. 你觉得某个设备的哪个指标对用户体验来说,是非常重要的?
  17. 最具有挑战性的事情?
  18. 你做的这个项目,做的事情和业界对标存在什么不足?
  19. 未来3-5年的一个规划是什么?
  20. 对加班怎么看?
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐