#pragma once #define BL_CMD_NOOP 0x00 // Noop #define BL_CMD_ERASE_FLASH 0x10 // Applikationsflash löschen #define BL_CMD_WRITE_FLASH 0x11 // Daten in Flash schreiben #define BL_CMD_SET_FLASH_PTR 0x12 // Setze den Schreibpointer für Flashvorgänge (impliziert BL_CMD_FLUSH) #define BL_CMD_FLUSH 0x13 // Flash Schreibvorgang abschliessen (übrige Daten im Buffer schreiben) #define BL_CMD_GET_FLASH_PARA 0x18 // Frage nach Daten des FLASH #define BL_CMD_REPLY 0x40 struct bl_cmd { uint8_t cmd; uint8_t len; uint8_t chk; char buffer[32]; }; uint8_t bl_send(FILE *stream,struct bl_cmd *cmd); uint8_t bl_recv(FILE *stream,struct bl_cmd *cmd); void bl_boot_application(void); uint8_t bootloader(FILE *stream); #define BL_MCU_AT90USB1286 0x20 #define BL_MCU_AT90CAN128 0x21 #define BL_MCU_ATMEGA1284 0x22 #define BL_MCU_ATMEGA32U4 0x23