单片机终端导致的程序启动问题

工作中遇到的一个问题,单片机link烧录程序后,第一次程序启动可以运行屏幕正常亮起,之后掉电后重新上电屏幕却不亮,像是死机的样子。刚开始想着难不成自己写的程序只能运行一次?

由于程序使用link工具状态下,都可以正常运行,且只有掉电了重新上电才不运行(通过观察实际上是一分钟之后屏幕才亮起)。因此这里在查找问题时焊接出了串口用于观察问题,在关键位置打印log,逐步缩小问题点范围。通过串口观察到程序是有启动的,但是似乎是卡在了一个地方。

最后排查发现是卡在了一个自己写的delay函数里面,这时候不禁怀疑自己写的delay延迟那么高的吗?但仔细想想却不应该,因为debug下没有多少延迟,但是release下延迟是其的上百上千倍,这是不可能的。因此将打印log的操作放在延迟函数里,主要是观察release下的速度。

之后通过观察log发现,重新上电程序是运行起来了,结果在delay函数里面打印了几十条log突然就卡住了一分钟左右。这时因该猜到了,肯定有什么打断了我的delay函数加大了延时,导致启动滞后。这时想到,能打断delay也只有终端函数了,于是在使用的中断函数里将log打印出来,之后发现果中断里的log果然有打印,果然是中断的问题。程序在启动时,其中的某个模组异常突然频繁地产生中断造成地这一问题。最后将中断屏蔽,解决了问题。

这时候就疑问为什么debug下面没有中断,但是release下就有中断??

相关推荐
深圳市恒锐丰科技杨生15 分钟前
EG3014S 80V 半桥栅极驱动芯片|低压半桥外置 MOS/IGBT 驱动方案
嵌入式硬件·硬件工程
Freak嵌入式16 分钟前
MicroPython+Pico 接收空闲中断和发送空闲中断全实战
java·开发语言·stm32·单片机·嵌入式硬件
尼喃32 分钟前
锂电池3.7V升压5V芯片全场景选型:耳机/音箱/USB输出三档方案
嵌入式硬件
LCG元1 小时前
STM32F103 硬件 I2C 通信全流程调试实录:从寄存器配置到总线死锁恢复
stm32·单片机·嵌入式硬件
LCG元1 小时前
STM32L4 ADC+DMA 多通道采集实战:从 CubeMX 配置到 VREFINT 电压校准
stm32·单片机·嵌入式硬件
单片机仿真设计1 小时前
【proteus仿真】基于 STM32 快递运输避障小车设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
lhbweilai1 小时前
工业互联网(二)——USB 设备编程(一)
单片机·嵌入式硬件
G***技2 小时前
IB3-771嵌入式主板6 TOPS真实算力怎么用:从PyTorch到RKNN的量化落地
人工智能·嵌入式硬件
国科安芯2 小时前
低轨卫星姿轨控系统中抗辐射MCU的选型依据与工程实践
单片机·嵌入式硬件·算法·架构·系统安全·低轨卫星·抗辐射
国科安芯2 小时前
卫星电源管理系统中高可靠MCU的功耗特性与电源监控功能分析
人工智能·单片机·嵌入式硬件·mcu·安全·电源管理系统·抗辐射