EasyTasks has some built in CGI's. Some of them are for configuration purposes and one for firmware update.
In order to update firmware safely, we are going to need to allocate the file in any media. Usually a SPI Flash is very useful for this purpose, but we can use another resources like RAM or internal Flash. This media will be embedded in the File System with the drivers (already available for SPI Flash, RAM and Flash).
The firmware file is encrypted and with a digital signature. It can't be modified or decompiled, so we keep our firmware integrity.
Once we have our binary file linked, we must encrypt and sign our file using the firmware toolkit:
This is going to generate the file "firmware.fmw". The file "myHeader.h" must contain the next definitions:
#define DEVICE_NAME "IPefono"
This information if embedded in our firmware file. It won't let to update firmwares between different devices and the user will be able to check the version he uploaded before updating the system.
Once we have the "firmware.fmw" file, we can update the firmware using our Web Browser:
The system will check the digital signature, and if it is valid, it will display the next page.
Now, we can check the version we uploaded and some parameters like build dates and build number, and then to accept or to reject this update.