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.

CC1350: Maintaining a BLE Connection across a NVS Write Operation

Part Number: CC1350


Hello,

Our application uses simplelink_cc13x0_sdk_2_10_00_36 and is based on the simple peripheral example. The application is required to write data to flash and the interface NVS interface and library is being used to read and write flash.  The flash reads and writes work as expected.

What we are experiencing is that when NVS_Write is called, the BLE connection fails. I believe this is because during an NVS_Write operation, interrupts are turned off and the BLE stack misses some deadline and declares the connection to be broken.

Does the above rationale sound correct about why the BLE connection is being lost? If so, is there anything we can do to maintain the BLE connection while writing flash.  If this does not sound correct, are there alternative explanations?

Thanks,

Bill

  • Hi William,

    Have you looked into the SNV section of the BLE Developer's Guide: dev.ti.com/.../platform.html
    That includes info on using the flash through the stack so that the BLE stack scheduler can coordinate better with the writes/reads. There is a section of IDs allocated for storing customer data.

    Regards,
    Katie
  • Thank you. The osal_snv_read and osal_snv_write functions work as described and the BLE connection is preserved.

    It took me a little to grasp the intent of the IDs and how SNV wants to manage that area with no direct correlation to memory address. It looks like I can have up to 16 IDs (0x80 through 0x8F) with each ID being associated with up to 255 bytes of data (length is uint8). This will meet my needs.