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

i2s buf的初始化导致设备无法被连接上

你好,碰到一个很奇怪的问题,

协议栈 3.20  multi_role 例程

使用手机 nrf connect连接2640r2

    I2S_init();
…..//中间略去
    uint8_t k;
    /* Half the transactions are initially stored in the read queue */
   for(k = 0; k < NUMBUFS/2; k++) {
        I2S_Transaction_init(i2sTransactionList[k]);
        i2sTransactionList[k]->bufPtr  = i2sBufList[k];
        i2sTransactionList[k]->bufSize = BUFSIZE;
        List_put(&i2sReadList, (List_Elem*)i2sTransactionList[k]);
    }
    /* The second half of the transactions is stored in the write queue */
    for(k = NUMBUFS/2; k < NUMBUFS; k++) {
        I2S_Transaction_init(i2sTransactionList[k]);
        i2sTransactionList[k]->bufPtr  = i2sBufList[k];
        i2sTransactionList[k]->bufSize = BUFSIZE;
        List_put(&i2sWriteList, (List_Elem*)i2sTransactionList[k]);
    }
    I2S_setReadQueueHead(i2sHandle,  (I2S_Transaction*) List_head(&i2sReadList));
    I2S_setWriteQueueHead(i2sHandle, (I2S_Transaction*) List_head(&i2sWriteList));
问题出在加粗的部分,去掉加粗的部分,连接正常,否则软件一直转圈无法连接。
程序运行正常!
非常感谢。

Alvin Chen:

你适当减小所用到的buf ,内存不足

admin admin1:

回复 Alvin Chen:

你好,原i2s使用的内存为128 字节* 6 ,后改16*6,软件还是转圈,但是程序这边确实进到GAP_LINK_ESTABLISHED_EVENT事件中了。如果确实是内存原因,怎么查看动态内存使用情况,谢谢

Alvin Chen:

回复 admin admin1:

在CCS的debug情况下里面的 view 菜单下有memory 。你可以查看

Viki Shi:

回复 admin admin1:

可以用ROV查看动态内存使用情况:processors.wiki.ti.com/…/Runtime_Object_View_(ROV)

admin admin1:

回复 Viki Shi:

你好,有无 IAR环境下的内存查看工具?

Viki Shi:

回复 admin admin1:

可以查看map文件

admin admin1:

回复 Viki Shi:

你好,这个map文件我一直在追踪,】
95 000 bytes of readonlycode memory16 060 bytes of readonlydata memory11 063 bytes of readwrite data memory
ram 才用了11k,实际可用是20k把?!,i2s缓存 128字节*6不到1k啊,我在其他地方减少了ram使用,并且把i2s缓存128字节*6改成32字节*6连接 并且notify ok。如 Alvin Chen判断确实是内存原因,但是明明够的 不是吗?

Alvin Chen:

回复 admin admin1:

不是总共的RAM是你那个task的申请的 Task size,我怀疑是这个原因

admin admin1:

回复 Alvin Chen:

Task size 不够?i2s 的这个空间是没有放在task里面的,也就是说 task size 应该是够用的。默认设置是610,我后面改到944 。但是无论task size无论设置成多少,如果i2s的buf不改动,就是没办法连接。。。那么是不是内存用在了其他地方(我自己添加的程序除了i2s就没有占用太多ram的东西了)?

赞(0)
未经允许不得转载:TI中文支持网 » i2s buf的初始化导致设备无法被连接上
分享到: 更多 (0)