大疆嵌入式面试题汇总(一二面为主)
一面
- const 关键字的用法
- delete[] 和 delete 的区别
- C 语言程序运行时的内存分配
- 未初始化的全局变量放在哪里?BSS 段省的是什么空间?
- 堆区和栈区之间还有什么区?
- 用过 GDB 吗?常用命令?
- 简单说一下用过的 STM32(主频、Flash、RAM)
- STM32 中断控制器是什么?
- 你在 STM32 上做过哪些开发?
- 你开发过哪些驱动?
- SPI 有几根线?通信过程?
- 多任务运行同步机制
- Ucos 滴答时钟设置频率
- 互斥量和信号量区别
- 线程同步用过什么?
- 自旋锁和互斥锁区别
- 进程和线程的区别
- 进程间通信方式
- 临界区数据处理:互斥锁 vs 条件判断
- 上下文切换时系统做了什么?
- 中断如何产生?基本原理
- 中断管理如何设计?
- 线程切换是怎么设计的?
- 信号量、互斥量底层是怎么设计的?
- 多级反馈队列调度 + 时间片轮转
- nice 命令如何影响调度?
- 说说 U-Boot 启动流程
- 为什么 Bootloader 分两个阶段?
- 第一阶段为什么必须足够小?
- 程序从写完到运行经历什么阶段?
- 总线协议了解哪些?I2C 和 SPI
- 项目中遇到的困难,怎么解决?
- 做驱动遇到过哪些棘手问题?
- 用过大疆哪些产品?RoboMaster S1
- 对嵌入式开发了解多少?做过哪些准备?
- 无人机的未来?大疆优缺点?
- 如果做一个新产品,你会做什么?
二面
- Linux 中断流程 + 中断上下文
- Linux schedule() 原理与调用时机
- 操作系统哪些地方会调用调度器?
- 信号量释放后如何选择下一个线程?
- 互斥锁的优先级翻转问题
- 页表实现机制
- 分页的缺点
- MMU 是什么?
- 虚拟地址如何转换为物理地址?
- 页表如何初始化?
- 操作系统如何判断物理地址是否合法?
- 是否需要标记所有合法地址?
- 段页式存储
- 缺页中断
- 进程内存分配
- 共享内存分配在哪个空间?是否经过内核?
- mmap 匿名页映射
- mmap 如何关联文件?
- ELF 文件加载后的段分布
- copy_from_user 原理
- 大量数据内核传递如何优化?
- 为什么要区分用户空间和内核空间?
- 实时操作系统调度器设计细节
- 上下文保存的具体细节
- 如何评估系统实时性?
- 如何测算中断响应时间?
- MCU 如何设计用户态和内核态?
- 内存管理如何设计?
- 中断管理如何设计?
- 如果设计一个支持多线程的 OS,需要哪些模块?
- 你设计的 OS 有哪些创新?
其他高频问题可以看下边指南
嵌入式软件工程师面试完全指南
面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,3300+订阅,非常适合在找工作面经薄弱的同学,销量即是口碑,提前订阅提前享受,持续更新中。
原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

查看16道真题和解析