1,还是很老的问题,从CC2530的z-stack到现在最新的CC2652。
在函数MAC_CbackEvent中需要加入一段代码
//fix the bug of msdu index erro when MAC_MCPS_DATA_CNF if (event == MAC_MCPS_DATA_CNF) { uint8 *originalMsdup = (uint8 *) pData->dataCnf.pDataReq + sizeof(macMcpsDataReq_t) + MAC_DATA_OFFSET; pData->dataCnf.pDataReq->msdu.len -= (uint8) (originalMsdup - pData->dataCnf.pDataReq->msdu.p); pData->dataCnf.pDataReq->msdu.p = originalMsdup; }
否则使用AF_DataRequest在Inter PAN发送时,不会有Data Confirm消息,破坏了每个AF_DataRequest必有AF_DATA_CONFIRM消息的逻辑结构。
2,协调器在设备入网时,有很大概率出现入网设备多次Associate Request。通过在MAC_MLME_COMM_STATUS_IND打断点发现,协调器在向入网设备回复Associate Response的时候,发生0xe1错误,该错误为信道忙,但是几乎都是一个新设备第一次关联协调器会出现这个现象。只要这个设备关联过该协调器,下次就能一次性关联。