搜索
bottom↓
回复: 7

怎么检查使用ucOSII系统所带来的内存问题?数组内容被莫名其妙改变!

[复制链接]

出0入0汤圆

发表于 2011-6-27 17:04:45 | 显示全部楼层 |阅读模式
平台:STM32F103,keil 4, GCC。
volatile unsigned char cSet_Time_table1[7] = {0x00,0x13,0x17,0x04,0x19,0x05,0x11};
uchar i;

for(i=0; i<7; i++)
{
    cSet_Time_table1 = (cSet_Time_table1/10)<<4 + (cSet_Time_table1%10);
}

请教:在执行上述语句后,数组内容被莫名其妙的改变为0,请问怎么排查问题所在?
应该和跑了操作系统有关系。但是无从下手啊。
内存是怎么被改变的应该怎么查呢?
注:数组内容在按键程序中有所改变。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-6-27 17:21:41 | 显示全部楼层
cSet_Time_table1如果是全局的而且有两个以上任务共享,访问时要关中断。

出0入0汤圆

 楼主| 发表于 2011-6-27 17:22:21 | 显示全部楼层

出0入0汤圆

发表于 2011-6-27 18:03:47 | 显示全部楼层
这种问题10有8,9就是栈空间不够用

出0入0汤圆

发表于 2011-6-27 20:50:01 | 显示全部楼层
呵呵。。兄弟,我猜你的本意是先让(cSet_Time_table1/10)移位再 加 (cSet_Time_table1%10)的吧。
实际上,是 先执行 4 + (cSet_Time_table1%10);  然后 执行 (cSet_Time_table1/10)<<( 4+(cSet_Time_table1%10) ),所以导致“数组内容被莫名其妙的改变为0”...

运算符优先级问题。

出0入0汤圆

 楼主| 发表于 2011-6-28 08:47:42 | 显示全部楼层
回复【1楼】TimCheng
cset_time_table1如果是全局的而且有两个以上任务共享,访问时要关中断。
-----------------------------------------------------------------------

cset_time_table1的确是全局的,而且有两个任务共享。我访问时没有关中断。谢谢提醒。我试试。

回复【3楼】smartmeter
这种问题10有8,9就是栈空间不够用
-----------------------------------------------------------------------
我估计栈空间不够用的可能性比较小,我已经把栈定义的很大了。不过我会检查一下。

回复【4楼】luy3728000
呵呵。。兄弟,我猜你的本意是先让(cset_time_table1/10)移位再 加 (cset_time_table1%10)的吧。
实际上,是 先执行 4 + (cset_time_table1%10);  然后 执行 (cset_time_table1/10)&lt;&lt;( 4+(cset_time_table1%10) ),所以导致“数组内容被莫名其妙的改变为0”...
运算符优先级问题。
-----------------------------------------------------------------------
你猜对了!原来“+”比“《”的优先级高呀?!这倒没注意。我试试看。


谢谢各位。另外,我也考虑到是不是可重入函数的问题。今天都试试。

出0入0汤圆

 楼主| 发表于 2011-6-28 09:50:24 | 显示全部楼层
按照1楼和4楼所说修改了,暂时没有发现问题。

出0入0汤圆

发表于 2011-6-28 10:02:13 | 显示全部楼层
左移 << 的优先级很低的,楼主下次要注意

再有,写代码时不要舍不得用(),把高位和低位都用()框起来,一是容易理解,再有就是也不容易出错
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-23 10:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表