如题:
以下是调用的函数,出现的次很多,倒至数据通信超时。
uint8_t label_writedata(uint8_t *data, uint8_t len)
{
// Do a write
attWriteReq_t req;
uint8_t status;
// Allocate GATT write request
req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, len, NULL);//分配内存
// If successfully allocated
if (req.pValue != NULL)
{
// Fill up request
req.handle = 0x17;
req.len = len;
memcpy(req.pValue, data, len);
req.sig = 0;
req.cmd = 1;
// Send GATT write to controller
status = GATT_WriteNoRsp(connHandle, &req);//写ble从机
//status = GATT_WriteLongCharValue(connHandle, &req, selfEntity);
// If not sucessfully sent
if ( status != SUCCESS )
{
// Free write request as the controller will not
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
}
else
{
Util_restartClock(&startConClock,MR_CONNECT_EVT_PERIOD);//add lhj 191115
}
}
else
{
//GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);//del lhj 191202
status = FAILURE;
}
return status;
}
Viki Shi:
你是不是任务较多?CC2640R2F内存不高,尝试降低申请频次是否有改善?
huijun li:
回复 Viki Shi:
GATT_bm_alloc这个函数 ,正常传输数据时是7ms调用一次,发送200个字节,传输时调用的比较频fan.
是不是内存不够啊。能设置大些嘛
Viki Shi:
回复 huijun li:
可以修改heap size
huijun li:
回复 Viki Shi:
heap size 具体是在哪个文件里面啊。
Viki Shi:
回复 huijun li:
参考下面链接:
dev.ti.com/…/memory_management.html
www.ti.com/…/swra537a.pdf
huijun li:
回复 Viki Shi:
好的谢谢了!
huijun li:
回复 Viki Shi:
您好:
GATT_bm_alloc(),如果调用失败连续很多次都失败,会不会造成死机啊。我在测试发现偶儿会死机,找不到具体原因。只是自己的超时也不起作用了。
huijun li:
回复 Viki Shi:
您好:如果出现死机时,有没有异常函数,程序 会停在异常函数里面嘛。有没有这样的函数啊。
Viki Shi:
回复 huijun li:
你单步调试看看程序停在哪边
huijun li:
回复 Viki Shi:
我们现在的工程改造的仿真不起来,都是通过串品打印信息来判断的。有没有像stm32中一样有异常函数啊
TI中文支持网


