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

6678 工程中加入两句读数据的代码 CCS就会卡死

TI 的工程师你们好 这个问题之前提问过了 但是依旧没有解决 之前的解决方法并不正确

我目前还是在调试6678 自己的自制板 使用了OpenEM + sysbios

目前发现一个问题 下面的这段代码如果取消那两句代码的注释 程序就会卡死。具体表现为程序开始运行之后没有任何输出,

CCS里点击suspend没有反应,程序无法暂停,只能点击terminate终止调试,而且点击终止调试也要卡一段时间程序才会退出

for(int i = 0; i < numFeatures; i++)
{
index <<= 1;

     // fp0 = myImg[bbox[0] + off[0]];
     // fp1 = myImg[bbox[0] + off[1]];

if(fp0 > fp1)
{
index |= 1;
}

off += 2;
}

代码中 myImg 和 bbox  以及 off是三个数组 myImg 放在私有L2中 , bbox放在msm中 , off放在了DDR中。

这段代码位于openEM 的my_processJob函数中 意味着这段代码将在所有核心并行运行。 但是由于程序让不同的核心工作在不同的数据段

所以不同核心读取的bbox值和off值是不同的。

以前我是将myImg也放入了msm中 程序也会卡死 我以为是多核同时读取msm出现了问题 但是现在各个核心读取myImg数据之前

我使用了QDMA将myImg从msm中搬运到了各个核心的私有L2中 因此此时各个核心会从自己的私有L2里读取数据 所以理论上没有冲突的问题

但是现在程序只要带着这两句话运行就会卡主不动了,只要注释掉这两句话就会正常运行。

所以想请问下TI的工程师 这个问题有没有什么可能的原因,有没有什么解决办法以及可能的调试排查方法?

littleWhite:

把stack改大一点试试

赞(0)
未经允许不得转载:TI中文支持网 » 6678 工程中加入两句读数据的代码 CCS就会卡死
分享到: 更多 (0)