firmware
IEM Firmware Documentation
Loading...
Searching...
No Matches
port.c File Reference
#include "FreeRTOS.h"
#include "task.h"
Include dependency graph for port.c:

Macros

#define portNVIC_SYSTICK_CTRL_REG   ( *( ( volatile uint32_t * ) 0xe000e010 ) )
#define portNVIC_SYSTICK_LOAD_REG   ( *( ( volatile uint32_t * ) 0xe000e014 ) )
#define portNVIC_SYSTICK_CURRENT_VALUE_REG   ( *( ( volatile uint32_t * ) 0xe000e018 ) )
#define portNVIC_SHPR2_REG   ( *( ( volatile uint32_t * ) 0xe000ed1c ) )
#define portNVIC_SHPR3_REG   ( *( ( volatile uint32_t * ) 0xe000ed20 ) )
#define portNVIC_SYSTICK_CLK_BIT   ( 1UL << 2UL )
#define portNVIC_SYSTICK_INT_BIT   ( 1UL << 1UL )
#define portNVIC_SYSTICK_ENABLE_BIT   ( 1UL << 0UL )
#define portNVIC_SYSTICK_COUNT_FLAG_BIT   ( 1UL << 16UL )
#define portNVIC_PENDSVCLEAR_BIT   ( 1UL << 27UL )
#define portNVIC_PEND_SYSTICK_SET_BIT   ( 1UL << 26UL )
#define portNVIC_PEND_SYSTICK_CLEAR_BIT   ( 1UL << 25UL )
#define portMIN_INTERRUPT_PRIORITY   ( 255UL )
#define portNVIC_PENDSV_PRI   ( ( ( uint32_t ) portMIN_INTERRUPT_PRIORITY ) << 16UL )
#define portNVIC_SYSTICK_PRI   ( ( ( uint32_t ) portMIN_INTERRUPT_PRIORITY ) << 24UL )
#define portSCB_VTOR_REG   ( *( ( portISR_t ** ) 0xE000ED08 ) )
#define portVECTOR_INDEX_SVC   ( 11 )
#define portVECTOR_INDEX_PENDSV   ( 14 )
#define portFIRST_USER_INTERRUPT_NUMBER   ( 16 )
#define portNVIC_IP_REGISTERS_OFFSET_16   ( 0xE000E3F0 )
#define portAIRCR_REG   ( *( ( volatile uint32_t * ) 0xE000ED0C ) )
#define portMAX_8_BIT_VALUE   ( ( uint8_t ) 0xff )
#define portTOP_BIT_OF_BYTE   ( ( uint8_t ) 0x80 )
#define portMAX_PRIGROUP_BITS   ( ( uint8_t ) 7 )
#define portPRIORITY_GROUP_MASK   ( 0x07UL << 8UL )
#define portPRIGROUP_SHIFT   ( 8UL )
#define portVECTACTIVE_MASK   ( 0xFFUL )
#define portFPCCR   ( ( volatile uint32_t * ) 0xe000ef34 ) /* Floating point context control register. */
#define portASPEN_AND_LSPEN_BITS   ( 0x3UL << 30UL )
#define portINITIAL_XPSR   ( 0x01000000 )
#define portINITIAL_EXC_RETURN   ( 0xfffffffd )
#define portMAX_24_BIT_NUMBER   ( 0xffffffUL )
#define portSTART_ADDRESS_MASK   ( ( StackType_t ) 0xfffffffeUL )
#define portMISSED_COUNTS_FACTOR   ( 94UL )
#define configSYSTICK_CLOCK_HZ   ( configCPU_CLOCK_HZ )
#define portNVIC_SYSTICK_CLK_BIT_CONFIG   ( portNVIC_SYSTICK_CLK_BIT )
#define portTASK_RETURN_ADDRESS   prvTaskExitError

Typedefs

typedef void(* portISR_t) (void)

Functions

void vPortSetupTimerInterrupt (void)
void xPortPendSVHandler (void)
void xPortSysTickHandler (void)
void vPortSVCHandler (void)
static void prvPortStartFirstTask (void)
static void vPortEnableVFP (void)
static void prvTaskExitError (void)
StackType_tpxPortInitialiseStack (StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters)
BaseType_t xPortStartScheduler (void)
void vPortEndScheduler (void)
void vPortEnterCritical (void)
void vPortExitCritical (void)

Variables

static UBaseType_t uxCriticalNesting = 0xaaaaaaaa

Macro Definition Documentation

◆ configSYSTICK_CLOCK_HZ

#define configSYSTICK_CLOCK_HZ   ( configCPU_CLOCK_HZ )

◆ portAIRCR_REG

#define portAIRCR_REG   ( *( ( volatile uint32_t * ) 0xE000ED0C ) )

◆ portASPEN_AND_LSPEN_BITS

#define portASPEN_AND_LSPEN_BITS   ( 0x3UL << 30UL )

◆ portFIRST_USER_INTERRUPT_NUMBER

#define portFIRST_USER_INTERRUPT_NUMBER   ( 16 )

◆ portFPCCR

#define portFPCCR   ( ( volatile uint32_t * ) 0xe000ef34 ) /* Floating point context control register. */

◆ portINITIAL_EXC_RETURN

#define portINITIAL_EXC_RETURN   ( 0xfffffffd )

◆ portINITIAL_XPSR

#define portINITIAL_XPSR   ( 0x01000000 )

◆ portMAX_24_BIT_NUMBER

#define portMAX_24_BIT_NUMBER   ( 0xffffffUL )

◆ portMAX_8_BIT_VALUE

#define portMAX_8_BIT_VALUE   ( ( uint8_t ) 0xff )

◆ portMAX_PRIGROUP_BITS

