Prusa MINI Firmware overview
|
Go to the documentation of this file.
90 #define portFLOAT float
91 #define portDOUBLE double
93 #define portSHORT short
94 #define portSTACK_TYPE uint32_t
95 #define portBASE_TYPE long
101 #if( configUSE_16_BIT_TICKS == 1 )
103 #define portMAX_DELAY ( TickType_t ) 0xffff
106 #define portMAX_DELAY ( TickType_t ) 0xffffffffUL
110 #define portTICK_TYPE_IS_ATOMIC 1
115 #define portSTACK_GROWTH ( -1 )
116 #define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
117 #define portBYTE_ALIGNMENT 8
121 #define portYIELD() \
124 portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; \
128 __asm volatile( "dsb" ); \
129 __asm volatile( "isb" ); \
132 #define portNVIC_INT_CTRL_REG ( * ( ( volatile uint32_t * ) 0xe000ed04 ) )
133 #define portNVIC_PENDSVSET_BIT ( 1UL << 28UL )
134 #define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired != pdFALSE ) portYIELD()
135 #define portYIELD_FROM_ISR( x ) portEND_SWITCHING_ISR( x )
141 #define portSET_INTERRUPT_MASK_FROM_ISR() ulPortRaiseBASEPRI()
142 #define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vPortSetBASEPRI(x)
143 #define portDISABLE_INTERRUPTS() vPortRaiseBASEPRI()
144 #define portENABLE_INTERRUPTS() vPortSetBASEPRI(0)
145 #define portENTER_CRITICAL() vPortEnterCritical()
146 #define portEXIT_CRITICAL() vPortExitCritical()
153 #define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )
154 #define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )
158 #ifndef portSUPPRESS_TICKS_AND_SLEEP
160 #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) vPortSuppressTicksAndSleep( xExpectedIdleTime )
165 #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
166 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
169 #if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1
176 __asm
volatile (
"clz %0, %1" :
"=r" ( ucReturn ) :
"r" ( ulBitmap ) );
181 #if( configMAX_PRIORITIES > 32 )
182 #error configUSE_PORT_OPTIMISED_TASK_SELECTION can only be set to 1 when configMAX_PRIORITIES is less than or equal to 32. It is very rare that a system requires more than 10 to 15 difference priorities as tasks that share a priority will time slice.
186 #define portRECORD_READY_PRIORITY( uxPriority, uxReadyPriorities ) ( uxReadyPriorities ) |= ( 1UL << ( uxPriority ) )
187 #define portRESET_READY_PRIORITY( uxPriority, uxReadyPriorities ) ( uxReadyPriorities ) &= ~( 1UL << ( uxPriority ) )
191 #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) uxTopPriority = ( 31UL - ( uint32_t ) ucPortCountLeadingZeros( ( uxReadyPriorities ) ) )
198 void vPortValidateInterruptPriority(
void );
199 #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID() vPortValidateInterruptPriority()
205 #define portINLINE __inline
207 #ifndef portFORCE_INLINE
208 #define portFORCE_INLINE inline __attribute__(( always_inline))
213 uint32_t ulCurrentInterrupt;
217 __asm
volatile(
"mrs %0, ipsr" :
"=r"( ulCurrentInterrupt ) );
219 if( ulCurrentInterrupt == 0 )
235 uint32_t ulNewBASEPRI;
240 " msr basepri, %0 \n" \
251 uint32_t ulOriginalBASEPRI, ulNewBASEPRI;
255 " mrs %0, basepri \n" \
257 " msr basepri, %1 \n" \
265 return ulOriginalBASEPRI;
273 " msr basepri, %0 " ::
"r" ( ulNewMaskValue )
#define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE(pxItem)
Definition: list.h:153
BaseType_t xPortStartScheduler(void)
Definition: port.c:312
listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE configLIST_VOLATILE TickType_t xItemValue
Definition: list.h:184
#define listTEST_LIST_ITEM_INTEGRITY(pxItem)
Definition: list.h:156
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Definition: list.h:197
#define portMAX_DELAY
Definition: portmacro.h:106
#define configCPU_CLOCK_HZ
Definition: FreeRTOSConfig.h:108
__attribute__((always_inline)) static inline uint8_t ucPortCountLeadingZeros(uint32_t ulBitmap)
Definition: portmacro.h:172
PRIVILEGED_FUNCTION eSleepModeStatus eTaskConfirmSleepModeStatus(void)
#define configASSERT(x)
Definition: FreeRTOSConfig.h:162
#define portNVIC_SYSTICK_INT_BIT
Definition: port.c:98
void vListInitialise(List_t *const pxList)
Definition: list.c:79
#define portCORTEX_M7_r0p0_ID
Definition: port.c:108
__attribute__((weak))
Definition: port.c:671
#define portFORCE_INLINE
Definition: portmacro.h:208
static portFORCE_INLINE void vPortRaiseBASEPRI(void)
Definition: portmacro.h:233
#define portENTER_CRITICAL()
Definition: portmacro.h:145
void vPortExitCritical(void)
Definition: port.c:424
#define portEXIT_CRITICAL()
Definition: portmacro.h:146
#define portPRIGROUP_SHIFT
Definition: port.c:121
#define portCORTEX_M7_r0p1_ID
Definition: port.c:107
static portFORCE_INLINE BaseType_t xPortIsInsideInterrupt(void)
Definition: portmacro.h:211
UBaseType_t uxListRemove(ListItem_t *const pxItemToRemove)
Definition: list.c:212
ListItem_t *configLIST_VOLATILE pxIndex
Definition: list.h:209
struct xLIST_ITEM *configLIST_VOLATILE pxPrevious
Definition: list.h:198
#define portNVIC_PENDSV_PRI
Definition: port.c:110
static portFORCE_INLINE void vPortSetBASEPRI(uint32_t ulNewMaskValue)
Definition: portmacro.h:269
static void prvTaskExitError(void)
Definition: port.c:259
#define NULL
Definition: usbd_def.h:53
void vPortEnterCritical(void)
Definition: port.c:407
#define portNVIC_SYSTICK_PRI
Definition: port.c:111
#define portFPCCR
Definition: port.c:127
#define portNVIC_SYSTICK_LOAD_REG
Definition: port.c:94
void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime)
uint32_t TickType_t
Definition: portmacro.h:105
#define portCPUID
Definition: port.c:106
#define portNVIC_SYSTICK_ENABLE_BIT
Definition: port.c:99
#define pdFALSE
Definition: projdefs.h:86
void *configLIST_VOLATILE pvContainer
Definition: list.h:188
void vListInsertEnd(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:116
unsigned long UBaseType_t
Definition: portmacro.h:99
struct xLIST_ITEM *configLIST_VOLATILE pxPrevious
Definition: list.h:186
void xPortPendSVHandler(void xPortSysTickHandler void)
Definition: port.c:169
#define portDISABLE_INTERRUPTS()
Definition: portmacro.h:143
void vPortEndScheduler(void)
Definition: port.c:399
#define portNVIC_PENDSVSET_BIT
Definition: portmacro.h:133
#define portMAX_8_BIT_VALUE
Definition: port.c:117
#define portSTACK_TYPE
Definition: portmacro.h:94
portSTACK_TYPE StackType_t
Definition: portmacro.h:97
MiniListItem_t xListEnd
Definition: list.h:210
listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE configLIST_VOLATILE TickType_t xItemValue
Definition: list.h:196
#define portTASK_RETURN_ADDRESS
Definition: port.c:152
void vPortSVCHandler(void)
Definition: port.c:273
PRIVILEGED_FUNCTION BaseType_t xTaskIncrementTick(void)
Definition: tasks.c:2499
void vListInsert(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:145
#define configSYSTICK_CLOCK_HZ
Definition: port.c:83
#define configMAX_SYSCALL_INTERRUPT_PRIORITY
Definition: FreeRTOSConfig.h:157
static UBaseType_t uxCriticalNesting
Definition: port.c:157
void xPortSysTickHandler(void)
Definition: port.c:493
void(* TaskFunction_t)(void *)
Definition: projdefs.h:77
#define portNVIC_SYSTICK_CURRENT_VALUE_REG
Definition: port.c:95
const uint8_t[]
Definition: 404_html.c:3
#define portMISSED_COUNTS_FACTOR
Definition: port.c:144
#define portVECTACTIVE_MASK
Definition: port.c:124
#define portNVIC_SYSPRI2_REG
Definition: port.c:96
#define portNVIC_SYSTICK_CLK_BIT
Definition: port.c:85
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Definition: list.h:185
#define portENABLE_INTERRUPTS()
Definition: portmacro.h:144
#define listTEST_LIST_INTEGRITY(pxList)
Definition: list.h:157
#define portINITIAL_XPSR
Definition: port.c:131
#define configPOST_SLEEP_PROCESSING(x)
Definition: FreeRTOS.h:716
#define portTOP_BIT_OF_BYTE
Definition: port.c:118
void vPortSetupTimerInterrupt(void)
long BaseType_t
Definition: portmacro.h:98
#define pdTRUE
Definition: projdefs.h:87
#define configPRE_SLEEP_PROCESSING(x)
Definition: FreeRTOS.h:712
listFIRST_LIST_INTEGRITY_CHECK_VALUE configLIST_VOLATILE UBaseType_t uxNumberOfItems
Definition: list.h:208
#define portINITIAL_EXEC_RETURN
Definition: port.c:132
#define portFIRST_USER_INTERRUPT_NUMBER
Definition: port.c:114
#define configTICK_RATE_HZ
Definition: FreeRTOSConfig.h:109
static portFORCE_INLINE uint32_t ulPortRaiseBASEPRI(void)
Definition: portmacro.h:249
#define portMAX_24_BIT_NUMBER
Definition: port.c:135
void vPortEnterCritical(void)
Definition: port.c:407
#define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE(pxItem)
Definition: list.h:152
PRIVILEGED_FUNCTION void vTaskStepTick(const TickType_t xTicksToJump)
static void prvPortStartFirstTask(void)
Definition: port.c:292
#define listSET_LIST_INTEGRITY_CHECK_1_VALUE(pxList)
Definition: list.h:154
#define mtCOVERAGE_TEST_DELAY()
Definition: FreeRTOS.h:752
#define portMAX_PRIGROUP_BITS
Definition: port.c:119
PRIVILEGED_FUNCTION StackType_t * pxPortInitialiseStack(StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters)
void vPortExitCritical(void)
Definition: port.c:424
#define portNVIC_IP_REGISTERS_OFFSET_16
Definition: port.c:115
#define portAIRCR_REG
Definition: port.c:116
#define portNVIC_INT_CTRL_REG
Definition: portmacro.h:132
#define portASPEN_AND_LSPEN_BITS
Definition: port.c:128
static void vPortEnableVFP(void)
Definition: port.c:689
#define portNVIC_SYSTICK_CTRL_REG
Definition: port.c:93
#define portPRIORITY_GROUP_MASK
Definition: port.c:120
#define listSET_LIST_INTEGRITY_CHECK_2_VALUE(pxList)
Definition: list.h:155
void vListInitialiseItem(ListItem_t *const pxItem)
Definition: list.c:104
#define portSTART_ADDRESS_MASK
Definition: port.c:139
#define const
Definition: zconf.h:230
#define portNVIC_SYSTICK_COUNT_FLAG_BIT
Definition: port.c:100
#define mtCOVERAGE_TEST_MARKER()
Definition: FreeRTOS.h:748