Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-11151

CC2340R5: Canceling ongoing OAD via BTool causes retryOAD to fail

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • SimpleLink Lowpower SDK F3 BLE5 Stack
    • BLE_LOKI-698
    • BLE Stack BLE5-3.2.1 RC16
    • Hide
      BLE Stack BLE5-3.2.2
      BLE Stack BLE5-3.2.2 RC3
      Show
      BLE Stack BLE5-3.2.2 BLE Stack BLE5-3.2.2 RC3
    • CC23xx

      Device & Configuration affected

      • CC2340R5
      • Onchip & Offchip OAD
      • Fail Reproducibility 100% 

      Steps to reproduce

      1. After creating a connection with the CC2340R5
      2. Start OAD 
      3. Click Cancel
      4. Click Send again
      5. Device disconnect and OAD Fails

      Workaround:

      Behavior is occuring due to the double use of flash_init(). For a workaround, the implementation of the following functions must be replaced in this file source\ti\bleapp\util\sw_updatesw_update.c

      Status_t SwUpdate_Open(swUpdateSource_e source)
      {
      Status_t status = SUCCESS;

      if(NULL == pSwUpdateModuleGlobalData)
      {
      pSwUpdateModuleGlobalData = (swUpdateModuleGlobalData_t *)ICall_malloc(sizeof(swUpdateModuleGlobalData_t));
      // Initialize the flash interface
      flash_init();
      if(NULL == pSwUpdateModuleGlobalData)

      { return(FAILURE); }

      }

      // This variable controls whether the OAD module uses internal or external flash memory
      pSwUpdateModuleGlobalData->pageSize = hasExternalFlash()?EFL_PAGE_SIZE:INTFLASH_PAGE_SIZE;
      pSwUpdateModuleGlobalData->pageMask = hasExternalFlash()?(~EXTFLASH_PAGE_MASK): (~INTFLASH_PAGE_MASK);

      status = flash_open();
      if(status != FLASH_OPEN)

      { return(NV_OPER_FAILED); }

      status = readFlash(HDR_OFFSET, (uint8_t *)&(pSwUpdateModuleGlobalData->primaryHdr),sizeof(pSwUpdateModuleGlobalData->primaryHdr));

      return (status);
      }

      And

      void SwUpdate_Close(void)

      { flash_close(); }

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: