I am using K2o MCU. I want to upgrade firmware over The Air (OTA). Can anybody suggest me How to accoplish this task?
What communication do you have to the K20?
Thanks for reply!
Communication is over TCP/IP.
How do you connect the K20 to the network?
- RF - which module/controller?- Ethernet - which controller?
- Other ?
And do you have additional storage available? Eg SPI Flash.
I am using GSM module SIM900A for communication. I have finished TCP/UDP communication over GPRS using SIM900A module.
Now what I am looking for is OTA firmware upgrade. The case will be like I burn my application code in flash as version 1.0 and there is requirement of upgrade from version 1.0 to version 1.1.
There are four ways to do this on the K20:
1. Have a boot loader mode that includes the communication capability and transfer the (new) application using it and save it to a different area of the Flash. The boot loader jumps to the application when ready and generally on each new start. The application will probably need to duplicate much of the communication operation but the boot loader is 'standalone' and doesn't need an application to start with the first time.
2. The same as 1 but allow the application to share the generic operation (comminication stack) as a library. More difficult to configure but allows much smallr applications.
3. Use a small loader that is just responsible for copying valid software from a defined area in internal Flash (where new code is received to) to the application area. This requires the first code to be [boot + application] since the boot part can not operate alone; the application size is however limited to about half the available Flash since both the origial application (which copies the new one) has to exist together with teh new code until the application swap has completed.
4. The same as 3 but using an external memory device to save the new application to (eg. SPI Flash). The advantage is that the application size is not restricted to half the internal Fash size.
The uTasker "Bare-Minimum" loader is suitable for 3/4: http://www.utasker.com/docs/uTasker/uTasker_BM_Loader.pdf
Retrieving data ...