48 #ifndef __FREERTOS_PORTABLE_GCC_ARMV8M_PORTMACRO_H 49 #define __FREERTOS_PORTABLE_GCC_ARMV8M_PORTMACRO_H 55 #define __dsb(x) __asm volatile(" dsb\n") 56 #define __isb(x) __asm volatile(" isb\n") 66 #define portFLOAT float 67 #define portDOUBLE double 69 #define portSHORT short 70 #define portSTACK_TYPE uint32_t 71 #define portBASE_TYPE long 73 typedef portSTACK_TYPE StackType_t;
74 typedef long BaseType_t;
75 typedef unsigned long UBaseType_t;
77 #if( configUSE_16_BIT_TICKS == 1 ) 78 typedef uint16_t TickType_t;
79 #define portMAX_DELAY ( TickType_t ) 0xffff 81 typedef uint32_t TickType_t;
82 #define portMAX_DELAY ( TickType_t ) 0xffffffffUL 86 #define portTICK_TYPE_IS_ATOMIC 1 90 #define portSTACK_GROWTH ( -1 ) 91 #define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ ) 92 #define portBYTE_ALIGNMENT 8 95 extern void vPortYield(
void );
96 #define portNVIC_INT_CTRL_REG ( * ( ( volatile uint32_t * ) 0xe000ed04 ) ) 98 #define portNVIC_PENDSVSET_BIT ( 1UL << 28UL ) 99 #define portNVIC_PENDSVCLEAR_BIT ( 1UL << 27UL ) 100 #define portYIELD() vPortYield() 101 #define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT 102 #define portYIELD_FROM_ISR( x ) portEND_SWITCHING_ISR( x ) 105 extern void vPortEnterCritical(
void );
106 extern void vPortExitCritical(
void );
107 extern uint32_t ulSetInterruptMaskFromISR(
void );
108 extern void vClearInterruptMaskFromISR( uint32_t ulMask );
110 #define portSET_INTERRUPT_MASK_FROM_ISR() ulSetInterruptMaskFromISR() 111 #define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vClearInterruptMaskFromISR( x ) 112 #define portDISABLE_INTERRUPTS() __disable_irq() 113 #define portENABLE_INTERRUPTS() __enable_irq() 114 #define portENTER_CRITICAL() vPortEnterCritical() 115 #define portEXIT_CRITICAL() vPortExitCritical() 118 #define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters ) 119 #define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )