Contents PM0215
4/91 Doc ID 022979 Rev 1
3.7.3 DMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.7.4 DSB  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.7.5 ISB  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.6 MRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.7 MSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.7.8 NOP  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.9 SEV  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.10 SVC  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.7.11 WFE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.7.12 WFI   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4 Core peripherals  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1 About the STM32 Cortex-M0 core peripherals . . . . . . . . . . . . . . . . . . . . .  69
4.2 Nested vectored interrupt controller (NVIC)  . . . . . . . . . . . . . . . . . . . . . . .  70
4.2.1 Accessing the Cortex-M0 NVIC registers using CMSIS   . . . . . . . . . . . . 70
4.2.2 Interrupt set-enable register (ISER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.3 Interrupt clear-enable register (ICER)  . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.4 Interrupt set-pending register (ISPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.5 Interrupt clear-pending register (ICPR)  . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.6 Interrupt priority register (IPR0-IPR7)  . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.7 Level-sensitive and pulse interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.8 NVIC design hints and tips   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.9 NVIC register map  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3 System control block (SCB)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  77
4.3.1 CPUID base register (CPUID)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.2 Interrupt control and state register (ICSR) . . . . . . . . . . . . . . . . . . . . . . . 78
4.3.3 Application interrupt and reset control register (AIRCR)  . . . . . . . . . . . . 80
4.3.4 System control register (SCR)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.3.5 Configuration and control register (CCR)   . . . . . . . . . . . . . . . . . . . . . . . 82
4.3.6 System handler priority registers (SHPRx)   . . . . . . . . . . . . . . . . . . . . . . 83
4.3.7 SCB usage hints and tips   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.3.8 SCB register map   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4 SysTick timer (STK)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  85
4.4.1 SysTick control and status register (STK_CSR)   . . . . . . . . . . . . . . . . . . 86
4.4.2 SysTick reload value register (STK_RVR)  . . . . . . . . . . . . . . . . . . . . . . . 87
4.4.3 SysTick current value register (STK_CVR)  . . . . . . . . . . . . . . . . . . . . . . 87
4.4.4 SysTick calibration value register (STK_CALIB)  . . . . . . . . . . . . . . . . . . 88