Labor04
port.c File Reference
#include "FreeRTOS.h"
#include "task.h"
Include dependency graph for port.c:

Macros

#define configSYSTICK_CLOCK_HZ   configCPU_CLOCK_HZ
 
#define portNVIC_SYSTICK_CLK_BIT   ( 1UL << 2UL )
 
#define configOVERRIDE_DEFAULT_TICK_CONFIGURATION   0
 
#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_SYSPRI2_REG   ( * ( ( volatile uint32_t * ) 0xe000ed20 ) )
 
#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_CLEAR_BIT   ( 1UL << 25UL )
 
#define portNVIC_PENDSV_PRI   ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 16UL )
 
#define portNVIC_SYSTICK_PRI   ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 24UL )
 
#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 portINITIAL_XPSR   ( 0x01000000 )
 
#define portMAX_24_BIT_NUMBER   ( 0xffffffUL )
 
#define portMISSED_COUNTS_FACTOR   ( 45UL )
 
#define portSTART_ADDRESS_MASK   ( ( StackType_t ) 0xfffffffeUL )
 

Functions

void vPortSetupTimerInterrupt (void)
 
void xPortPendSVHandler (void)
 
void xPortSysTickHandler (void)
 
void vPortSVCHandler (void)
 
static void prvStartFirstTask (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)
 
__asm uint32_t vPortGetIPSR (void)
 

Variables

static UBaseType_t uxCriticalNesting = 0xaaaaaaaa
 

Macro Definition Documentation

◆ configOVERRIDE_DEFAULT_TICK_CONFIGURATION

#define configOVERRIDE_DEFAULT_TICK_CONFIGURATION   0

◆ configSYSTICK_CLOCK_HZ

#define configSYSTICK_CLOCK_HZ   configCPU_CLOCK_HZ

◆ portAIRCR_REG

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

◆ portFIRST_USER_INTERRUPT_NUMBER

#define portFIRST_USER_INTERRUPT_NUMBER   ( 16 )

◆ 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 )

◆ portMISSED_COUNTS_FACTOR

#define portMISSED_COUNTS_FACTOR   ( 45UL )

◆ 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_PENDSV_PRI

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

◆ portNVIC_PENDSVCLEAR_BIT

#define portNVIC_PENDSVCLEAR_BIT   ( 1UL << 27UL )

◆ portNVIC_SYSPRI2_REG

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

◆ portNVIC_SYSTICK_CLK_BIT

#define portNVIC_SYSTICK_CLK_BIT   ( 1UL << 2UL )

◆ 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 ) configKERNEL_INTERRUPT_PRIORITY ) << 24UL )

◆ portPRIGROUP_SHIFT

#define portPRIGROUP_SHIFT   ( 8UL )

◆ portPRIORITY_GROUP_MASK

#define portPRIORITY_GROUP_MASK   ( 0x07UL << 8UL )

◆ portSTART_ADDRESS_MASK

#define portSTART_ADDRESS_MASK   ( ( StackType_t ) 0xfffffffeUL )

◆ portTOP_BIT_OF_BYTE

#define portTOP_BIT_OF_BYTE   ( ( uint8_t ) 0x80 )

◆ portVECTACTIVE_MASK

#define portVECTACTIVE_MASK   ( 0xFFUL )

Function Documentation

◆ prvStartFirstTask()

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

◆ prvTaskExitError()

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

◆ pxPortInitialiseStack()

StackType_t* pxPortInitialiseStack ( StackType_t pxTopOfStack,
TaskFunction_t  pxCode,
void *  pvParameters 
)
Here is the call graph for this function:
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  )

◆ vPortGetIPSR()

__asm uint32_t vPortGetIPSR ( void  )

◆ vPortSetupTimerInterrupt()

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

◆ vPortSVCHandler()

void vPortSVCHandler ( void  )

◆ xPortPendSVHandler()

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

◆ 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