OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5058|回复: 2

莫名其妙的全局变量问题

[复制链接]

17

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2012-8-29
在线时间
0 小时
发表于 2014-4-27 21:06:57 | 显示全部楼层 |阅读模式

在一个多任务的RTOS应用程序中, gStructVarA,gVarB在另一个任务中通过CAN BUS发送出去. 遇到的奇怪现象是,通过观察CAN的数据,发现当满足给定条件,gStructVarA=1总是看到被执行了.
但是gVarB则在执行几十次后,归零了.

而在加入一个SetTeSt2函数,该函数只是通过串口向PC发送数据. 结果则显示,gVarB不会归零了,一切正常.

if (条件满足) {
 gStructVarA.Byte6.Bit3 = 1
gVarB = (gVarB | 0x00040000) & 0xFFFCFFFF;

//SetTest2( (gVarB & 0X0FFFF),((gVarB & 0XFFFF0000)>>16),0,0);
}

gVarB,gStructVarA在其他任务中也有被赋值的操作,但是位不同,不会有同一个位(BIT)在其他任务中被赋值的操作.

求教这是怎么造成的呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-28 00:34:17 | 显示全部楼层
说不准,呵呵, 仿真跟踪看看吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

17

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2012-8-29
在线时间
0 小时
 楼主| 发表于 2014-4-28 23:25:22 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
已解决,是数组越界造成的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 20:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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