首页 » 科学 » 单片机轨范去世机跑飞了可能是因为这几个方面的原因_变量_看门狗

单片机轨范去世机跑飞了可能是因为这几个方面的原因_变量_看门狗

乖囧猫 2025-01-24 00:17:48 0

扫一扫用手机浏览

文章目录 [+]

2、中断变量处理欠妥。
若定义某些会在中断中修正的全局变量,这时要把稳两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前该当首先关闭全局中断,防止读到一半被中断给修正了,读完之后再打开全局中断;否则涌现造成数据乱套。

3、地址溢出,常见缺点为指针操作缺点。
我要着重说的是数组下标利用循环函数中循环变量,如果循环变量没掌握好则会涌现数组下标越界,意外修正系统的寄存器造成去世机,这种情形下如果去世机解释运气好,否则后面不知道发生什么头疼的事。

单片机轨范去世机跑飞了可能是因为这几个方面的原因_变量_看门狗 单片机轨范去世机跑飞了可能是因为这几个方面的原因_变量_看门狗 科学

4、无条件的去世循环;比如利用while(x);等待电平变革,正常情形下x都会变成0,就怕万一,因此最好加上韶光限定;

单片机轨范去世机跑飞了可能是因为这几个方面的原因_变量_看门狗 单片机轨范去世机跑飞了可能是因为这几个方面的原因_变量_看门狗 科学
(图片来自网络侵删)

5、看门狗没有关闭。
有的单片机纵然没利用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位,造成去世机,这个要看芯片手册,最好在程序复位后首先该当显式打消看门狗再关闭看门狗;

6、堆栈溢出。
最难查找的问题,对付容量小的单片机,只管即便减少函数调用层级,减少局部变量,从而减少压栈的时候所需的空间。
当你把以上几条都试过不能办理问题,试一试把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改玉成局变量,试一试说不定就可以了。

标签:

相关文章

TCOOP-M101-433M发射模块_暗记_波形

遥控器参数遥控器采取HS2245PT芯片,吸收模块采取LR43B无线射频吸收模块遥控器与吸收模块选用的是下图所示的两款:由于LR4...

科学 2025-01-24 阅读3 评论0

源代码遭泄露是谁在扰乱_北碚区_产物

“感谢审查机关对民营企业著作权的重视和保护,帮我们挽回丢失,现在我们加强了软件源代码保密事情……”1月26日,重庆市北碚区审查院审...

科学 2025-01-24 阅读3 评论0