Functions | |
uint32_t | CPUcpsid (void) |
Disable all external interrupts. More... | |
uint32_t | CPUprimask (void) |
Get the current interrupt state. More... | |
uint32_t | CPUcpsie (void) |
Enable all external interrupts. More... | |
uint32_t | CPUbasepriGet (void) |
Get the interrupt priority disable level. More... | |
void | CPUdelay (uint32_t ui32Count) |
Provide a small non-zero delay using a simple loop counter. More... | |
static void | CPUwfi (void) |
Wait for interrupt. More... | |
static void | CPUwfe (void) |
Wait for event. More... | |
static void | CPUsev (void) |
Send event. More... | |
static void | CPUbasepriSet (uint32_t ui32NewBasepri) |
Update the interrupt priority disable level. More... | |
static void | CPU_WriteBufferDisable (void) |
Disable CPU write buffering (recommended for debug purpose only). More... | |
static void | CPU_WriteBufferEnable (void) |
Enable CPU write buffering (default setting). More... | |
The CPU API provides a set of functions performing very low-level control of the system CPU. All functions in this API are written in assembler in order to either access special registers or avoid any compiler optimizations. Each function exists in several compiler specific versions: One version for each supported compiler.
|
inlinestatic |
Disable CPU write buffering (recommended for debug purpose only).
This function helps debugging "bus fault crashes". Disables write buffer use during default memory map accesses.
This causes all bus faults to be precise bus faults but decreases the performance of the processor because the stores to memory have to complete before the next instruction can be executed.
|
inlinestatic |
Enable CPU write buffering (default setting).
Re-enables write buffer during default memory map accesses if CPU_WriteBufferDisable() has been used for bus fault debugging.
uint32_t CPUbasepriGet | ( | void | ) |
Get the interrupt priority disable level.
Use this function to get the level of priority that will disable interrupts with a lower priority level.
Referenced by CPUbasepriGet(), and IntPriorityMaskGet().
|
inlinestatic |
Update the interrupt priority disable level.
Use this function to change the level of priority that will disable interrupts with a lower priority level.
ui32NewBasepri | is the new basis priority level to set. |
Referenced by IntPriorityMaskSet().
uint32_t CPUcpsid | ( | void | ) |
Disable all external interrupts.
Use this function to disable all system interrupts. This function is implemented as a wrapper function for the CPSID instruction.
Referenced by CPUcpsid(), IntMasterDisable(), and SysCtrlSystemReset().
uint32_t CPUcpsie | ( | void | ) |
Enable all external interrupts.
Use this function to enable all system interrupts. This function is implemented as a wrapper function for the CPSIE instruction.
Referenced by CPUcpsie(), and IntMasterEnable().
void CPUdelay | ( | uint32_t | ui32Count | ) |
Provide a small non-zero delay using a simple loop counter.
This function provides means for generating a constant length delay. It is written in assembly to keep the delay consistent across tool chains, avoiding the need to tune the delay based on the tool chain in use.
Notice that interrupts can affect the delay if not manually disabled in advance.
The delay depends on where code resides and the path for code fetching:
Calculate delay count based on the wanted delay in microseconds (us):
Example: 250 us delay with code in flash and with cache and prefetch enabled:
ui32Count | is the number of delay loop iterations to perform. Number must be greater than zero. |
Referenced by AESReadFromKeyStore(), AESWaitForIRQFlags(), CPUdelay(), I2CMasterControl(), PKAClearPkaRam(), and SHA2WaitForIRQFlags().
uint32_t CPUprimask | ( | void | ) |
Get the current interrupt state.
Use this function to retrieve the current state of the interrupts. This function is implemented as a wrapper function returning the state of PRIMASK.
Referenced by CPUprimask().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Wait for interrupt.
Use this function to let the System CPU wait for the next interrupt. This function is implemented as a wrapper function for the WFI instruction.
Referenced by PRCMDeepSleep(), and PRCMSleep().