单片机运行一段时间后偶发复位,嵌入式面试怎么排查?

浏览量:2
时间: 2026-07-28 15:46:31



分类:嵌入式单片机 | 适合人群:0-3年、3-5年 | 难度:中高级 | 题型:跨岗位技术题

面试题

一块单片机控制板上电后可以正常运行,但工作一段时间会偶发重启。问题出现没有固定时间,有时在电机、继电器或通信动作附近发生。你会怎样判断原因并建立可重复的排查过程?

面试官真正想考什么

偶发问题最容易暴露工程师是否只会“换电容、关看门狗、加延时”。面试官希望听到的是证据链:先确认现象究竟是不是复位,再保存复位原因和运行现场,之后分别验证硬件与软件假设,最后用原工况复测。

推荐排查顺序

第一,先确认是复位、死机、掉电还是进入低功耗

可以在启动最早阶段读取并保存芯片的复位原因标志,记录启动次数、关键日志和发生前的运行状态。若程序只是跑飞后被外部系统重新拉起,或者误进入休眠,处理方向与真实掉电复位不同。复位原因寄存器应尽早读取,避免初始化代码先将标志清除。

第二,用复位来源缩小范围

常见来源包括上电复位、欠压复位、外部复位脚、独立或窗口看门狗、软件复位,以及部分器件支持的栈、内存或安全异常复位。不同芯片的标志定义不同,回答时应说明先查对应数据手册,而不是背某个系列的寄存器位。

2026-07-28 15 45 08.png   
偶发复位需要同时保留软件现场,并测量电源、复位脚和外部负载动作时序。

第三,硬件侧重点看电源、复位脚和干扰路径

用示波器而不是只用万用表观察芯片电源和复位脚,设置合适触发条件捕获短时跌落、尖峰或复位脉冲。对比电机、继电器、无线发射、大电流负载和接口插拔的动作时刻,检查电源余量、去耦回路、地回流、感性负载吸收、复位脚上拉与滤波、连接器接地以及ESD和EMI耦合路径。

第四,软件侧重点查看看门狗、栈和内存

看门狗复位不等于“看门狗误动作”,它可能是在提示任务死锁、长时间关中断、优先级反转或某段代码执行时间失控。还应检查栈水位、数组越界、野指针、堆破坏、递归、并发访问和异常处理。可在关键任务、故障处理和喂狗位置加入轻量日志或GPIO时间标记。

第五,通过改变一个变量验证假设

降低负载、断开感性器件、改用稳定实验电源、调整软件功能开关、延长看门狗窗口或启用内存保护,都可以作为验证手段。但每轮实验只改变一个主要变量并记录复现次数,避免多个改动同时加入后无法判断真正原因。

第六,修复后回到最差工况复测

硬件修改要在温度、电源边界、负载切换和接口扰动等实际条件下复测;软件修改要做长时间运行、压力和异常注入测试。只在桌面上运行几十分钟没有复位,不能证明问题已经关闭。

可直接使用的参考回答

“我会先确认现象是不是MCU复位。程序启动后第一时间读取并保存复位原因,同时记录启动次数和复位前的关键状态,区分欠压、外部复位、看门狗、软件复位或其他异常。”

“硬件侧用示波器触发捕获VDD和复位脚,重点关联电机、继电器、通信和负载切换时刻,检查电源余量、去耦、地回流、复位脚和干扰耦合。软件侧检查看门狗超时原因、任务死锁、长时间关中断、栈溢出、数组越界和内存破坏,并增加不会明显改变时序的日志或GPIO标记。”

“找到假设后,我会一次改变一个变量验证,比如断开感性负载、换实验电源或关闭某个任务。确认根因后再做硬件或软件永久修改,并回到最差负载和长时间运行条件复测。”

面试官可能继续追问

1. 万用表测到3.3V一直正常,能排除电源问题吗?

不能。万用表通常无法捕获持续时间很短的跌落或尖峰,应使用示波器,并合理设置带宽、探头接地和触发条件。

2. 查到是看门狗复位,直接关掉看门狗可以吗?

关闭看门狗可以用于短期对比实验,但不能当成最终修复。还要找到为什么没有按时喂狗,是任务阻塞、调度异常、执行超时还是内存问题。

3. 为什么调试器连接时不复位,脱机就复位?

调试器可能改变时序、复位脚状态、供电、低功耗行为或看门狗配置。应把这些差异列出来,使用日志、GPIO和独立测量工具减少调试器对现场的影响。

4. 复位标志显示多个来源怎么办?

先查芯片手册对标志置位和清除的定义,确认哪些标志会在不同复位间保留。启动时按规定顺序读取、保存并清除,再结合电源和复位脚波形判断。

容易失分的表达

“偶发复位一般就是电源不稳。”——过早锁定单一原因。

“把看门狗关闭就好了。”——掩盖软件失控而不是解决问题。

“多加几个电容试试。”——没有测量对象、假设和前后数据。

“我会一直单步,等问题出现。”——没有考虑调试器改变系统状态。

面试前准备动作

  • 确认常用MCU如何读取和清除复位原因标志。

  • 准备一次电源跌落、看门狗或内存越界问题的完整案例。

  • 会说明示波器观察VDD和复位脚时怎样选择触发点。

  • 能画出“现象确认—原因分类—单变量实验—最差工况复测”的流程。

参考资料

Microchip:Determining the Cause of a Reset

Microchip:MCU Reset Sources

STMicroelectronics AN6011:Reset and Power-Supply Supervision

核心关键词:单片机偶发复位、MCU重启排查、看门狗复位、欠压复位、嵌入式面试题、硬件调试

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
面试官问“为什么项目选择四层板”,PCB工程师应该怎么回答?

面试官问“为什么项目选择四层板”,PCB工程师应该怎么回答?面试题你做过两层板和四层板吗?你介绍的这个项目为什么选择四层板,而不是成本更低的两层板?面试官真正想... 详情>>

2026-07-26 11:28:14
GNU提供的开发工具链有哪些工具程序,试举出2、3例

编辑器: vi,emacs代码打补丁工具: diff & patch:项目构建工具: make(Makefile),autotool(包括Autoconf, A... 详情>>

2024-03-27 14:52:19
通常,电路板上的铁氧体磁珠不应与▁▁▁▁▁▁▁▁▁串联?

通常,电路板上的铁氧体磁珠不应与▁▁▁▁▁▁▁▁▁串联?a. 信号线b. I/O 线c. 电源线d. 地线正确答案:d地线通常是用作电流回流或单端信号,单端信号... 详情>>

2024-03-20 15:01:08
为什么需要交叉编译?

有时是因为⽬的平台上不允许或不能够安装我们所需要的编译器,⽽我们⼜需要这个编译器的某些特征;有时 是因为⽬的平台上的资源贫乏,⽆法运⾏我们所需要编译器;有时⼜是... 详情>>

2023-10-25 10:02:12
ARM协处理器指令包括哪3类,请描述它们的功能。

ARM协处理器指令包括以下3类:1. ⽤于ARM处理器初始化ARM协处理器的数据处理操作。2. ⽤于ARM处理器的寄存器和ARM协处理器的寄存器间的数据传送操作... 详情>>

2023-11-21 11:29:47
开班信息