| 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