Updating firmware on a piece of hardware in your system is essential to keep it up to date. VSCP can handle both it’s own firmware loading algorithm or uP specific algorithms for greatest flexibility. But how does it work? Here is a short step by step walk through.
1.) A module should be updated with new firmware.
2.) The MDF (module description file) of the module is read form the manufacturers web server.
3.) By reading standard register 0x97 (or 0xffffff97 for Level II devices) the bootloader algorithm the module uses can be determined.
This information is also in the MDF under the boot tag
<boot> <algorithm>1</algorithm> <!-- Size of boot block/sector --> <blocksize>20</blocksize> <blockcount>66</blockcount> </boot>
4.) The MDF also contain available firmware for this module under the firmware tag.
<firmware path="url where firmware can be found" format="intelhex8|intelhex16|intelhex32" size="Optional size in bytes for firmware file (not image)" date="ISO date year-month-day when released." version_major="x" version_minor="y" version_subminor="z"> <description lang="en" >Firmware description</description> </firmware>
One can now let a user select the firmware to load or load the latest available firmware.
The same security applies to firmware upgrades as for the rest of the system.