DJI大疆【嵌入式软件工程师】技术面(凉经)

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.多个进程在获取不到锁的时候会进入什么状态?

A:阻塞。

16.假设一个低优先的进程A获取先到锁,高优先级的进程B获取不到锁,那高优先级进程B的进行也会阻塞吗?

A:还是会阻塞。

17.那如果还有一个任务C,优先级介于A和B之间,那么C任务会去抢占CPU资源吗?

A:会的.

18.那这样导致B等待资源的时候会越来越长,这样的问题有方法可以解决吗?因为B的优先级才最高。

A:先把A优先级提高,等A释放后再给B。

19.用什么方式提高A的优先级?

RTOS有函数可以提高。

20.那么A的优先级需要提高到多少?

面试过后才突然想起来,从问题15-20,其实面试官想考的是“优先级反转问题”。但是我当时回答的磕磕绊绊,甚至有一些错误。

21.linux你是在用户态开发还是内核态开发?

22.在用户态开发中程序跑飞,出现段错误等情况,你通过什么方式去定位?

23.运行态的错误怎么调试?

24.知道程序分成那几个段吗?

25.堆和栈有什么区别?

26.你有什么需要问我的吗?

很遗憾,这是一篇凉经,不过经过大疆的面试后我总结了很多经验,对后续的面试也有很大帮助。

全部评论
感觉这个有点偏嵌入式操作系统层面
1 回复 分享
发布于 2022-12-30 20:30 浙江
是本科生还是硕士啊
1 回复 分享
发布于 2023-01-15 11:04 江苏
大疆不是早就提前批结束了吗
点赞 回复 分享
发布于 2022-12-21 10:02 上海
有点男啊
点赞 回复 分享
发布于 2023-02-15 21:19 江苏

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳  yidao,试用期 6 个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
评论
12
126
分享
牛客网
牛客企业服务