大疆嵌入式面经
先介绍一下自己吧,重点讲讲嵌入式相关的背景和项目经历。
聊聊 Linux 的线程调度?
单核 CPU 的话,多线程是怎么轮流跑的?
好几个线程在,怎么决定谁先跑?
用过的 STM32 芯片,配置都怎么样?比如主频、Flash 和 RAM 大小。
在 STM32 上都做过些什么?
写过哪些驱动吗?
SPI 通信过程熟吗?有几条线?都叫啥?你用的时候速率设的多少?
用过 DMA 吗?给讲讲是啥?
SPI 的四种模式,知道吗?
开发调试时,碰到过什么棘手的问题吗?分享一下?
做过什么大点的软件项目吗?就是那种需要做分层设计的。
设计中间层的时候,都考虑了啥?
进程间通信用过锁或者同步吗?
进程拿不到锁,会怎么样?
假如低优先级的进程 A 拿了锁,高优先级的进程 B 是不是就得等着?
那再来个优先级在 A 和 B 中间的任务 C,它会抢 CPU 吗?
这样 B 不就得等好久了吗?明明它优先级最高,这问题有办法解决吗?
怎么给 A 提优先级?
A 的优先级要提到多高?
Linux 开发,你主要在用户态还是内核态?
用户态程序崩了,比如段错误,你怎么定位问题?
运行中的错误要怎么调?
程序内存上分哪几个段?
堆和栈有啥区别?