目录
Linux 中断流程,谈谈你对中断上下文的理解
Linux schedule() 函数的原理和调用的时机
页表实现机制,分页的缺点?
介绍操作系统的多级反馈调度策略,时间片轮转,在项目中如何指定优先级来调度进程完成快速响应(nice 命令)
聊内存分配,进程内存分配,段页式存储,缺页中断,进程间通信的方式,为什么分用户空间和内核空间
详细说下进程间共享内存的分配,在哪个空间,读写速度怎么样,通信是否需要经过内核
实时操作系统的调度器设计细节?包括调度算法设计和上下文保存中的细节
一个操作系统中哪些地方会调用调度器?
一个信号量释放之后,在调度下一个线程的时候是如何选择的?
如何去评估一个操作系统的实时性是否满足要求?如何去测算中断响应时间?
MCU 上如何设计用户态和内核态?如何保障操作系统的安全性?
如果让你去开辟一个新的产品,你会想做什么?
平时做驱动外设的时候,有没有遇到过一些棘手的问题?如何解决的?
C++多态怎么理解?C++有哪些多态的典型例子?
C++了解吗?C++11 新特性用的多吗
C 语言字节对齐的规则,为什么要字节对齐?
C 语言程序运行时的内存分配
const 关键字的用法
copy_from_user 实现的原理?如果需要从内核中传递大量数据怎么办?
extern C 有什么用?为什么要和编译器声明 C 语言环境?C 语言环境和 C++有什么不同?
delete []和 delete 的区别?
C++为什么有指针还要引用?
线程切换是怎么设计的?
信号量、互斥量底层是怎么设计的?
内存管理是如何设计的?
中断管理是如何设计的?
你自己设计的 OS 相比于别人的,有哪些创新之处?
线程同步用过什么?
互斥锁注意过高低优先级翻转吗
自旋锁和互斥锁的区别,在中断中使用自旋锁要怎么避免死锁
U-cos 系统滴答时钟设置频率
多任务运行同步机制
能简单说一些你用过的 STM32 的一些芯片的配置吗?CPU 主频,Flash 和 RAM 分别都是多大的?
你在 STM32 上都做过哪些开发?
你开发过哪些驱动吗?
你了解整个 SPI 的通信过程吗?SPI 有几根线,分别是什么?你使用 SPI 的时候速率配置的是多少?
有使用过 DMA 吗?解释一下什么是 DMA?
SPI 有 4 种模式你知道是那 4 种模式吗?
你用过 GDB 调试吗?讲一讲常用命令。如果我编译报错,怎么定位错误位置,你知道 gdb 怎么进行多线程调试吗?
你知道回溯的概念吗?谈一谈栈回溯,采用 gdb 怎么调试?
在用户态开发中程序跑飞,出现段错误等情况,你通过什么方式去定位?
运行态的错误怎么调试?
对于一个无人机产品,基于目前市面上已有的产品,你还有什么新的设计想法?
如果要设计一个操作系统实现多线程,你会需要几个模块?
用过大疆哪些产品?RoboMaster S1
互斥量和信号量区别
项目中碰到的困难,怎么解决的。
无人机的未来(大疆产品优缺点)
对于临界区数据的处理,使用互斥锁和自己通过条件来判断,哪样更好,为什么?
上下文切换的时候系统做了些什么?
中断是如何产生的,具体的工作原理知不知道?
MMU 是什么东西?MMU 是如何实现虚拟内存和实际物理内存的切换的?
未初始化的全局变量放在什么地方?bss 段省的空间是什么空间?
说说 u-boot 启动流程。为什么 bootloader 要分两个阶段?
bootloader 第一个阶段为什么要足够的小?
对总线协议有哪些了解?I2C 和 SPI
I2C 的读写数据的步骤
虚拟地址如何转换成物理地址?MMU?
操作系统如何判断想要访问的物理地址是合法的还是非法的?
需要将所有的合法地址标记为合法的吗?
页表是如何初始化?
一个 ELF 文件加载到内存后,各个段的分布?
堆区和栈区之间还有什么区?
mmap 匿名页的映射?
mmap 返回的虚拟地址如何和具体文件关联起来?
gdb 使用过吗?
阅读过汇编代码吗?
c 语言函数的入参在汇编语言中是如何导入函数主体的?
用到的 STM32 芯片硬件有了解过吗?
STM32 中断控制器是什么?
对嵌入式开发有哪些了解?做了哪些准备?
FreeRTOS 的内存管理怎么实现的?
线程之间的通信方式?
FreeRTOS 任务抢占的机制
FreeRTOS 内存分配
未初始化的变量的初值是怎么样的?