Fix bootloader
This commit is contained in:
parent
c0c42339f1
commit
456b4a8b70
2 changed files with 11 additions and 4 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue