2021-01-28 12:46 AM
I'm working on a system using the L496ZGP chip, prototyping on a Nucleo board. The system is designed only to have CAN as interface, and it must be able to be upgraded over CAN.
As it is now, by modifying the option byte, I can get the system to reset from the application into the bootloader, and also get it back into the application.
However, this is only possible if, after changing the option byte in the application, the reset button on the board is pressed.
The system resets when I call the HAL_FLASH_OB_Launch() function in the application (why does it have a return value?). Watching the NRST pin, I see it go low and rise again. The LEDs light up, telling me the bootloader is running. I can send the "hello" message and see that is received by the external CAN bus interface and is transmitted to the MCU, so I know that part of the system is up and running.
But the only way I get the system to react is by pressing the reset button and re-sending the wake-up message.
Am I missing something obvious?
I am using the cubeide on ubuntu, and the firmware is version 1.16.0.