2020-03-19 02:48 PM
Our system communicates primarily through CAN bus, we issue a command to the micro controller and then it will reset and jump into the bootloader.
From there we have implemented the protocol as described in AN3154.
This looks like it is working as intended, we can verify that all bytes for the new firmware where written.
The issue I am currently facing is on exit.
To exit we request the bootloader to jump to the application (at the start of flash).
This seems to work, we can communicate with our code and the firmware seems to function as normal.
The issue I am running into is that two interrupts do not work correctly after this “soft�? reset.
They are GPIO interrupts, lines driven by two external chips, they trigger when there is new data for us to read from them.
I have determined this is not a code problem, since if I reset the module (reset button connected to NRST), everything works as expected.
Other interrupts are not impacted by this issue, we are using CAN, SPI and I2C interrupts and I have confirmed that they are working normaly. I have code if needed. thank you
2020-03-19 03:00 PM
Are you jumping to the bootloader from within an interrupt? Are you disabling interrupts before making the jump?
Posting your jump to bootloader code might be useful.