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

线程堆栈设大了定时器会挂掉

multi_role例程里面,把原来的610字节的堆栈改大之后,定时器会挂掉。具体表现是蓝牙广播正常,但是灯不闪了。指示灯是在定时器里面驱动的。请问是什么原因啊

Viki Shi:

为什么要改大堆栈?连接更多设备?每个例程都配置了相应的内存来匹配相应的功能

user4944744:

回复 Viki Shi:

在原有的线程里面添加了一些应用的代码,担心堆栈不够,所以改大了

Viki Shi:

回复 user4944744:

先不改堆栈,你试试看加了代码后能否成功运行

user4944744:

回复 Viki Shi:

好的。好像还有一种情况会导致定时器死掉,就是模块一直处于扫描广播的时候

Viki Shi:

回复 user4944744:

一直扫描有可能引起heap overflow,看下手册的Profiling the ICall Heap Manager (heapmgr.h)一节: file:///C:/ti/simplelink_cc2640r2_sdk_1_35_00_33/docs/blestack/ble_sw_dev_guide/html/debugging/ble-debugging.html#profiling-the-icall-heap-manager-heapmgr-h

user4944744:

回复 Viki Shi:

那要如何解决这个问题,我现在用的是HEAPMGR_SIZE=0,根据资料说的会把剩下未使用的RAM都用作heap,没法再加大了吧

赞(0)
未经允许不得转载:TI中文支持网 » 线程堆栈设大了定时器会挂掉
分享到: 更多 (0)