Program to update the D7A modem's firmware.
Dependencies: modem_ref_helper DebouncedInterrupt
Diff: main.cpp
- Revision:
- 26:7fc24677a950
- Parent:
- 25:cf50a4098334
- Child:
- 27:25be84b17eec
--- a/main.cpp Fri Oct 20 13:35:45 2017 +0000 +++ b/main.cpp Mon Jan 29 18:08:31 2018 +0000 @@ -122,7 +122,11 @@ int32_t cup_slack = 0; // Start & initialize +#ifdef DEBUG_LED DBG_OPEN(DEBUG_LED); +#else + DBG_OPEN(NC); +#endif PRINT("\r\n" "-----------------------------------------\r\n" "------------- D7A WM Updater ------------\r\n" @@ -159,19 +163,21 @@ { // Update bootloader PRINT("\r\n" - "/!\\ This modem has a 4.7.x bootloader firmware. /!\\\r\n" + "/!\\ This modem has a bootloader firmware. /!\\\r\n" "/!\\ Step 2/2: Upgrading to full modem firmware. /!\\\r\n" ); + /* cup_slack = check_slack(rev.cup_max_size, cup->data_size); if (cup_slack < 0) { - PRINT("/!\\ Not enough space for bootloader /!\\\r\n"); + PRINT("/!\\ Not enough space for firmware /!\\\r\n"); break; } - - cup_start_update(cup_slack); + */ + + cup_start_update(0); } else { @@ -185,13 +191,6 @@ break; } - /* - if (check_parameter("Firmware id... ", rev.fw_version.id&0x7F, cup->fw_id)) - { - print_check_rev(); - break; - }*/ - if (version_old != version_new) { if (check_parameter("Firmware version major...", rev.fw_version.major, cup->target_fw_major)) @@ -200,24 +199,22 @@ break; } - if (check_parameter("Firmware version minor...", rev.fw_version.minor, cup->target_fw_minor)) + PRINT("Checking Firmware version minor... "); + if (rev.fw_version.minor < cup->target_fw_minor) { + PRINT("Failed. (0x%08X != 0x%08X)\r\n", rev.fw_version.minor, cup->target_fw_minor); print_check_rev(); break; } + else + { + PRINT("OK. (0x%08X)\r\n", rev.fw_version.minor); + } } else { PRINT("\r\nYour modem is up to date! (v%d.%d.%d)\r\n", rev.fw_version.major, rev.fw_version.minor, rev.fw_version.patch); - - PRINT("\r\n" - "This new version enables the LoRaWAN stack on the modem.\n" - "If you want to use LoRaWAN with the Dash7Board, please contact us at support@wizzilab.com\n" - "We will enable your device to work with it.\n" - "A demo application is available here to get started with the LoRaWAN stack:\n" - "https://os.mbed.com/teams/WizziLab/code/D7A_1x_demo_LoRaWAN/\n" - ); break; } @@ -226,8 +223,8 @@ if (cup_slack < 0) { PRINT("\r\n" - "/!\\ Not enough space for full modem firmware binary /!\\\r\n" - "/!\\ Checking for bootloader firmware /!\\\r\n" + "/!\\ Not enough space for full modem firmware binary. /!\\\r\n" + "/!\\ Checking for bootloader firmware. /!\\\r\n" "\r\n" ); @@ -282,12 +279,15 @@ } else { +#ifdef DEBUG_BUTTON PRINT("\r\nReseting firmware: v%d.%d.%d --> v%d.%d.%d\r\n", rev.fw_version.major, rev.fw_version.minor, rev.fw_version.patch, cup->fw_major, cup->fw_minor, cup->fw_patch); -#ifdef DEBUG_BUTTON PRINT("PRESS USER BUTTON TO START UPGRADE...\r\n"); button_user.wait(); +#else + // No button to stop code + break; #endif }