|
大家好,我是Vincent。直接进主题。一面
1.自我介绍
2.linux驱动分配内存用什么函数?
( 八股,秒了)
3.驱动中有没有用到DMA?DMA你是怎么分配的?
(dma_alloc_coreherent,不带cache,但我猜他可能想了解更多的,不想挖坑,就没说太多)
4.如果dma内存带Cache,怎么处理一致性问题?
(随口爆了个刷Cache,后面意识到坑来了,只能硬抗了)
5.Cache是怎么知道,现在的数据脏了,需要刷Cache了?
(Cacheline有个标记位吧,MESI协议貌似也行,有点乱,全说了)
6.BSP适配,主要做哪些工作?
(底层内功知识问的差不多了,开始了解下之前的工作,秒了)
7.驱动是自己写的,还是有继承的?
(os:肯定是有继承的,哪那么多从零的驱动给你写。但我也说了我写过从零开始的,即便是有继承,我也都能看懂,因为我是owner,都能cover住)
8.说下遇到过你认为比较难的问题?怎么解决的?
(准备了一个概率性问题,涉及到死锁。深度感觉一般,但我还有其他中高难度问题,这块还需要斟酌一下,以后准备个眼前一亮的)
9.职业发展?或者对技术方向有什么想法?
(os:其实都差不多吧,打工而已。我一般看公司来说,手机厂我就说想做安卓/手机产品,工业相关我就说工业,原厂就说想深入底层,反正就舔吧)
10.经典反问
二面
1.自我介绍
2.说下UART子系统?
(准备的资料有,说过很多次了,秒了)
3.uboot的启动流程?
(八股,秒了)
4.说下SPI子系统?
(秒了)
5.说下双系统是怎么做的?双系统启动流程?
(一个核跑RTOS,一个核跑Linux,通常RTOS先起,后起LInux。。巴拉一堆)
6.双系统之间怎么通信?
(核间中断 + 共享内存,向另外一个核打一个核间中断过去,然后从共享内存读数据)
7.有用过异构通信的一些框架吗?
(我猜他想问的是remoteproc、rpmsg框架这些,项目实际上没用,他想了解,我就把我知道的说了)
8.遇到过的比较难的问题?
(同一面,复刻一遍)
9.离职原因?
(这种问题,我一般都回答不可抗力:家庭原因)
10.经典反问
end
往期推荐
直到我干了底层开发,才知道不写业务代码有多爽
你解决bug的能力,暴露了你的水平
入职Linux驱动工程师后,我才知道的真相......
很底层的性能优化:让CPU更快地执行你的代码
薪资倒挂,大家都沉默了...
机遇:我是如何走向Linux驱动的...
当我用几道题考了一遍做Linux驱动的同事...... |
|