1.自我介绍
2.linux中的线程一般是怎么调度的?
3.如果现在是一个单核的CPU,那么多个线程是按什么顺序去运行的?也就是线程的系统调度?
4.如果现在多个线程,怎么确定哪一个会先被执行?
5.能简单说一些你用过的stm32的一些芯片的配置吗?CPU主频,flash和RAM分别都是多大的?
6.你在stm32上都做过哪些开发?
7.你开发过哪些驱动吗?
8.你了解整个SPI的通信过程吗?SPI有几根线,分别是什么?你使用SPI的时候速率配置的是多少?
9.有使用过DMA吗?解释一下什么是DMA?
10.SPI有4种模式你知道是那4种模式吗?
11.你在开发调试过程中有遇到过哪些难以解决的问题可以分享一下吗?
12.你有做过一些比较大型的软件开发吗?就是一些比较大的功能需要做一些设计、分层的东西。
13.中间层的设计你考虑了哪些因素?
14.进程通信有使用过一些锁和同步的东西吗?
15.多个进程在获取不到锁的时候会进入什么状态?
16.假设一个低优先的进程A获取先到锁,高优先级的进程B获取不到锁,那高优先级进程B的进行也会阻塞吗?
17.那如果还有一个任务C,优先级介于A和B之间,那么C任务会去抢占CPU资源吗?
18.那这样导致B等待资源的时候会越来越长,这样的问题有方法可以解决吗?因为B的优先级才最高。
19.用什么方式提高A的优先级?
20.那么A的优先级需要提高到多少?
21.linux你是在用户态开发还是内核态开发?
22.在用户态开发中程序跑飞,出现段错误等情况,你通过什么方式去定位?
23.运行态的错误怎么调试?
24.知道程序分成那几个段吗?
25.堆和栈有什么区别?
26.你有什么需要问我的吗?
对于上述问题很多基础问题,所以基础必须打牢靠,所有问题已经整理到我的面经合计中,链接放在下方