I think the title is self explanatory. I have a design based on JN5168 using Zigbee HA profile. I have no external flash but I’d like to be able to update the firmware over the air. Can I do it just with the 256kB internal flash? If so, could you point me to any documentation that I could use further on?
Regards,
Witek
Hi Witek,
Usually the Zigbee Applications have more than 200k flash usage, so the over the air programming requires an external flash for JN5168.
For kw41, where the flash memory is 512k, we can split the internal flash memory in two sections, one being used for current application, and the second for storing the received image via an OTA process.
Regards,
Ovidiu
I've noticed that jn5169 is pinout compatible with jn5168 so I could use jn5169 instead of external flash as it has 512kb of flash and the problem is solved.
So assuming my app binary is less than 256KB can I use OTA on JN5169 without external flash? Can you point be to documentation that would decribie how to achieve it, how to split flash etc?
Thanks,
Witek
Thanks for a quick response. Indeed the image of my application is 142kB even though I don’t have a lot of application code so it seems like vast majority of it is a JenOS and Zigbee stack.
So I have this idea... I have 8 sectors of flash 32kB each. Presumably I would be able to play with a linker a bit so in sectors 0-5 I put all the jenOS and Zigbee stack. Basically everything that is delivered in the SDK and therefore I don’t change it would need to sit in this first 192kB. In sector 6 I would put my application code limited to 32kB and then when updating I would transfer only this application code over the air and put it in sector 7 invalidating sector 6... Do you think it has a chance to work at all?
Regards,
Witek.
Hi Witold,
In theory this is possible, but should be careful with the address of each function accessed from other sections.
My recommendation is to define a list of pointers for each function accessed from external area. The list should be located at a fix address, let say at the beginning at the section and each call from external to be done via the corresponding pointer to function.
Regards,
Ovidiu