The Cortex-M3 core defines a sophisticated priority mechanism that allows interrupt sources to be assigned both a priority and a sub-priority. At a given priority level, two interrupt sources are serviced in order of their subpriority (lower number takes precedence). If an interrupt handler is active and another interrupt arrives with a lower priority number, the the active handler will be preempted. The Cortex-M3 defines up to 8 priority level bits that may be split among the priority and sub-priority fields. The STM32 processor implements only 4 of these bits. Throughout this book we utilize a configuration where 0 bits are allocated to priority and 4 bits are allocated to sub-priority. In other words, we choose not to enable interrupt preemption