微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 定义大数组,程序跑飞。

定义大数组,程序跑飞。

时间:10-02 整理:3721RD 点击:

Hi:

     我在使用CC2640R2,进行开发的过程中,经常出现程序跑飞,如在函数中定义大数组,或者在写特征值操作中,处理时间较长的逻辑处理时,就容易程序跑飞。

     如何定位这些程序跑飞是如何造成的呢? 程序时跑飞了?还是出发了硬件错误,进入了某个死循环中?

有报错吗?高度怀疑是堆栈溢出,你可以往这个方向排查下

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.

自己定义的数组有多大?逻辑处理操作频繁不?

我的问题也差不多,  因为要透传数据,所以定义了大的数组,然后程序就各种不稳定,  比如在 调用 notify 的时候, 没有返回。直接跑飞了, 但是串口中断和Clock事件可以正常响应。 还有就是 蓝牙连接的时候 频繁 写flash 也会导致  跑飞,现象就是 收不到 state 的变化事件。 比如 从连接到 断开连接收不到事件。  

不知道楼主有思路没有,指点一下

 我的问题是定义大数组,造成ram不够用,解决方法是将cache 作为ram使用,增加ram空间。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top