打印

结构体内某个位域值无缘无故被改变

[复制链接]
5367|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
张小凡|  楼主 | 2024-2-20 13:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于结构体内某个位域值无缘无故被改变,在该位域前多加几个无用位域时程序就正常了,我猜测某些变量溢出然后更改了这个位域的值,我在所有数组赋值时都加了限制数组下标,该问题还是没有解决。然后把除了static外所有变量都加volatile修饰,该问题还是没有解决。

使用特权

评论回复

相关帖子

沙发
不懂我De悲伤| | 2024-2-21 17:17 | 只看该作者

结构体内某个位域值无缘无故被改变

基本上是其他地方变量内存溢出导致

使用特权

评论回复
评论
张小凡 2024-2-22 10:39 回复TA
只有数组赋值时下标超范围赋值才会造成溢出而影响其它变量吧?我现在把所有数组赋值都加了下标是否超范围判断了,问题还是没解决 
板凳
chenzhaoting| | 2024-2-21 20:08 | 只看该作者
变量溢出,或者中断没有原子操作

使用特权

评论回复
评论
张小凡 2024-2-22 10:38 回复TA
只有数组赋值时下标超范围赋值才会造成溢出而影响其它变量吧?我现在把所有数组赋值都加了下标是否超范围判断了,问题还是没解决 
地板
数码小叶| | 2024-2-21 21:55 | 只看该作者
考虑过内存对齐没,之前吃过亏,MCU的8位和16位对齐

使用特权

评论回复
评论
张小凡 2024-2-22 10:37 回复TA
8位单片机不存在内存对齐问题吧? 
5
地瓜patch| | 2024-2-21 23:50 | 只看该作者
先从程序找问题吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

0

粉丝