vivo嵌入式暑期实习面经:题不算多,但问得很实

这场更像典型的嵌入式实习筛选节奏。时间不算长,但问法很实,不太给你空转概念的空间。项目要能往下挖,Linux 基础要能接得住,真碰到问题时你怎么定位,面试官也会顺手看一眼。

一开始不会显得特别凶,可一旦你简历里写了 Linux、驱动、并发、调试、RTOS 这些词,问题就会很快落到细节上。印象比较深的是下面这 10 个。

面试题目

  1. 从用户态发起一次系统调用,到内核处理完再返回,这条路径里发生了什么
  2. 匿名页和文件页在内存回收时为什么不会走完全一样的策略
  3. fork 之后父子进程看到的地址空间为什么看起来一样,但又不是真的完全一样
  4. selectpollepoll 放到高并发场景里,真正拉开差距的点到底在哪
  5. 负载很高但 CPU 使用率并不夸张,这种情况通常先怀疑哪几类问题
  6. 中断上半部为什么不能什么都做,真正重活一般为什么要往后挪
  7. 同样是保护共享资源,什么时候该用互斥锁,什么时候更适合自旋锁
  8. ARM 平台下用了 DMA 以后,为什么有时数据还是会乱,问题常常出在哪
  9. 设备树已经配了,驱动也写了,但设备就是起不来,排查顺序应该怎么排
  10. 现场偶发死机、日志还不完整时,第一轮定位最该补什么信息

嵌入式大厂面试题,基础八股文资料合集整理:

https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

(包含各个大厂秋招春招面经,以及基础八股文资料总结)

这种面试到底在看什么

很多同学会误以为,嵌入式实习就是背八股谁背得多谁赢。真到面试里不是这么回事。尤其是手机厂、终端厂这类岗位,面试官往往在看三层东西。

第一层是你有没有基础框架。进程线程、虚拟内存、调度、锁、中断、驱动模型,这些你不能只会念名词。

第二层是你有没有工程感。不是知道概念,而是知道概念放进真实系统里会出什么问题。

第三层是你有没有可培养性。问到不会的地方,你是乱猜,还是能顺着已有知识一点点推出去。

所以准备的时候,不要把重点放在“多刷几百题”这种很虚的目标上。更有效的是把常见问题背后的主线抓住。

更有效的准备方法

先把项目这一条线打透

如果简历上有项目,项目一定是第一优先级。很多面试并不是先拷打基础,而是先让你讲项目,然后从项目里抽问题。你项目里只要出现过多线程、串口、SPI、I2C、日志、RTOS、驱动、异常处理、性能优化这些元素,后面都可能变成追问入口。

比较稳的准备方式是给自己的项目补一份口头版说明,至少把这几件事讲顺。

你做的模块解决了什么问题。

数据从哪来,经过什么处理,最后到哪去。

系统里哪些部分是你真正改过的。

你遇到过最麻烦的问题是什么,怎么定位的。

如果现在重做一遍,你会改哪几个设计。

很多人项目讲不清,不是做得少,而是没整理过。这个短板在实习面试里特别吃亏。

Linux 不用铺太宽,但要抓住几条主干

准备 Linux 基础时,不建议什么都摸一点,最后什么都说不深。更好的做法是按主线准备。

第一条是进程、线程、系统调用。

第二条是虚拟内存、缺页、页表、forkmmap

第三条是并发、锁、竞态、死锁、优先级问题。

第四条是中断、下半部、调度、实时性。

第五条是驱动模型、设备树、总线、probe 过程。

这几条一旦串起来,你会发现大部分题其实都挂在这些骨架上。面试官换的是问法,不是底层逻辑。

调试题一定要单独练

嵌入式面试特别喜欢问“出了问题你怎么查”。这类题很多同学明明做过,但一到面试就只会说“先看日志”。这种回答太薄了。

你最好提前把自己的调试思路练成固定顺序。

先判断是必现、偶现,还是环境相关。

再判断是功能错、时序错、资源错,还是并发错。

然后决定先补日志、抓波形、看寄存器、做最小复现,还是直接上性能工具。

只要你能把排查路径说得有层次,面试官通常会觉得你是真上过板子的人。

别把准备重点放在冷门知识点上

实习面试最常见的问题,不是特别深,而是特别容易在基础处露怯。很多同学花很久看很偏的协议细节、很深的内核实现,结果问到锁为什么不能乱用、缺页异常大概怎么走、驱动为什么要匹配设备树,反而说不明白。

更现实的策略是先把高频主干练熟,再去补个别深入点。顺序不要反。

更像能过面的答题策略

先给结论,再讲原因

很多同学一紧张就开始绕背景,结果讲了半天还没到点子上。面试官其实更喜欢先听你的判断,再看你能不能把这个判断解释清楚。

比如一类问题你完全可以先落一个短结论,然后再讲机制,再补工程里的表现。这样会显得思路很稳。

讲概念时尽量带场景

只讲定义,面试官很难判断你是真的懂,还是单纯背过。最好把概念放回系统里。

比如讲锁,不只是说“互斥锁会睡眠,自旋锁会忙等”,还要能继续说为什么中断上下文不适合随便睡眠,为什么临界区很短时不一定愿意切走。只要一带场景,质感就出来了。

不会的时候不要硬猜细节

有些题你知道七成,不知道三成,这很正常。最怕的是硬补自己并不确定的细节。面试官一般比你更熟那块,一旦你开始胡扯,后面会很难看。

更好的处理方式是先说自己确定的部分,再说哪一段自己没有深入看过,但会怎么验证。这样的回答其实比乱答安全得多。

项目和基础要互相挂钩

最好的状态不是项目归项目,八股归八股,而是能把两边连起来。

问到并发,你能想到自己项目里的共享资源。

问到中断,你能想到采样、通信或者驱动处理链。

问到内存,你能想到缓存、DMA、缓冲区管理。

一旦你能这样回答,面试官会觉得你不是在背题,而是在用知识解释做过的东西。

全部评论

相关推荐

大象1113:RM竞赛实力这么强,转正都转不了,这公司得多强?要求的多高?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务