Kurva to je zas prekvapko. Updatnul sem arm-gcc 6.3.1 na 7.2.1 a kod prestal fungovat. Tak hledam a koukam, ze optimalizator LTO (parametr -flto) mi vyhodil kod obsluhy presruseni, listing:
drive:
.text.USART2_IRQHandler
0x08000f90 0xa8 ..\Temp\cckJZ3oJ.ltrans0.ltrans.o
0x08000f90 USART2_IRQHandler
nyni:
.text.Default_Handler
0x08000fec USART2_IRQHandler
Zkousim ho presvedcit atributy
__attribute__((interrupt))
__attribute__((used))
u definice ISR a stejne mi to vzdy vyhodi. Pokud -lfto vyradim, tak vse funguje spravne, ale kod nakyne o nepouzivane funkce...