大疆嵌入式一面
昨天刚刚经历了大疆嵌入式第一轮面试,面试官是个大佬,感觉很不错,但大疆面试问的很深,自己有些答得不是很好,记录分享一下
1.自我介绍
2.你项目中用了多线程与多进程,谈谈你的理解?3.线程,进程间通信方式?
4.有名管道与匿名管道区别?
5.说一下条件变量怎么实现?
6.信号量机制怎么实现的?该机制可以用于进程间通信吗?信号量机制中PV操作是原子操作吗?
7.nuttx中(项目)原子操作怎么实现?linux中原子操作怎么实现的?讲讲具体流程
8.linux中断流程,谈谈你对中断上下文的理解
9.来谈一下C++中多态
10.纯虚函数与虚函数有哪些区别
11.虚函数是怎么实现的?虚函数表存在哪个地方?
12.怎么访问类中私有变量,友元是单向的还是双向的?友元可以继承吗
13.你怎么理解引用与指针,为什么有了指针还需要引用?
14.C++新特性,你知道哪些?谈谈你对Lambda表达式的理解,谈谈你对智能指针理解,智能指针有什么缺点
15.C++编译过程以及编译后(可执行程序)内存分配,你了解其中bss段吗?
16.可执行程序的后缀是什么?它的内存开始地址是什么?空间范围是多少?
17.你所做的项目nuttx系统有没有虚拟内存的概念,linux中怎么把虚拟地址与物理地址对应,详细展开讲一讲(分页,分段及段页时,要说一下大概实现算法以及它们之间的区别)
18.你写过的代码你对它们优化过吗?用了哪些优化方法?(我回答了一个用移位优化乘除,然后面试官就问你浮点数运算怎么处理,我当时答了采用FPU,但这题确实把我问懵了)
19.你用过GDB调试吗?讲一讲常用命令。如果我编译报错,怎么定位错误位置,你知道gdb怎么进行多线程调试吗?
20.你知道回溯的概念吗?谈一谈栈回溯,采用gdb怎么调试?
21你有没有想问的
感觉大疆问的题目很深,很多涉及其底层运行原理,就比如虚拟内存实现方法中,面试官让我具体谈一下分页实现的流程以及算法,所以学习不能只浮于表面,个人感觉这次面的不是很好,如果运气好有二面的话,我会继续更新
#大疆面试##嵌入式##操作系统#