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

GATT_bm_alloc GATT_bm_free

你好:

我咨询下关于 GATT_bm_alloc 和 GATT_bm_free 这两个函数的用法

1.  例程中经常有这样的用法

req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, len, NULL);
// If successfully allocated
if (req.pValue != NULL)
{
// Fill up request
connIndex = multi_role_mapConnHandleToIndex(connHandle);
req.handle = discInfo[connIndex].charWriteHdl;
req.len = len;
memcpy(req.pValue, pData,req.len);
req.sig = 0;
req.cmd = 0;

// Send GATT write to controller
status = GATT_WriteCharValue(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);
}
}

        GATT_bm_alloc 返回的地址  和   GATT_bm_free 释放的地址不是同一个,是用GATT_bm_free 的第二个参数进行识别,然后真正释放的是 req.pValue 的地址吗?

2. 如果GATT_bm_alloc 调用后,if (req.pValue == NULL),  是否还需要调用GATT_bm_free  释放内存?

Viki Shi:

1、GATT_bm_alloc 返回的地址和GATT_bm_free 释放的地址是同一个,第二个参数是申请分配缓冲区的消息的操作码

2、不需要

赞(0)
未经允许不得转载:TI中文支持网 » GATT_bm_alloc GATT_bm_free
分享到: 更多 (0)