芯海嵌入式 一面 面经 还是挺难的

最近整理了一份芯海嵌入式一面面经,整体风格比较典型,面试时间比较长,而且问得比较细,重点还是围绕 FreeRTOS、任务调度、MCU基础、通信接口、项目理解 这些内容展开。

面试题目很看重你对 原理的理解、项目里的实际使用、以及能不能把底层逻辑讲清楚

  1. MCU 上电之后,程序从复位到进入 main 之前,通常会经历哪些步骤?
  2. 启动文件 startup.s 一般做了什么?中断向量表的作用是什么?
  3. Bootloader 和 Application 的边界一般怎么划分?跳转执行时要注意哪些问题?
  4. map 文件主要看什么?如何通过 map 文件判断 RAM 和 Flash 的占用情况?
  5. .text.data.bss、堆、栈分别是什么?.data 为什么需要搬运,.bss 为什么需要清零?
  6. 函数调用过程中,参数、返回地址、局部变量通常是怎么保存的?栈帧的作用是什么?
  7. Cortex-M 中 MSP 和 PSP 有什么区别?RTOS 场景下为什么会区分这两个栈?
  8. 为什么 PendSV 常被用于任务切换,而不是直接在 SysTick 中完成完整切换?
  9. 中断上下文和线程上下文有什么区别?在中断里为什么不能随意做耗时操作?
  10. NVIC 是做什么的?中断优先级分组、抢占优先级、响应优先级分别怎么理解?
  11. 什么情况下会进入 HardFault?排查 HardFault 通常从哪些寄存器或现场信息入手?
  12. volatile 为什么在寄存器定义、中断共享变量里经常使用?它解决不了哪些问题?
  13. 访问外设寄存器时,为什么通常会写成 (*(volatile uint32_t *)addr) 这种形式?
  14. 为什么结构体映射寄存器时要特别注意内存对齐、填充和编译器行为?
  15. 如果让你定位一个“上电偶现死机、现场难复现”的 MCU 底层问题,你会怎么设计排查思路?

嵌入式八股文专栏https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

(专栏包括各类基础八股文以及大厂面试题等内容)

准备嵌入式面试,建议不要只背八股,最好按这几个方向去练:

  1. 先把项目讲顺。能不能拿自己的项目把任务划分、通信方式、调度逻辑、问题排查说清楚,往往比单独背知识点更重要。
  2. 把高频基础反复过。重点盯住 C语言 + MCU + FreeRTOS + 通信协议 + 内存/指针,这些基本是面试绕不开的核心区域。
  3. 每个知识点都按“三层”准备。第一层讲定义,第二层讲原理,第三层讲项目里怎么用。面试官最喜欢从这三层往下追问。
  4. 多练口头表达。很多同学不是不会,而是说不出来。建议自己录音,或者找人做模拟面试,把回答练到自然、简洁、有逻辑。
  5. 针对岗位定向准备。如果岗位 JD 重点写了 FreeRTOS、BLE、MCU、驱动、通信协议,那就别平均用力,要优先把这些方向吃透。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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