CC26xx Driver Library
[cpu] CPU

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...
 
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...
 
uint32_t CPUbasepriGet (void)
 Get the interrupt priority disable level. More...
 
void CPUdelay (uint32_t ui32Count)
 Provide a small delay. 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...
 

Detailed Description

Introduction

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.

Function Documentation

static void CPU_WriteBufferDisable ( void  )
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.

Returns
None
See also
CPU_WriteBufferEnable()

Definition at line 383 of file cpu.h.

static void CPU_WriteBufferEnable ( void  )
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.

Returns
None
See also
CPU_WriteBufferDisable()

Definition at line 401 of file cpu.h.

uint32_t CPUbasepriGet ( void  )

Get the interrupt priority disable level.

Use this function to get the the level of priority that will disable interrupts with a lower priority level.

Returns
Returns the value of the BASEPRI register.

Definition at line 325 of file cpu.c.

Referenced by IntPriorityMaskGet().

Here is the call graph for this function:

static void CPUbasepriSet ( uint32_t  ui32NewBasepri)
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.

Parameters
ui32NewBasepriis the new basis priority level to set.
Returns
None

Definition at line 315 of file cpu.h.

Referenced by IntPriorityMaskSet().

Here is the call graph for this function:

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.

Returns
Returns the state of PRIMASK on entry

Definition at line 97 of file cpu.c.

Referenced by AuxAdiDdiSafeRead(), AuxAdiDdiSafeWrite(), IntMasterDisable(), SafeHapiAuxAdiSelect(), SafeHapiVoid(), and SysCtrlSystemReset().

Here is the call graph for this function:

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.

Returns
Returns the state of PRIMASK on entry.

Definition at line 249 of file cpu.c.

Referenced by AuxAdiDdiSafeRead(), AuxAdiDdiSafeWrite(), IntMasterEnable(), SafeHapiAuxAdiSelect(), and SafeHapiVoid().

Here is the call graph for this function:

void CPUdelay ( uint32_t  ui32Count)

Provide a small delay.

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.

The loop takes 3 cycles/loop.

Parameters
ui32Countis the number of delay loop iterations to perform.
Returns
None

Referenced by CRYPTOAesCbc(), CRYPTOAesEcb(), CRYPTOAesLoadKey(), CRYPTOCcmAuthEncrypt(), CRYPTOCcmAuthEncryptResultGet(), CRYPTOCcmInvAuthDecrypt(), CRYPTOCcmInvAuthDecryptResultGet(), and I2CMasterControl().

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.

Returns
Returns the state of the PRIMASK (indicating whether interrupts are enabled or disabled).

Definition at line 173 of file cpu.c.

Here is the call graph for this function:

static void CPUsev ( void  )
inlinestatic

Send event.

Use this function to let the System CPU send an event. This function is implemented as a wrapper function for the SEV instruction.

Returns
None

Definition at line 263 of file cpu.h.

Here is the call graph for this function:

static void CPUwfe ( void  )
inlinestatic

Wait for event.

Use this function to let the System CPU wait for the next event. This function is implemented as a wrapper function for the WFE instruction.

Returns
None

Definition at line 214 of file cpu.h.

Here is the call graph for this function:

static void CPUwfi ( void  )
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.

Returns
None

Definition at line 165 of file cpu.h.

Referenced by PRCMDeepSleep(), and PRCMSleep().

Here is the call graph for this function: