2023-07-21 11:40 PM
I have generated C project with Tim2 interrupt configuration from CubeMX and converted into C++ project. when the project is in C timer2 is working. but when I changed it to C++ project, after interrupt enable function execution it stuck at Infinite Loop statement. why?can anyone help me out?
after below mentioned statement execution,it's going to infinite loop statement.
if (HAL_TIM_Base_Start_IT(&htim2) != HAL_OK)
{
Error_Handler();
}
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
.size Default_Handler, .-Default_Handler
Solved! Go to Solution.
2023-07-22 12:14 AM
The key phrase is C++ name mangling. Every interrupt service routine must be C, not C++. So either place it in a .c file or add extern "C" attribute to its definition.
2023-07-22 12:14 AM
The key phrase is C++ name mangling. Every interrupt service routine must be C, not C++. So either place it in a .c file or add extern "C" attribute to its definition.
2023-07-22 02:43 AM
yah, after adding extern "C" attribute into ISR definition it's working. thanks 8)