|
Sound Byte Libs 1ee2ca6
C++ firmware library for audio applications on 32-bit ARM Cortex-M processors
|
ARM Cortex-M RAII critical section using PRIMASK. More...
#include <critical_section.hpp>
Public Member Functions | |
| CriticalSection () | |
| Construct critical section and disable ARM interrupts. | |
| ~CriticalSection () | |
| Destructor - restore ARM PRIMASK state. | |
| CriticalSection (const CriticalSection &)=delete | |
| CriticalSection & | operator= (const CriticalSection &)=delete |
| CriticalSection (CriticalSection &&)=delete | |
| CriticalSection & | operator= (CriticalSection &&)=delete |
ARM Cortex-M RAII critical section using PRIMASK.
Disables all interrupts (except NMI/Hard Fault) using ARM PRIMASK register. Automatically restores interrupt state when object goes out of scope. Compiles to minimal ARM Thumb-2 instructions using CMSIS intrinsics.
Usage:
Design principles:
Definition at line 43 of file critical_section.hpp.
|
inline |
Construct critical section and disable ARM interrupts.
Saves current PRIMASK state and disables all interrupts except NMI and Hard Fault. Uses HAL interrupt primitives.
Definition at line 51 of file critical_section.hpp.
|
inline |
Destructor - restore ARM PRIMASK state.
Restores PRIMASK to state before critical section was entered. Guarantees proper interrupt restoration even in error conditions.
Definition at line 60 of file critical_section.hpp.
References sbl::core::hal::interrupts::restore().
|
delete |
|
delete |
|
delete |
|
delete |