diff --git a/src/bootloader.c b/src/bootloader.c index c6c10fe..9429b3b 100644 --- a/src/bootloader.c +++ b/src/bootloader.c @@ -11,6 +11,11 @@ #include "string.h" +// версия начального загрузчика +#define MAJOR_VER 0 +#define MINOR_VER 2 +#define BUGFIX_VER 0 + #define JALR_TO_SPIFI() \ asm volatile( "la ra, 0x80000000\n\t" \ "jalr ra" \ @@ -29,6 +34,7 @@ typedef enum { PACKAGE_SIZE = 0x30, /* Команда размера пакета */ SEND_PACKAGE = 0x60, /* Команда отправить пакет */ + VERSION = 0x90, /* Команда получения версии начального загрузчика */ FULL_ERASE = 0xBADC0FEE /* Команда стирания spifi */ } BotloaderComand; @@ -335,6 +341,15 @@ void Bootloader_Commands() { switch (hBootloader.command) { + case VERSION: + validCommandsTimeout = 0; // Сброс таймаута валидных команд + eraseChipBufferIndex = 0; + Bootloader_UART_WriteByte(ACK); // Подтвердить команду + // отправить все составляющие версии загрузчика + Bootloader_UART_WriteByte((uint16_t)MAJOR_VER); + Bootloader_UART_WriteByte((uint16_t)MINOR_VER); + Bootloader_UART_WriteByte((uint16_t)BUGFIX_VER); + break; case PACKAGE_SIZE: validCommandsTimeout = 0; // Сброс таймаута валидных команд eraseChipBufferIndex = 0;