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.你有什么需要问我的吗?对于上述问题很多基础问题,所以基础必须打牢靠,所有问题已经整理到我的面经合计中,链接放在下方https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM