BootloaderPIC32/Bootloader_PIC32.X/Source/BootloaderStateMachine.h

49 lines
1.0 KiB
C

#ifndef BOOTLOADER_STATE_MACHINE_H
#define BOOTLOADER_STATE_MACHINE_H
#define SM_NULL_DATA 0
#define PSEUDO_TIMER_VALUE 1500000
#define BOOTLOADER_UNLOCK_CODE 0xA5
enum eBootloaderSMStates
{
// SM_UPDATE_WAIT_STATE,
// SM_IDLE_STATE,
// SM_WAIT_FOR_UNLOCK_STATE,
// SM_WAIT_FOR_NEXT_RECORD
SM_STANDBY_STATE,
SM_CHECK_BOOTLOADER_FLAGS,
SM_CHECK_FIRMWARE_VALIDITY,
SM_ERASE_INTERNAL_FLASH,
SM_WRITE_DATA_TO_PROGRAM_FLASH,
SM_CHECK_PROGRAM_FLASH_VALIDITY,
SM_ERROR_STATE
};
enum eBootloaderEvents
{
SM_TICK_EVENT,
SM_RX_CMD_EVENT,
SM_ABORT_UPDATE
};
void BootloaderSMInit(void);
void BootloaderSM( unsigned int event, unsigned int Data );
void JumpToApp(void);
void DownloadFlash(unsigned int StartAddress, unsigned int EndAddress);
void BootloaderSMSetSPIFlashDetected(int Detected);
void BootloaderSMReadBootloaderFlags();
#endif
//===========================================================================
// End of file.
//===========================================================================