海康威视嵌入式面经|一面+二面真题

刚面完海康威视嵌入式岗位的两轮技术面,趁着印象还新鲜赶紧整理出来发上来,给后面要面海康的兄弟姐妹一个参考。

整体感受:问得很细,偏底层和操作系统,C/C++ 基础是基本盘,重头戏在 Linux 内核和 RTOS 那块,不能光背八股,得理解原理。两轮加起来快两个小时,强度不小。

一面(约 50 min)

一面节奏很快,几乎一道题接一道题,基本没什么寒暄。面试官全程对着提纲问,问完一题就直接下一题,有的题会顺着追问两三个点。

题目如下:

  1. Linux 中断流程,谈谈你对中断上下文的理解
  2. C 语言字节对齐的规则,为什么要字节对齐?
  3. 进程间通信的方式有哪些?为什么要分用户空间和内核空间?
  4. C++ 多态怎么理解?C++ 有哪些多态的典型例子?
  5. C 语言程序运行时的内存分配是怎样的?
  6. const 关键字的用法
  7. extern "C" 有什么用?为什么要声明 C 语言环境?与 C++ 环境的区别是什么?
  8. delete[] 和 delete 的区别?
  9. 互斥量和信号量的区别
  10. SPI 的通信过程是怎样的?SPI 有几根线?速率怎么配置?
  11. DMA 是什么?解释一下它的作用
  12. GDB 常用命令有哪些?段错误如何定位?
  13. FreeRTOS 的任务抢占机制是怎样的?

二面(约 60 min)

二面明显比一面深一个层级,全程围绕操作系统底层和嵌入式系统设计展开,面试官应该是做内核或者底层驱动的,问的问题都比较有深度,能感觉到他在听你回答的过程中判断你到底是不是真的懂。

中间有几道题答得磕磕巴巴,面试官还会顺着继续追问细节,压力不小。

题目如下:

  1. Linux schedule() 函数的原理和调用的时机
  2. 页表的实现机制是什么?分页有什么缺点?
  3. 多级反馈调度策略和时间片轮转,如何用 nice 命令优化优先级?
  4. 共享内存分配的空间在哪?读写速度怎么样?是否依赖内核?
  5. 实时操作系统的调度器设计细节,包括调度算法和上下文保存
  6. 信号量释放之后,怎么选择下一个被唤醒的线程?
  7. 如何评估一个操作系统的实时性?中断响应时间怎么测算?
  8. 在 MCU 上如何设计用户态和内核态?怎么保障安全性?
  9. 你在驱动开发中遇到过哪些棘手的问题?是怎么解决的?
  10. 上下文切换的时候,系统具体做了哪些事?
  11. MMU 是如何实现虚拟地址到物理地址转换的?
  12. u-boot 的启动流程为什么要分两个阶段?第一阶段为什么必须足够小?
  13. 你对 Linux 内核里的自旋锁和睡眠锁怎么理解?什么场景下用哪个?
  14. 写时复制(COW)机制是怎么实现的?fork 之后父子进程的内存关系是怎样的?
  15. 一个进程从 main 函数执行到第一行代码之前,操作系统和运行时都做了哪些事?
  16. 内核态和用户态切换的过程是怎样的?系统调用底层怎么实现的?
  17. 中断和异常的区别是什么?软中断又是什么?
  18. 内存屏障是什么?什么场景下必须用?
  19. 介绍一下你做过的项目里最有挑战性的一个,遇到的最大的坑是什么?

一些个人感受和建议

项目一定要准备深二面最后聊项目,面试官会顺着你说的某一句话就开始往下追问,准备的时候要把项目里每一个技术决策都想清楚——为什么用这个方案,有没有别的方案,区别是什么。不会就大方说不会我中间有两道题确实没答出来,直接说"这块我之前没深入了解过",面试官也没为难,就跳过去了。不要硬编,硬编只会让面试官追问到你彻底破防

写在最后

整体来说海康的面试体验还可以,面试官比较专业也比较有耐心,问的都是货真价实的技术题,没有什么奇怪的脑筋急转弯或者压力面

后续流程还在等通知,到时候如果有 HR 面或者 offer 进展,再回来更新。

整个秋招攒下来的面经,我都塞进这个专栏里了——目前 32 篇 / 12w+ 字,仍在持续更新。

内容基本覆盖了嵌入式岗会被问到的所有方向:C 语言陷阱 / 计网高频 / 操作系统 / RTOS / Linux 驱动 / 通信协议 / 硬件基础——你面试会被问到的,这里都有对应的题和思路。

目前 4.7w+ 同学在看,3300+ 订阅。数据摆这儿,口碑自己说话。

适合面经基础薄弱、想一次性系统梳理的同学。越早订越划算,内容只会越来越全,价格也只会越涨越高。

🔗 专栏直达:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

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