/* * File: ChaletPowerRelay.h * Author: JF * * Created on November 30, 2018, 7:33 PM */ #ifndef BOOTLOADERINTERFACE_H #define BOOTLOADERINTERFACE_H #include "define.h" enum eBootloaderStates { BOOTLOADER_STANDBY_STATE, BOOTLOADER_ACTIVE_STATE, BOOTLOADER_ERASE_FLASH_STATE, BOOTLOADER_RECEIVING_FIRMWARE_STATE, BOOTLOADER_SENDING_FIRMWARE_COPY_STATE, BOOTLOADER_MAX_STATE }; enum eBootloaderStateMachineEvents { BOOTLOADER_TICK_EVENT, BOOTLOADER_NEW_CMD_EVENT, BOOTLOADER_TIMEOUT_EVENT, BOOTLOADER_MAX_EVENT }; enum eBootloaderStateMachineCmds { BOOTLOADER_SM_ACTIVATE_CMD, BOOTLOADER_SM_ABORT_CMD, BOOTLOADER_SM_ERASE_FLASH_CMD, BOOTLOADER_SM_INIT_UPLOAD_CMD, BOOTLOADER_SM_NEW_DATA_CHUNK_CMD, BOOTLOADER_SM_UPLOAD_FINISHED_CMD, BOOTLOADER_SM_EXECUTE_UPGRAGE_CMD, BOOTLOADER_SM_INVALID_CRC_CMD }; extern char BootloaderBuffer[200]; int BootloaderInterfaceInit(); void BootloaderExecuteCmd(char Cmd); void BootloaderCRCError(char Cmd, int RxCRC, int ExpectedCRC); void BootloaderInterfaceStateMachine(); void BootloaderInterfaceTick(); void BootloaderIterfaceStateMachine(int Event, int Param); void BootloaderResetStateMachine(); void BootloaderActivateBootloader(); void BootloaderDeactivateBootloader(); #endif /* BOOTLOADERINTERFACE_H */