万集科技嵌入式C++,面经
一面、二面(技术面)问题汇总
问题
1、 项目中socket通信的实现流程;
2、 多线程开发用过没?怎么实现的。
3、 各个线程的数据是怎么进行传输的,是用了什么信号进行传输的呢还是直接应用的全局变量。
4、 各个线程之间怎么能够实现线程的同步的,具体说说。
5、 你用的什么开发环境(QT),在这个环境下是如何实现的多线程
(我回答的是直接继承了QT提供的QThread类,重写run函数的内容,但是我觉得面试官更倾向于听到一些关于C++的多线程编程思路)
6、 Linux内核了解多少,linux启动之后会经历哪些过程。
(我有点不太会了,我回答的是内核态和用户态的一些区别,面试官提示了一下说,比如/boot下存放的内核文件,在启动时都起到了什么作用,怎么引导的)
7、 你编写的项目最后是怎么放到嵌入式设备上进行运行的。
(我跟面试官说我项目中利用的开发板是桌面版的,直接在开发板上进行开发,用到可能其他人负责的部分要移植的话直接生成的动态库、然后进行调用。)
8、 对交叉编译做过吗?
(我说交叉编译做过一些,一些深度学习算法在设备上需要用C++调用,在部署的时候编译过)
9、 对于嵌入式设备上的一些驱动了解吗,比如你的硬件设备是怎么读取的是自己写的驱动呢还是怎么用的?
(对于相机的话直接利用的OpenCV进行读取的,红外相机的话用的是V4L2了解过。还有其他的硬件设备是通过串口进行数据传输的,自己驱动写的不是很多,面试官说我可能更侧重与应用层开发)
10、 对于串口传输设置的停止位、波特率这些你知道是起什么作用吗?
(只会用,直接麻了)
反问
1、关于硬件设备的通信协议比如I2C、SPI等需要了解吗?(需要知道原理)
8.9hr面