Embedded Artistry Framework
Embedded Systems C++ Framework
Macros | Typedefs | Functions
portmacro_cmsis.h File Reference
#include <math/rounded_div.h>
Include dependency graph for portmacro_cmsis.h:
This graph shows which files directly or indirectly include this file:

Macros

#define portCHAR   char
 
#define portFLOAT   float
 
#define portDOUBLE   double
 
#define portLONG   long
 
#define portSHORT   short
 
#define portSTACK_TYPE   uint32_t
 
#define portBASE_TYPE   long
 
#define portMAX_DELAY   (TickType_t)0xffffffffUL
 
#define portTICK_TYPE_IS_ATOMIC   1
 
#define portSTACK_GROWTH   (-1)
 
#define portTICK_PERIOD_MS   ((TickType_t)1000 / configTICK_RATE_HZ)
 
#define portBYTE_ALIGNMENT   8
 
#define portNRF_RTC_REG   NRF_RTC1
 
#define portNRF_RTC_IRQn   RTC1_IRQn
 
#define portNRF_RTC_PRESCALER   ((uint32_t)(ROUNDED_DIV(configSYSTICK_CLOCK_HZ, configTICK_RATE_HZ) - 1))
 
#define portNRF_RTC_MAXTICKS   ((1U << 24) - 1U)
 
#define portYIELD()
 
#define portEND_SWITCHING_ISR(xSwitchRequired)
 
#define portYIELD_FROM_ISR(x)   portEND_SWITCHING_ISR(x)
 
#define portSET_INTERRUPT_MASK_FROM_ISR()   ulPortRaiseBASEPRI()
 
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x)   vPortSetBASEPRI(x)
 
#define portDISABLE_INTERRUPTS()   vPortRaiseBASEPRI()
 
#define portENABLE_INTERRUPTS()   vPortSetBASEPRI(0)
 
#define portENTER_CRITICAL()   vPortEnterCritical()
 
#define portEXIT_CRITICAL()   vPortExitCritical()
 
#define portTASK_FUNCTION_PROTO(vFunction, pvParameters)   void vFunction(void* pvParameters)
 
#define portTASK_FUNCTION(vFunction, pvParameters)   void vFunction(void* pvParameters)
 
#define portSUPPRESS_TICKS_AND_SLEEP(xExpectedIdleTime)   vPortSuppressTicksAndSleep(xExpectedIdleTime)
 
#define configUSE_PORT_OPTIMISED_TASK_SELECTION   1
 
#define ucPortCountLeadingZeros(bits)   __CLZ(bits)
 
#define portRECORD_READY_PRIORITY(uxPriority, uxReadyPriorities)   (uxReadyPriorities) |= (1UL << (uxPriority))
 
#define portRESET_READY_PRIORITY(uxPriority, uxReadyPriorities)   (uxReadyPriorities) &= ~(1UL << (uxPriority))
 
#define portGET_HIGHEST_PRIORITY(uxTopPriority, uxReadyPriorities)   uxTopPriority = (31 - ucPortCountLeadingZeros((uxReadyPriorities)))
 
#define vPortSetBASEPRI(ulNewMaskValue)   __set_BASEPRI(ulNewMaskValue)
 
#define vPortRaiseBASEPRI()   vPortSetBASEPRI(configMAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
 

Typedefs

typedef portSTACK_TYPE StackType_t
 
typedef long BaseType_t
 
typedef unsigned long UBaseType_t
 
typedef uint32_t TickType_t
 

Functions

void vPortEnterCritical (void)
 
void vPortExitCritical (void)
 
void vPortSuppressTicksAndSleep (TickType_t xExpectedIdleTime)
 
__STATIC_INLINE uint32_t ulPortRaiseBASEPRI (void)
 

Macro Definition Documentation

◆ configUSE_PORT_OPTIMISED_TASK_SELECTION

#define configUSE_PORT_OPTIMISED_TASK_SELECTION   1

◆ portBASE_TYPE

#define portBASE_TYPE   long

◆ portBYTE_ALIGNMENT

#define portBYTE_ALIGNMENT   8

◆ portCHAR

#define portCHAR   char

◆ portCLEAR_INTERRUPT_MASK_FROM_ISR

#define portCLEAR_INTERRUPT_MASK_FROM_ISR (   x)    vPortSetBASEPRI(x)

◆ portDISABLE_INTERRUPTS

#define portDISABLE_INTERRUPTS ( )    vPortRaiseBASEPRI()

◆ portDOUBLE

#define portDOUBLE   double

◆ portENABLE_INTERRUPTS

#define portENABLE_INTERRUPTS ( )    vPortSetBASEPRI(0)

