共2条
1/1 1 跳转至页
【求助】请教内存变量无故发生变化

问
我的系统中有若干全局静态变量。在线调试时已经可以确认在RAM中地址没有重叠,而且没有溢出。系统在工作负荷不大的情况下一切正常。但是如果长时间处于高负荷工作状态下(连续开启多个中断进行数据采集和运算),发现有一些变量出现莫名其妙的改变,而且出现了按照程序运行不可能出现的数值。
系统具有外部看门狗,可以确认主程序没有跑飞,此时停止运行,查看memoy窗口,发现RAM还有很多空间没有使用(没有使用的都是显示0),查看watch窗口,可以发现有一些变量出现莫名其妙的改变。
我使用的EW430_V220破解版,C语言。各位有没有看过这种现象?难道是破解版的问题吗? 答 1: 有哪位大侠知道呢?
恳请指教! 答 2: 是不是有中断嵌套? 答 3: 我在中断服务程序里面没有再次开中断,而且没有使用过乘法(应该没有调用到硬件乘法器)。 答 4: 变化是有规律性还是无规律性?每次都是相同的变量发生变化吗?跟踪一下,看在何处产生了变化!
奇怪ING? 答 5: 有没有例子程序? 答 6: 这种情况百分之九十九是程序修改了RAM,还是先从程序中查找问题。
至于其他原因我还没遇到过 答 7: 我觉得430真差,全局变量都会莫名其秒的变! 答 8: 哈,有可能是你的编译器设置的堆栈不够大,负荷大的时候堆栈溢出了,试试看。 答 9: 我有一次是因内存超出去了,变量产生变化,估计你这是在中断里内存超范围了 答 10: 如果方便的话,请发一段有问题的程序,看看我们能不能帮你解决一下 答 11: 我估计可能是D版编译器的原因。
我做了下面的试验。
unsigned int i;
i |= BIT9; //预先设置BIT9位为1
if ( i & BIT9 ) //这里if判断的结果经常会是Fault。但是在我起初的程序中,这样的判断写法是可以的。当程序大的时候,就出现问题了。必须写成下面形式才会得出结果为真。
if ( ( i & BIT9 ) == BIT9 )
你说是不是很奇怪?? 答 12: 自己帮自己顶一下! 答 13: 各位版主和高手,有人有时间回答我的疑问吗??
我觉得这个问题很难理解啊??
系统具有外部看门狗,可以确认主程序没有跑飞,此时停止运行,查看memoy窗口,发现RAM还有很多空间没有使用(没有使用的都是显示0),查看watch窗口,可以发现有一些变量出现莫名其妙的改变。
我使用的EW430_V220破解版,C语言。各位有没有看过这种现象?难道是破解版的问题吗? 答 1: 有哪位大侠知道呢?
恳请指教! 答 2: 是不是有中断嵌套? 答 3: 我在中断服务程序里面没有再次开中断,而且没有使用过乘法(应该没有调用到硬件乘法器)。 答 4: 变化是有规律性还是无规律性?每次都是相同的变量发生变化吗?跟踪一下,看在何处产生了变化!
奇怪ING? 答 5: 有没有例子程序? 答 6: 这种情况百分之九十九是程序修改了RAM,还是先从程序中查找问题。
至于其他原因我还没遇到过 答 7: 我觉得430真差,全局变量都会莫名其秒的变! 答 8: 哈,有可能是你的编译器设置的堆栈不够大,负荷大的时候堆栈溢出了,试试看。 答 9: 我有一次是因内存超出去了,变量产生变化,估计你这是在中断里内存超范围了 答 10: 如果方便的话,请发一段有问题的程序,看看我们能不能帮你解决一下 答 11: 我估计可能是D版编译器的原因。
我做了下面的试验。
unsigned int i;
i |= BIT9; //预先设置BIT9位为1
if ( i & BIT9 ) //这里if判断的结果经常会是Fault。但是在我起初的程序中,这样的判断写法是可以的。当程序大的时候,就出现问题了。必须写成下面形式才会得出结果为真。
if ( ( i & BIT9 ) == BIT9 )
你说是不是很奇怪?? 答 12: 自己帮自己顶一下! 答 13: 各位版主和高手,有人有时间回答我的疑问吗??
我觉得这个问题很难理解啊??
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
汽车电子中巡航控制系统的使用被打赏10分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K146】S32DS RTD 驱动环境搭建被打赏12分 | |
【分享开发笔记,赚取电动螺丝刀】【IAR】libc标注库time相关库函数使用被打赏23分 | |
LP‑MSPM0L1306开发版试用结果被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【LP-MSPM0L1306】适配 RT-Thread Nano被打赏23分 |