首页 > 影石嵌入式二面面经
头像
嵌进现实的大厂梦
发布于 09-12 07:50 上海
+ 关注

影石嵌入式二面面经

影石的二面整体以深度技术为主,面试官针对 RTOS、ARM 架构、通信协议以及 C 语言底层细节进行了大量追问,更强调对原理的理解与项目的深入剖析。

一、RTOS 方向

  • FreeRTOS 的任务调度机制是怎样的?时间片轮转和优先级调度如何实现?
  • 如果两个相同优先级的任务不断切换,会发生什么?如何避免频繁切换带来的开销?
  • 队列、信号量、事件标志的核心区别是什么?在实际项目中如何选择?
  • 中断和任务如何进行同步?中断里能不能直接调用阻塞型 API?
  • 内存管理 heap1~heap5 的差异是什么?在高并发场景下如何避免碎片?

二、ARM 架构

  • ARM Cortex-M 架构中有哪些异常模式?异常进入和返回的堆栈切换过程是怎样的?
  • ARM 的中断优先级分组机制是如何设计的?
  • Cache 与总线一致性如何保证?
  • 在裸机和 RTOS 下,启动文件的作用有什么不同?

全网最全面的嵌入式八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

三、Modbus 协议

  • Modbus RTU 的帧结构具体由哪些部分组成?
  • CRC 校验的计算流程是怎样的?
  • 主站和从站的超时与重传机制如何处理?
  • 如果一个从设备需要同时支持 Modbus RTU 和 Modbus TCP,应如何设计?

四、C 语言深入

  • 指针与数组在函数参数传递中的区别?
  • 函数指针和回调机制在驱动开发中的应用?
  • 宏展开可能带来哪些隐患?
  • 内存对齐与结构体填充的规则?
  • volatile 的作用,为什么在寄存器映射中必须使用?

五、项目深挖

  • 你项目中使用的 RTOS 如何划分任务?为什么这样设计?
  • 如果任务优先级设置不合理,会出现什么问题?如何排查?
  • 你在项目中如何实现 Modbus 协议栈?遇到过哪些异常情况?
  • 在 ARM 平台上移植驱动时遇到的最大困难是什么?
  • 项目中如何保证系统在高并发通信和外设同时工作时的稳定性?

总结

这场面试对知识的掌握程度要求很高,不仅仅停留在会用的层面,而是持续追问到底层原理和实际项目中的处理方式。RTOS 的任务调度、ARM 架构的异常机制、Modbus 协议的实现细节,以及 C 语言的底层特性,都是考察的重点。同时,面试官会结合简历项目逐步深入,要求给出设计思路和问题应对方法。

全部评论

(1) 回帖
加载中...
话题 回帖

近期热帖

热门推荐