Hello,
I am currently using Contiki on the CC2650. It's a great combo! I'm currently trying to implement an OTA feature, following the architecture advised by Adam Dunkels:
Basically, I aim to have the internal 128KB flash space be divided between a bootloader and then 2 more partitions of equal size. When the device receives an upgrade, the older of the 2 equally sized slots is overwritten with this new image. Finally, the bootloader is responsible for choosing the most recent image, and booting from it.
I have run in to one major roadblock: I am not entirely sure how write/erase data to the internal (128KB) flash space.
I have seen a forum post indicating that TI was coming out with some sort of NVS module for exactly this type of access. Is that accurate? I didn't see anything in TI-RTOS 2.16 that seemed to fit the bill.
I did, however, see flash.h / flash.c, which featured an API with such promising functions as FlashProgram(uint8_t *pui8DataBuffer, uint32_t ui32Address, uint32_t ui32Count).
But is this really the API that will accomplish what I want? Are these methods work on the 128KB flash? If so, are there any examples/successful implementations that I can learn from?
Thank you for your time,
Mark Solters