Notes
This module defines locks to constitute critical sections by disabling interrupts globally.
Example
uint32_t x;
x = ao_sys_lock_ie();
{
// ...
// Critical section.
// Interrupts are disabled globally.
// ...
}
ao_sys_unlock_ie(x);
Include
xc.h |
Functions
ao_sys_lock_ie
#define ao_sys_lock_ie() \
( \
__builtin_disable_interrupts() \
)
Enters a critical section by disabling interrupts globally. This function clears the Status.IE
bit and returns the previous value of the Status
register.
ao_sys_unlock_ie
#define ao_sys_unlock_ie(x) \
{ \
_CP0_SET_STATUS(x); \
}
Exits a critical section. This function writes the specified value to the Status
register.