Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rfc4f469fe234371e8f2b9a0625acc66faa6899de -r893caf9f58a08a2bd31068806e09603041d64add --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision fc4f469fe234371e8f2b9a0625acc66faa6899de) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 893caf9f58a08a2bd31068806e09603041d64add) @@ -10,7 +10,7 @@ #include "sys_core.h" // To disable RAM and Flash ECC #include "sys_mpu.h" // To disable MPU -#include "CommBuffers.h" +#include "Download.h" #include "FPGA.h" #include "ModeStandby.h" #include "NVDataMgmt.h" @@ -21,7 +21,6 @@ #define WAIT_FOR_UPDATE_FROM_UI_MS 1000 -static SW_UPDATE_CMD_STATUS_T SWUpdateCmdStatus; static MODE_STANDBY_STATE_T standbyCurrentState; static U32 waitForUpdateMsgStartTimeMS; @@ -34,26 +33,23 @@ void initStandbyMode( void ) { - standbyCurrentState = STANDBY_CHECK_FOR_UPDATE_STATE; + standbyCurrentState = STANDBY_CHECK_FOR_UPDATE_STATE; waitForUpdateMsgStartTimeMS = getMSTimerCount(); - - memset( &SWUpdateCmdStatus, 0x0, sizeof( SW_UPDATE_CMD_STATUS_T ) ); } U32 transitionToStandbyMode( void ) { initStandbyMode(); + clearCommBuffersForNextUpdate(); return 0; } U32 execStandbyMode( void ) { - getSWUpdateCmdStatus( &SWUpdateCmdStatus ); - // If the bootloader is the standby mode and and update request is received at any time, request a transition to update mode // TODO what if we are in the check image process, should we transition to update upon the request? - if ( ( UPDATE_CMD_START == (SW_UPDATE_CMD_T)SWUpdateCmdStatus.updateCmd ) || ( TRUE == hasUpdateBeenRequested() ) ) + if ( ( UPDATE_CMD_START == getSWUpdateCommandState() ) || ( TRUE == hasUpdateBeenRequested() ) ) { // TODO if we are here because of the FPGA register, clear it so it won't be called again. requestNewOperationMode( MODE_UPDATE ); @@ -86,7 +82,7 @@ { MODE_STANDBY_STATE_T state = STANDBY_CHECK_FOR_UPDATE_STATE; - switch ( SWUpdateCmdStatus.updateCmd ) + switch ( getSWUpdateCommandState() ) { case UPDATE_CMD_ABORT: state = STANDBY_IDLE_STATE; @@ -101,8 +97,6 @@ break; } - clearSWUpdateBuffer( SW_UPDATE_COMMAD ); - if ( TRUE == didTimeout( waitForUpdateMsgStartTimeMS, 3000000 /*WAIT_FOR_UPDATE_FROM_UI_MS*/ ) ) // TODO a high number if timeout for development { state = STANDBY_CHECK_FW_AND_FPGA_IMAGES_STATE;