TI中文支持网
TI专业的中文技术问题搜集分享网站

请问IDataStack和XDataStack溢出该怎么解决

各位大神:

遇到一个问题,同样的程序下载到两个版本的硬件里,A版硬件正常运行,B版硬件操作按键就频繁出现IDataStack和XDataStack溢出的现象。

B版硬件只是在A版的基础上加了充电电路,LED的IO定义稍有变动,请问是要通过修改Stack容量范围来解决吗?如果是该怎么修改?

lihua jia:

回复 Viki Shi:

在线仿真了几天,感觉出现Stack溢出的情况经常是跟触发按键同时出现的,遇到一个怪现象:

我的硬件按键按下时与GND相连,平时是高电平。所以我修改了协议栈的一些定义,

1. 将按键中断方式改为   #define HAL_KEY_SW_6_EDGE     HAL_KEY_FALLING_EDGE

2. 按键活跃状态改为低电平

#if defined (HAL_BOARD_CC2530EB_REV17) #define PUSH1_POLARITY ACTIVE_LOW

修改这两处之后,会出现无法自动联网,设备状态一直处于DEV_INIT状态或者出现之前提的Stack溢出现象,应该如何解释呢?求大家帮忙

lihua jia:

回复 Viki Shi:

发现问题了,出现堆栈溢出的原因是我新版本硬件的充电电路问题,在运行过程中电压不正常了。总结造成堆栈溢出的原因有

1. 频繁进某个中断,使中断地址无法释放又压入新地址

2. 硬件突然复位,但又不会重新回到Main函数,比如我这种硬件电压异常的情况

还有其他原因的话,请大家再补充吧

赞(0)
未经允许不得转载:TI中文支持网 » 请问IDataStack和XDataStack溢出该怎么解决
分享到: 更多 (0)