EasyManua.ls Logo

STMicroelectronics STM32 User Manual

STMicroelectronics STM32
118 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #58 background imageLoading...
Page #58 background image
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.

Table of Contents

Questions and Answers:

STMicroelectronics STM32 Specifications

General IconGeneral
SeriesSTM32
Clock FrequencyUp to 480 MHz
ArchitectureARM
CoreARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7, ARM Cortex-M33
Program Memory TypeFlash
Operating Voltage1.62V ~ 3.6V
Operating Temperature-40°C ~ 125°C
PeripheralsGPIO, Timers, ADC, DAC, UART, SPI, I2C, USB, Ethernet, CAN, DMA, RTC, CRC, RNG, Cryptography, LCD, SDIO, Quad-SPI, FMC

Summary

Foreword

General Information

Document applicability to STM32 Arm Cortex MCUs and branding notes.

Software Versions

Lists specific tool versions used for examples in the note.

Acronyms

Glossary of technical terms and abbreviations used in the document.

STM32 Ecosystem Outlines

Hardware Development Tools

Overview of ST-LINK probes and debugger interfaces.

Software Development Tools

Introduction to IDEs, compilers, and ST tools for STM32.

Embedded Software

Describes HAL, LL APIs, middleware, and code examples.

Information and Sharing

Guides to STM32 resources like documentation, wiki, GitHub, and community.

Compiling for Debug

Optimization

Discusses code optimization impact on debugging and suggests settings.

Debugging Information

Explains the role of debugging information and its options in IDEs.

Connecting to the Board

SWD/JTAG Pinout

Details SWD pin mapping and usage on STMicroelectronics hardware.

Reset and Connection Mode

Reviews reset and connection modes for ST-LINK debuggers.

Low-Power Case

Addresses debug connection loss in low-power modes and DBGMCU register use.

Breaking and Stepping into Code

Debug Support for Timers, RTC, Watchdog, BxCAN and I2C

Explains how timers and peripherals behave during breakpoints.

Debug Performance

Advises on optimizing SWD frequency for better debugger reactivity.

Secure Platform Limitation

Covers RDP and PCROP protection features and their debug implications.

Exception Handling

Default Weak Handlers

Explains default handler behavior and debugging strategies for exceptions.

Custom Handlers

Shows how to generate custom exception handler templates using STM32CubeMX.

Trapping div/0 Exception

Provides methods to trap division-by-zero errors on Cortex-M.

Printf Debugging

STM32 Virtual COM Port Driver

Describes using STM32 Virtual COM port via ST-LINK for printf.

Printf via UART

Explains how to redirect printf output through UART.

Printf via SWO/SWV

Details using Serial Wire Output (SWO) for printf debugging.

Semihosting

Explains the semihosting mechanism for I/O via debugger.

Debug Through Hardware Exploration

Easy Pinout Probing with STMicroelectronics Hardware Kits

Discusses pin access on ST hardware kits.

Microcontroller Clock Output (MCO)

Guides on configuring MCO for clock signal output and measurement.

Dual-Core Microcontroller Debugging

From Debug to Release

Troubleshooting

Appendix A: Managing DBGMCU Registers

By Software

Explains setting DBGMCU registers using HAL and LL functions.

By Debugger

Covers accessing DBGMCU registers through debugger interfaces or scripts.

Appendix B: Use Nucleo “Cuttable” ST-LINK as Stand-Alone VCP

Appendix C: Managing Various Targets on the Same PC

Appendix D: Cortex®-M Debug Capabilities Reminder

Application Notes Index

Lists related application notes for further reading.

Related product manuals