Fix bootloader

This commit is contained in:
Valentin Dabstep 2025-05-23 09:12:06 +03:00
parent c0c42339f1
commit 456b4a8b70
2 changed files with 11 additions and 4 deletions

View file

@ -49,6 +49,8 @@ void setup() {
// // Проверка флага обновления
// erase_sector(7);
// flash_program_word(FLAG_BOOT,0xDEADBEEF,BYTE32);
// flash_record = load_params();
// write_param(firmw,UPDATE_FLAG);
flash_record = load_params();
// write_param(addr_id,33);
// flash_record = load_params();
@ -56,7 +58,7 @@ void setup() {
мы сохраняем как флаг, так и аддрес устройства к которому будет обращатлься во
время прошивки */
if(*(volatile uint32_t*)(FLAG_BOOT) == UPDATE_FLAG) {
if(flash_record[firmw].value == UPDATE_FLAG) {
fw_update = true;
for(int i = 0; i < 5;i++){
GPIOC->ODR ^= GPIO_ODR_OD10; // Индикация обновления
@ -103,10 +105,13 @@ void process_can_message(const CAN_message_t &msg) {
case BOOT_CAN_END: // Завершение передачи
if(verify_firmware()) {
send_ack(0xAA);
erase_sector(7); // Сброс флага
HAL_Delay(500);
// erase_sector(7); // Сброс флага
write_param(firmw,0); //reset flasg
NVIC_SystemReset();
} else {
send_ack(0x55);
erase_flash_pages(); //if error
}
break;
}