单片机程序跑飞怎么去查找原因呢?

单片机程序跑飞怎么去查找原因呢?,第1张

对于简单的错误,如果能初步猜测到执行哪个函数后跑飞的,那就可以直接单步调试,看看什么原因,不外乎指针非法 *** 作,数组越界之类的。

还有一种笨方法,注释函数,如果注释函数后bug不再现,那么就可以按照刚刚说的单步进去这个函数,看看有什么问题。

更有效的但是也对水平要求更高的方法可以看一下别人的方法。

下面是几个链接,可以看看,学习一下。

记一次STM32中HardFault问题的调试解决

如何找到导致程序出现HardFault

STM32硬件错误HardFault_Handler的处理方

定位产生HARD FAULT之前的代码

程序跑飞是指系统受到某种干扰后,程序计数器PC的值偏离了给定的唯一变化历程,导致程序运行偏离正常的运行路径.程序跑飞因素及后果往往是不可预计的.在很多情况下,程序跑飞后系统会进入死循环而导致死机。

计算机程序(Computer Program),港、台译做电脑程式。计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。

它以某些程序设计语言编写,运行于某种目标结构体系上。打个比方,程序就如同以英语(程序设计语言)写作的文章,要让一个懂得英语的人(编译器)同时也会阅读这篇文章的人(结构体系)来阅读、理解、标记这篇文章。一般的,以英语文本为基础的计算机程序要经过编译、链接而成为人难以解读,但可轻易被计算机所解读的数字格式,然后放入运行。

程序是一个指令序列

如果您在一个符合大多数的计算机上, *** 作系统例如Windows、Linux等,加载并执行很多的程序,在这种情况下,每一个程序是一个单独的映射,并不是计算机上的所有可执行程序。

它是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。同一计算机程序的源程序和目标程序为同一作品。

原因很多啊

1)程序没有结尾或不是循环的程序。

2)nmi管脚没有上拉。

3)在看门狗动作的时候程序会经常跑飞。

4)程序编制不当也会引起程序跑飞。

5)硬件系统有问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8066450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存