Exception handling AN4989
58/118 AN4989 Rev 3
6.2 Custom Handlers
One way to generate templates of Handler functions is to use STM32CubeMX.
In Configuration -> NVIC Configuration -> Code Generation, use Generate IRQ handler
tick boxes as shown in
Figure 38.
Figure 38. Asking for Handler code generation
When Non maskable interrupt and Hard fault interrupt are selected, the following code is
generated:
void NMI_Handler(void)
{
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
/* USER CODE END NonMaskableInt_IRQn 1 */
}
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
{
}
/* USER CODE BEGIN HardFault_IRQn 1 */
/* USER CODE END HardFault_IRQn 1 */
}
This simple declaration overriding the default weak function,removes ambiguity and clarifies
the call stack.