Hi:
我在使用CC2640R2,进行开发的过程中,经常出现程序跑飞,如在函数中定义大数组,或者在写特征值操作中,处理时间较长的逻辑处理时,就容易程序跑飞。
如何定位这些程序跑飞是如何造成的呢? 程序时跑飞了?还是出发了硬件错误,进入了某个死循环中?
Viki Shi:
有报错吗?高度怀疑是堆栈溢出,你可以往这个方向排查下
ming li62:
回复 Viki Shi:
Hi Viki:
编译的时候没有报错,程序跑飞的时候,也没有任何打印错误,如果是堆栈溢出,用什么方法排查呢? 又该如何解决呢?
在线调试,程序跑飞,之后,暂停程序,CSS有如下错误提示:
Can't find a source file at "/db/vtree/ademars/git_trees/avala-z/src/ti/sysbios/family/arm/m3/Hwi.c" Locate the file or edit the source lookup path to include its location.
da qin zheng sheng:
自己定义的数组有多大?逻辑处理操作频繁不?
XINLIANG JIANG:
我的问题也差不多, 因为要透传数据,所以定义了大的数组,然后程序就各种不稳定, 比如在 调用 notify 的时候, 没有返回。直接跑飞了, 但是串口中断和Clock事件可以正常响应。 还有就是 蓝牙连接的时候 频繁 写flash 也会导致 跑飞,现象就是 收不到 state 的变化事件。 比如 从连接到 断开连接收不到事件。
不知道楼主有思路没有,指点一下
ming li62:
回复 XINLIANG JIANG:
我的问题是定义大数组,造成ram不够用,解决方法是将cache 作为ram使用,增加ram空间。
TI中文支持网