#define portMAX_PRIGROUP_BITS   ( ( uint8_t ) 7 )

◆ portMIN_INTERRUPT_PRIORITY

#define portMIN_INTERRUPT_PRIORITY   ( 255UL )

◆ portMISSED_COUNTS_FACTOR

#define portMISSED_COUNTS_FACTOR   ( 94UL )

◆ portNVIC_IP_REGISTERS_OFFSET_16

#define portNVIC_IP_REGISTERS_OFFSET_16   ( 0xE000E3F0 )

◆ portNVIC_PEND_SYSTICK_CLEAR_BIT

#define portNVIC_PEND_SYSTICK_CLEAR_BIT   ( 1UL << 25UL )

◆ portNVIC_PEND_SYSTICK_SET_BIT

#define portNVIC_PEND_SYSTICK_SET_BIT   ( 1UL << 26UL )

◆ portNVIC_PENDSV_PRI

#define portNVIC_PENDSV_PRI   ( ( ( uint32_t ) portMIN_INTERRUPT_PRIORITY ) << 16UL )

◆ portNVIC_PENDSVCLEAR_BIT

#define portNVIC_PENDSVCLEAR_BIT   ( 1UL << 27UL )

◆ portNVIC_SHPR2_REG

#define portNVIC_SHPR2_REG   ( *( ( volatile uint32_t * ) 0xe000ed1c ) )

◆ portNVIC_SHPR3_REG

#define portNVIC_SHPR3_REG   ( *( ( volatile uint32_t * ) 0xe000ed20 ) )

◆ portNVIC_SYSTICK_CLK_BIT

#define portNVIC_SYSTICK_CLK_BIT   ( 1UL << 2UL )

◆ portNVIC_SYSTICK_CLK_BIT_CONFIG

#define portNVIC_SYSTICK_CLK_BIT_CONFIG   ( portNVIC_SYSTICK_CLK_BIT )

◆ portNVIC_SYSTICK_COUNT_FLAG_BIT

#define portNVIC_SYSTICK_COUNT_FLAG_BIT   ( 1UL << 16UL )

◆ portNVIC_SYSTICK_CTRL_REG

#define portNVIC_SYSTICK_CTRL_REG   ( *( ( volatile uint32_t * ) 0xe000e010 ) )

◆ portNVIC_SYSTICK_CURRENT_VALUE_REG

#define portNVIC_SYSTICK_CURRENT_VALUE_REG   ( *( ( volatile uint32_t * ) 0xe000e018 ) )

◆ portNVIC_SYSTICK_ENABLE_BIT

#define portNVIC_SYSTICK_ENABLE_BIT   ( 1UL << 0UL )

◆ portNVIC_SYSTICK_INT_BIT

#define portNVIC_SYSTICK_INT_BIT   ( 1UL << 1UL )

◆ portNVIC_SYSTICK_LOAD_REG

#define portNVIC_SYSTICK_LOAD_REG   ( *( ( volatile uint32_t * ) 0xe000e014 ) )

◆ portNVIC_SYSTICK_PRI

#define portNVIC_SYSTICK_PRI   ( ( ( uint32_t ) portMIN_INTERRUPT_PRIORITY ) << 24UL )

◆ portPRIGROUP_SHIFT

#define portPRIGROUP_SHIFT   ( 8UL )

◆ portPRIORITY_GROUP_MASK

#define portPRIORITY_GROUP_MASK   ( 0x07UL << 8UL )

◆ portSCB_VTOR_REG

#define portSCB_VTOR_REG   ( *( ( portISR_t ** ) 0xE000ED08 ) )

◆ portSTART_ADDRESS_MASK

#define portSTART_ADDRESS_MASK   ( ( StackType_t ) 0xfffffffeUL )

◆ portTASK_RETURN_ADDRESS

#define portTASK_RETURN_ADDRESS   prvTaskExitError

◆ portTOP_BIT_OF_BYTE

#define portTOP_BIT_OF_BYTE   ( ( uint8_t ) 0x80 )

◆ portVECTACTIVE_MASK

#define portVECTACTIVE_MASK   ( 0xFFUL )

◆ portVECTOR_INDEX_PENDSV

#define portVECTOR_INDEX_PENDSV   ( 14 )

◆ portVECTOR_INDEX_SVC

#define portVECTOR_INDEX_SVC   ( 11 )

Typedef Documentation

◆ portISR_t

typedef void(* portISR_t) (void)

Function Documentation

◆ prvPortStartFirstTask()

void prvPortStartFirstTask ( void )
static
Here is the caller graph for this function:

◆ prvTaskExitError()

void prvTaskExitError ( void )
static
Here is the caller graph for this function:

◆ pxPortInitialiseStack()

StackType_t * pxPortInitialiseStack ( StackType_t * pxTopOfStack,
TaskFunction_t pxCode,
void * pvParameters )

◆ vPortEnableVFP()

void vPortEnableVFP ( void )
static
Here is the caller graph for this function:

◆ vPortEndScheduler()

void vPortEndScheduler ( void )
Here is the caller graph for this function:

◆ vPortEnterCritical()

void vPortEnterCritical ( void )

◆ vPortExitCritical()

void vPortExitCritical ( void )

◆ vPortSetupTimerInterrupt()

void vPortSetupTimerInterrupt ( void )
Here is the caller graph for this function:

◆ vPortSVCHandler()

void vPortSVCHandler ( void )

◆ xPortPendSVHandler()

void xPortPendSVHandler ( void )

◆ xPortStartScheduler()

BaseType_t xPortStartScheduler ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xPortSysTickHandler()

void xPortSysTickHandler ( void )
Here is the call graph for this function:

Variable Documentation

◆ uxCriticalNesting

UBaseType_t uxCriticalNesting = 0xaaaaaaaa
static