面试凉经,又凉了好没意思啊

海康威视嵌入式面经随记

起初兴致勃勃地投了海康,没想到还是挂在了二面,感觉整体难度还好但是自己当时没想起来。复盘了一下,很多考点其实是有规律可循的。

💡 备考建议:如果你也在准备嵌入式方向,推荐先系统过一遍这份面经 我也是看完之后才意识到自己哪里没准备到位的。

一面(50min)

  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 任务抢占机制

一面整体还好,基础扎实基本都能答上来。但我在第 9、13 题上卡了一下——互斥量和信号量的区别我说得不够精准,FreeRTOS 抢占机制也只答了个大概。

📌 这几个点在【面试完全指南】里都有专题,讲得比我清楚多了,当时要是提前看到就好了。

二面(60min)——挂在这里了

二面明显上了一个难度,考的都是内核原理层面:

  1. Linux schedule() 函数的原理和调用的时机
  2. 页表实现机制,分页的缺点?
  3. 多级反馈调度策略和时间片轮转,如何用 nice 命令优化优先级?
  4. 共享内存分配的空间、读写速度,是否依赖内核?
  5. 实时操作系统的调度器设计细节(算法、上下文保存)
  6. 信号量释放后,如何选择下一个线程?
  7. 如何评估操作系统的实时性?如何测算中断响应时间?
  8. MCU 上如何设计用户态和内核态?如何保障安全性?
  9. 驱动开发中遇到的棘手问题及解决方案
  10. 上下文切换时系统做了什么?
  11. MMU 如何实现虚拟地址到物理地址的转换?
  12. u-boot 启动流程分两阶段的原因?第一阶段为何要足够小?

第 1、5、7、12 题是我的死穴,schedule() 的调用时机说得含糊,u-boot 两阶段的原因完全没想起来,当场脑子空白。

总结

海康的嵌入式岗位对Linux 内核原理 + RTOS 调度 + 硬件接口要求都挺深的,不是背背八股就能过的,得真正理解原理。

如果你也在准备嵌入式岗位面试,建议早点系统复习,别像我一样临场才发现漏洞。

👉 嵌入式软件工程师面试完全指南32篇 · 12w+字 · 持续更新 · 3300+人已订阅销量即口碑,提前订阅提前享受 ⬆️

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-30 18:05
空屿编号:你把墨镜摘下来是不是这样😭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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