大疆一面 面筋
9.13面的,嵌入式开发岗,今天挂~不过也不丧气,双非本能有个面试也算是验证简历写法了。没挂的xdm加油,以下是我滴面筋:
自我介绍
- 讲你觉得比较有价值的项目或者说比较有趣的项目(基于v4l2驱动框架的摄像头驱动移植项目)
- 怎么显示出一帧图像(v4l2应用层框架开发流程)
- V4l2的设备节点是什么样的?
- (继续讲v4l2驱动框架,主要还是介绍我所了解的内核层面的逻辑)
- 用什么去显示摄像头画面的(QT写的)
- 为什么你讲你不擅长C++,又用了QT呢,有没有其他的方法可以显示出图像?
- 总结一下你在这个项目产出,就是开始是什么情况,到最后又是怎样的效果?
- 为什么要实现驱动模块?是什么目的?对你这个驱动的开发有帮助吗?
- (mark,这里个人觉得答得不太好,我有点紧张没有想到面试官背后想考察的东西,我回答了是老板要求这样做的,老板觉得有这个机制应该实现出来。后来我一想,感觉面试官是希望我从驱动模块1.内核镜像轻量化2.开发编译效率 这两个方向来回答,有点可惜当时没想到。)
- 讲一讲实现驱动模块的缘由是什么?
- (因为我实习公司的内核版本比较特殊,它v4l2驱动框架是不能以内核模块形式加载摄像头,后来我改了之后才行的,我讲了原来内核层面的流程,再讲了我修改后的流程。)
- 介绍一下你对这个ov5645的认识?
- 摄像头MIPI-CSI数据流是什么图像格式?
- 你应用层取到的图像数据是什么格式?最后显示的时候是什么格式?
- 你在调这个摄像头的时候,有遇到传输不正确的情况吗?或者说其他spi或者i2c接口时候,数据不正确的情况?
- (讲了另一个项目的调spi的例子)
- SPI的时序?
- (我讲了QPI的时钟极性/相位极性的配置,以及其内涵,口述了一下时序)
- 你喜欢底层还是应用层?为什么,你对两者的看法是什么?
- Linux中,设备和驱动是怎么找到对方的?
- 你觉得你对linux驱动掌握的怎么样?
- 现在要你来开发一个led,实现流水灯你会怎么做?
- (mark一下,这个我感觉当时光顾着体现“驱动实现机制,应用实现策略”的思想了,脑子抽了答了那种最low的字符设备驱动写法,字符设备框架部分没啥问题,但是在硬件的处理上答得不太好,我答的是控制led,用ioremap去映射寄存器地址然后操控gpio,或者像是之前比较老的内核,用平台的函数去控制gpio。我后来一想其实新的内核,就是为了解决平台代码、硬件信息过多地嵌入驱动的问题,从而来实现彻底的软硬件分离。更恰当很符合linux思想的做法应该是,在设备树描述gpio,然后驱动用of函数得到硬件信息,用pinctrl子系统的接口控制gpio,这样写出来的led驱动才真正做到了软硬件分离。面试官还问我,应该说是提醒,用ioremap有什么缺点??我当时确实是没想起来,可惜)
- 介绍下另外一个项目?
- 讲一下你在这个项目里做了些什么,有哪些产出?
- flash接口是什么?
- 可编程大小是指什么?
- 讲一下这个eepc软件框架是怎么构建的?
- 外部flash有多大?Cpu的flash有多大,ram有多大?
- flash的操作流程?
- 你构建的参数都维护在ram中,参数有400多k,你的ram有这么大吗?
- (这里再次mark一下,我当时也是有点呆了,一时间没反应过来,我还顺着思路想,对啊!怎么tm在外部flash占400多K,怎么维护到ram中的???后来面试结束我还深深自我怀疑,因为我做的时候一切都是尽量去弄清楚的,这一下反而给他问到了。然后半夜的时候突然想通了,不对啊,因为flash最小可编程是4k,所以一个参数占4k总的才会有400多k,但是我在ram中是用结构体来维护的,实际上一个参数远没有4k大小,平均下来一个参数所有信息也就占20多B,所以我的192KB的SRAM和cpu flash完全能够容纳的。这个也是没有答好的点。)
- 要不要再介绍一下你其他的项目?比赛什么的?或者你觉得比较有意思的?
- 讲一下你工作这些天有什么体会?或者学习上有什么收获?
- 对多线程有了解吗?线程和进程的区别?
- 有做过多线程的东西吗?多线程开发要注意什么?
- (这里也答得不太好,我说我做的不多,其实我在学校的课程有做过一个tcp服务器,多线程的,但是太久了一时忘记了。然后要注意什么,无非就是数据一致性还有资源保护,要做临界处理,当时是用的原子锁,其实就是一个二进制锁,我也是一时忘记这个叫什么名字了,我说了“原子变量”哈哈给)
- 有做过一些应用层的东西吗?
- (这个也答得一般,我讲了之前做过的web服务器和手机tcp连接控制开发板的东西,很久之前在学校做的小项目,其实项目效果和技术含量还是有一些的,只是太久了没答好)
- 反问:
- 怎么快速地去学习一个比较复杂的东西?
- 面试官回答:多实践
结束。
感慨:能进大疆的确实很强,我感觉自己大学四年也没有很荒废,但是捏还是一面都没过,还是要继续加油,继续学习。
#大疆 #嵌入式软件