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

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

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

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

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

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

相关推荐
三佛科技-134163842124 分钟前
FT8353系列(FT8353A/B/C/CD/DD/K/KD/PD)隔离型LED恒流驱动IC芯片 典型应用电路
单片机·物联网·智能家居·pcb工艺
阿拉斯攀登1 小时前
嵌入式-硬件基础:了解三极管
单片机·嵌入式硬件·三极管
逐步前行1 小时前
C51_74HC165并口转串口
单片机·51单片机
HarrySunCn2 小时前
如何使用VSCode开发Arduino项目
ide·vscode·单片机·编辑器
嵌入式的飞鱼2 小时前
SD NAND 焊接避坑指南:LGA-8 封装手工焊接技巧与常见错误
人工智能·stm32·单片机·嵌入式硬件·tf卡
三佛科技-134163842123 小时前
LN8K05A/B/C_5V非隔离AC-DC电源芯片 典型应用场景、典型电路、与阻容降压的对比分析
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
ACP广源盛139246256733 小时前
GSV6155@ACP#6155产品规格详解及产品应用分享
嵌入式硬件·计算机外设·音视频
大唐荣华3 小时前
灵巧手 - 绳驱(钢丝/绳索驱动)、连杆(Linkage)和直驱(Direct Drive)的技术对比
嵌入式硬件·机械·灵巧手
阿拉斯攀登3 小时前
51单片机:点灯程序的底层拆解
单片机·嵌入式硬件·51单片机
网易独家音乐人Mike Zhou3 小时前
【嵌入式模块芯片开发】LP87524电源PMIC芯片配置流程,给雷达供电的延时上电时序及API函数
c语言·stm32·单片机·51单片机·嵌入式·电源·毫米波雷达