大疆一面 面筋

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连接控制开发板的东西,很久之前在学校做的小项目,其实项目效果和技术含量还是有一些的,只是太久了没答好)
  • 反问:
  • 怎么快速地去学习一个比较复杂的东西?
  • 面试官回答:多实践

结束。

感慨:能进大疆的确实很强,我感觉自己大学四年也没有很荒废,但是捏还是一面都没过,还是要继续加油,继续学习。

#大疆 #嵌入式软件

全部评论
太强了佬
点赞 回复 分享
发布于 昨天 18:20 湖南

相关推荐

7 5 评论
分享
牛客网
牛客企业服务