Forum: System Workbench for STM32

Timer Interrupt crashes after changing to c++

Hello
i am building an application on a stm32f769-Disco with stemwin without os
momentary very simple, just writes the screen and the TIM2 is generating
a interrupt with ca 30 Hz and toggles on D6. sofar so good...
now i rightclick the project, choose convert to c++, clean and rebuild
the application still starts and works but as soon i start the TIM2 Interrupt:
if (HAL_TIM_Base_Start_IT(&TimMasterHandle) != HAL_OK) {
it crashes instanly.....
where does “change to c++” change the configuration?
thanks for any help!
all the best
styro

France

Hi,

One possible cause is that, if your interrupt handler is in a C++ source file, the Interrupt handler must be a C linkage functions. In C++ you must then prepend extern "C" to the function declaration and definition, otherwise the function name will be decorated by the C++ compiler to become something like TIM1_IRQHandler_v instead of TIM1_IrqHandler, thus the linker will pick the default handler which just loops indefinitely...

Bernard (Ac6)

Yeah Thanks, that was it!

all the best
styro