How to flash STM32H725 using FDCAN Bootloader?
I went through the following documentation available from STM on FDCAN bootloader:
AN5405 - FDCAN protocol used in the STM32 bootloader
AN2606 - STM32 microcontroller system memory boot mode
rm0468 - Reference manual
Jump to bootloader code used:
(Reference link : https://community.st.com/s/article/STM32H7-bootloader-jump-from-application)
void ASYSTR_jump_to_bootloader(void)
{
uint32_t i=0;
void (*SysMemBootJump)(void);
/* Set the address of the entry point to bootloader */
volatile uint32_t BootAddr = 0x1FF09800;
/* Disable all interrupts */
__disable_irq();
/* Disable Systick timer */
SysTick->CTRL = 0;
/* Set the clock to the default state */
HAL_RCC_DeInit();
/* Clear Interrupt Enable Register & Interrupt Pending Register */
for (i=0;i<5;i++)
{
NVIC->ICER[i]=0xFFFFFFFF;
NVIC->ICPR[i]=0xFFFFFFFF;
}
/* Re-enable all interrupts */
__enable_irq();
/* Set up the jump to bootloader address + 4 */
SysMemBootJump = (void (*)(void)) (*((uint32_t *) ((BootAddr + 4))));
/* Set the main stack pointer to the bootloader stack */
__set_MSP(*(uint32_t *)BootAddr);
/* Call the function to jump to bootloader location */
SysMemBootJump();
/* Jump is done successfully */
while (1)
{
/* Code should never reach this loop */
}
}
Observations:
- I think the system is maybe entering the boot mode because the SP is updating to a value around 01FF12xxx in the function ASYSTR_jump_to_bootloader
- FDCAN bit rates are reflecting different from what is mentioned in the documentation
- Documentation: bit rates = 0.5Mbps

- Implementation: Nominal bit rate = 0.25Mbps / Data bit rate = 1Mbps
Questions:
- It was unclear whether the FDCAN peripheral needs to be configured as per the documentation or is already configured when the system enters boot mode?
- The bit parameters and the resultant bit rates of the boot mode FDCAN configuration is not matching. Could it be a documentation fault? If so, what are the correct values?
