This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2652R: CC13x2 CC26x2 SDK Zigbee Known Issues and Fixes

Guru 100780 points

Replies: 1

Views: 1155

Part Number: CC2652R

simplelink_cc13x2_26x2_sdk_3_40_00_02

1. Removing board constraints in SysConfig with "Custom Board" button causes unexpected build or runtime behavior.

Refer to this E2E FAQ: https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz/f/156/t/864899 

2. Joining device (ZR/ZED) ignores PAN ID config settings and incorrectly associates when two ore more Zigbee networks respond to a beacon.

Apply the following code changes to bdb.c:

void bdb_filterNwkDisc(void)
{
  networkDesc_t* pNwkDesc;
  uint8_t i = 0;
  uint8_t ResultCount = 0, ResultTotal = 0;         //CHANGE THIS LINE

  pBDBListNwk  = nwk_getNwkDescList();
  nwk_desc_list_release();

  pNwkDesc = pBDBListNwk;
  while (pNwkDesc)
  {
    ResultCount++;
    pNwkDesc = pNwkDesc->nextDesc;
  }
  ResultTotal = ResultCount;                        //ADD THIS LINE

  if(pBDBListNwk)
  {
    pNwkDesc = pBDBListNwk;

    if(pNwkDesc)
    {
      for ( i = 0; i < ResultTotal; i++, pNwkDesc = pNwkDesc->nextDesc )        //CHANGE THIS LINE
...

3. A malloc with size of zero will cause HEAPMGR_ASSERT

Place heapInitialize=1 after HEAPMGR_INIT calls HEAPMGR_MALLOC(0) in rtos_heaposal.h

4. Incorrect source offset results in NV corruption

Make the following change inside of nvocmp.c:

static bool NVOCMP_findSignature(uint8_t pg, uint16_t *pSrcOff)
{
  uint16_t i;
  uint16_t rdLen;
  uint8_t readBuffer[NVOCMP_XFERBLKMAX];
  uint16_t srcOff = *pSrcOff;
  uint16_t endOff = NVOCMP_PGDATAOFS + NVOCMP_ITEMHDRLEN - 1;

  while(srcOff > endOff)
  {
    rdLen = (srcOff - NVOCMP_XFERBLKMAX > endOff) ? NVOCMP_XFERBLKMAX : srcOff - endOff;
    srcOff -= rdLen;
    NVOCMP_read(pg, srcOff, readBuffer, rdLen);
    for(i = rdLen; i > 0; i--)
    {
      if(readBuffer[i-1] == NVOCMP_SIGNATURE)
      {
        // Found possible header, resume normal operation
        NVOCMP_ALERT(FALSE, "Found possible signature.")
        srcOff += (i);          //CHANGE THIS LINE
        *pSrcOff = srcOff;
        return(true);
      }
    }
  }
  return(false);
}

Regards,
Ryan

To better aid the community, please click on the "This Resolved my issue" button whenever a post answers your question!

1 Reply

  • Good to know, thanks!

    Regards,
    Toby

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.