Controller stalls at NVIC_EnableIRQ(CAN_TX_IRQn) after jump to application from a bootloader.
Hi,
I am using a CAN bootloader to update my application. But after flashing the application and jumping from the bootloader to the reset vector of the app, the program stalls after calling NVIC_EnableIRQ(CAN_TX_IRQn). Is there a problem that the bootloader already used the CAN peripheral?
The bootloader resets and stops the peripheral before the jump.
Controller is a STM32F303RE.
Before NVIC_EnableIRQ is called, the peripheral registers have the following values:
MCR = 0x0001004c
MSR = 0x00000c00
TSR = 0x1c000003
RF0R, RF1R = 0
IER = 0x00008f03
ESR = 0
BTR = 0x012d000f
Update:
I looks like the application calls the old interrupt routine address of the bootloader


.text.TgtCAN1TXIsr
0x08009be8 0xc VisualGDB/Debug/target.o
0x08009be8 TgtCAN1TXIsr