Firmware remote update

Dependencies:   EthernetNetIf FirmwareUpdater HTTPClient mbed

Committer:
vinajarr
Date:
Thu Nov 13 07:22:23 2014 +0000
Revision:
0:a3eb8d59a819
Firmware update remote

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vinajarr 0:a3eb8d59a819 1 #include "mbed.h"
vinajarr 0:a3eb8d59a819 2 #include "FirmwareUpdater.h"
vinajarr 0:a3eb8d59a819 3 #include "EthernetNetIf.h"
vinajarr 0:a3eb8d59a819 4
vinajarr 0:a3eb8d59a819 5 EthernetNetIf eth;
vinajarr 0:a3eb8d59a819 6 FirmwareUpdater fwup("http://mbed.org/media/uploads/vinajarr/", "firm2", true);
vinajarr 0:a3eb8d59a819 7
vinajarr 0:a3eb8d59a819 8 DigitalOut myled(LED1); // LED Rojo PB22
vinajarr 0:a3eb8d59a819 9
vinajarr 0:a3eb8d59a819 10
vinajarr 0:a3eb8d59a819 11 // There are 2 files for the firmware.
vinajarr 0:a3eb8d59a819 12 // 1. firm.txt : firmware version file.
vinajarr 0:a3eb8d59a819 13 // 2. firm.bin : firmware binary file.
vinajarr 0:a3eb8d59a819 14
vinajarr 0:a3eb8d59a819 15 void check_newfirm() {
vinajarr 0:a3eb8d59a819 16 if (fwup.exist() == 0) {
vinajarr 0:a3eb8d59a819 17 printf("Found a new firmware.\n");
vinajarr 0:a3eb8d59a819 18 if (fwup.execute() == 0) {
vinajarr 0:a3eb8d59a819 19 printf("Update succeed.\n");
vinajarr 0:a3eb8d59a819 20 printf("Resetting this system...\n\n\n\n\n");
vinajarr 0:a3eb8d59a819 21 fwup.reset();
vinajarr 0:a3eb8d59a819 22 } else {
vinajarr 0:a3eb8d59a819 23 printf("Update failed!\n");
vinajarr 0:a3eb8d59a819 24 }
vinajarr 0:a3eb8d59a819 25 }
vinajarr 0:a3eb8d59a819 26 else{
vinajarr 0:a3eb8d59a819 27 printf("Not found a new firmware.\n");
vinajarr 0:a3eb8d59a819 28 printf("actual version: %d \n",fwup.get_);
vinajarr 0:a3eb8d59a819 29 }
vinajarr 0:a3eb8d59a819 30 }
vinajarr 0:a3eb8d59a819 31
vinajarr 0:a3eb8d59a819 32 int main(void) {
vinajarr 0:a3eb8d59a819 33
vinajarr 0:a3eb8d59a819 34 eth.setup();
vinajarr 0:a3eb8d59a819 35
vinajarr 0:a3eb8d59a819 36 while(1){
vinajarr 0:a3eb8d59a819 37
vinajarr 0:a3eb8d59a819 38 check_newfirm();
vinajarr 0:a3eb8d59a819 39
vinajarr 0:a3eb8d59a819 40 // Your application is here.
vinajarr 0:a3eb8d59a819 41
vinajarr 0:a3eb8d59a819 42 myled = 1;
vinajarr 0:a3eb8d59a819 43 wait(0.1);
vinajarr 0:a3eb8d59a819 44 myled = 0;
vinajarr 0:a3eb8d59a819 45 wait(0.2);
vinajarr 0:a3eb8d59a819 46
vinajarr 0:a3eb8d59a819 47 }
vinajarr 0:a3eb8d59a819 48
vinajarr 0:a3eb8d59a819 49
vinajarr 0:a3eb8d59a819 50
vinajarr 0:a3eb8d59a819 51 }