◆ portEND_SWITCHING_ISR

#define portEND_SWITCHING_ISR (   xSwitchRequired)
Value:
if((xSwitchRequired) != pdFALSE) \
portYIELD()

◆ portENTER_CRITICAL

#define portENTER_CRITICAL ( )    vPortEnterCritical()

◆ portEXIT_CRITICAL

#define portEXIT_CRITICAL ( )    vPortExitCritical()

◆ portFLOAT

#define portFLOAT   float

◆ portGET_HIGHEST_PRIORITY

#define portGET_HIGHEST_PRIORITY (   uxTopPriority,
  uxReadyPriorities 
)    uxTopPriority = (31 - ucPortCountLeadingZeros((uxReadyPriorities)))

◆ portLONG

#define portLONG   long

◆ portMAX_DELAY

#define portMAX_DELAY   (TickType_t)0xffffffffUL

◆ portNRF_RTC_IRQn

#define portNRF_RTC_IRQn   RTC1_IRQn

◆ portNRF_RTC_MAXTICKS

#define portNRF_RTC_MAXTICKS   ((1U << 24) - 1U)

◆ portNRF_RTC_PRESCALER

#define portNRF_RTC_PRESCALER   ((uint32_t)(ROUNDED_DIV(configSYSTICK_CLOCK_HZ, configTICK_RATE_HZ) - 1))

◆ portNRF_RTC_REG

#define portNRF_RTC_REG   NRF_RTC1

◆ portRECORD_READY_PRIORITY

#define portRECORD_READY_PRIORITY (   uxPriority,
  uxReadyPriorities 
)    (uxReadyPriorities) |= (1UL << (uxPriority))

◆ portRESET_READY_PRIORITY

#define portRESET_READY_PRIORITY (   uxPriority,
  uxReadyPriorities 
)    (uxReadyPriorities) &= ~(1UL << (uxPriority))

◆ portSET_INTERRUPT_MASK_FROM_ISR

#define portSET_INTERRUPT_MASK_FROM_ISR ( )    ulPortRaiseBASEPRI()

◆ portSHORT

#define portSHORT   short

◆ portSTACK_GROWTH

#define portSTACK_GROWTH   (-1)

◆ portSTACK_TYPE

#define portSTACK_TYPE   uint32_t

◆ portSUPPRESS_TICKS_AND_SLEEP

#define portSUPPRESS_TICKS_AND_SLEEP (   xExpectedIdleTime)    vPortSuppressTicksAndSleep(xExpectedIdleTime)

◆ portTASK_FUNCTION

#define portTASK_FUNCTION (   vFunction,
  pvParameters 
)    void vFunction(void* pvParameters)

◆ portTASK_FUNCTION_PROTO

#define portTASK_FUNCTION_PROTO (   vFunction,
  pvParameters 
)    void vFunction(void* pvParameters)

◆ portTICK_PERIOD_MS

#define portTICK_PERIOD_MS   ((TickType_t)1000 / configTICK_RATE_HZ)

◆ portTICK_TYPE_IS_ATOMIC

#define portTICK_TYPE_IS_ATOMIC   1

◆ portYIELD

#define portYIELD ( )
Value:
do \
{ \
/* Set a PendSV to request a context switch. */ \
SCB->ICSR = SCB_ICSR_PENDSVSET_Msk; \
__SEV(); \
__DSB(); \
__ISB(); \
} while(0)

◆ portYIELD_FROM_ISR

#define portYIELD_FROM_ISR (   x)    portEND_SWITCHING_ISR(x)

◆ ucPortCountLeadingZeros

#define ucPortCountLeadingZeros (   bits)    __CLZ(bits)

◆ vPortRaiseBASEPRI

#define vPortRaiseBASEPRI ( )    vPortSetBASEPRI(configMAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))

◆ vPortSetBASEPRI

#define vPortSetBASEPRI (   ulNewMaskValue)    __set_BASEPRI(ulNewMaskValue)

Typedef Documentation

◆ BaseType_t

typedef long BaseType_t

◆ StackType_t

◆ TickType_t

◆ UBaseType_t

typedef unsigned long UBaseType_t

Function Documentation

◆ ulPortRaiseBASEPRI()

__STATIC_INLINE uint32_t ulPortRaiseBASEPRI ( void  )

References vPortRaiseBASEPRI.

◆ vPortEnterCritical()

void vPortEnterCritical ( void  )

◆ vPortExitCritical()

void vPortExitCritical ( void  )

◆ vPortSuppressTicksAndSleep()

void vPortSuppressTicksAndSleep ( TickType_t  xExpectedIdleTime)