Prusa MINI Firmware overview
|
Go to the documentation of this file.
73 #ifndef INC_FREERTOS_H
74 #error "include FreeRTOS.h must appear in source files before include croutine.h"
246 #define crSTART( pxCRCB ) switch( ( ( CRCB_t * )( pxCRCB ) )->uxState ) { case 0:
283 #define crSET_STATE0( xHandle ) ( ( CRCB_t * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2):
284 #define crSET_STATE1( xHandle ) ( ( CRCB_t * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1):
332 #define crDELAY( xHandle, xTicksToDelay ) \
333 if( ( xTicksToDelay ) > 0 ) \
335 vCoRoutineAddToDelayedList( ( xTicksToDelay ), NULL ); \
337 crSET_STATE0( ( xHandle ) );
422 #define crQUEUE_SEND( xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult ) \
424 *( pxResult ) = xQueueCRSend( ( pxQueue) , ( pvItemToQueue) , ( xTicksToWait ) ); \
425 if( *( pxResult ) == errQUEUE_BLOCKED ) \
427 crSET_STATE0( ( xHandle ) ); \
428 *pxResult = xQueueCRSend( ( pxQueue ), ( pvItemToQueue ), 0 ); \
430 if( *pxResult == errQUEUE_YIELD ) \
432 crSET_STATE1( ( xHandle ) ); \
433 *pxResult = pdPASS; \
514 #define crQUEUE_RECEIVE( xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult ) \
516 *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), ( xTicksToWait ) ); \
517 if( *( pxResult ) == errQUEUE_BLOCKED ) \
519 crSET_STATE0( ( xHandle ) ); \
520 *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), 0 ); \
522 if( *( pxResult ) == errQUEUE_YIELD ) \
524 crSET_STATE1( ( xHandle ) ); \
525 *( pxResult ) = pdPASS; \
623 #define crQUEUE_SEND_FROM_ISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken ) xQueueCRSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( xCoRoutinePreviouslyWoken ) )
736 #define crQUEUE_RECEIVE_FROM_ISR( pxQueue, pvBuffer, pxCoRoutineWoken ) xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) )
uint16_t uxState
Definition: croutine.h:98
ListItem_t xGenericListItem
Definition: croutine.h:94
PRIVILEGED_FUNCTION void vListInitialiseItem(ListItem_t *const pxItem)
Definition: list.c:104
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Definition: list.h:197
#define listSET_LIST_ITEM_OWNER(pxListItem, pxOwner)
Definition: list.h:221
#define traceEVENT_GROUP_WAIT_BITS_BLOCK(xEventGroup, uxBitsToWaitFor)
Definition: FreeRTOS.h:594
#define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(xEventGroup, uxBitsToClear)
Definition: FreeRTOS.h:606
#define portSET_INTERRUPT_MASK_FROM_ISR()
Definition: FreeRTOS.h:300
Definition: event_groups.c:105
void * CoRoutineHandle_t
Definition: croutine.h:86
PRIVILEGED_FUNCTION BaseType_t xTaskGetSchedulerState(void)
EventBits_t xEventGroupWaitBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
Definition: event_groups.c:324
crCOROUTINE_CODE pxCoRoutineFunction
Definition: croutine.h:93
#define traceEVENT_GROUP_SYNC_END(xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred)
Definition: FreeRTOS.h:590
#define configASSERT(x)
Definition: FreeRTOSConfig.h:162
#define xEventGroupSetBitsFromISR(xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken)
Definition: event_groups.h:603
PRIVILEGED_FUNCTION void * pvPortMalloc(size_t xSize)
Definition: heap_4.c:155
#define listCURRENT_LIST_LENGTH(pxList)
Definition: list.h:296
#define eventWAIT_FOR_ALL_BITS
Definition: event_groups.c:101
#define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY
Definition: projdefs.h:95
PRIVILEGED_FUNCTION void vListInsert(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:145
#define eventCLEAR_EVENTS_ON_EXIT_BIT
Definition: event_groups.c:99
void vCoRoutineAddToDelayedList(TickType_t xTicksToDelay, List_t *pxEventList)
PRIVILEGED_FUNCTION void vTaskPlaceOnUnorderedEventList(List_t *pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait)
Definition: tasks.c:2837
#define traceEVENT_GROUP_CREATE(xEventGroup)
Definition: FreeRTOS.h:578
PRIVILEGED_FUNCTION TickType_t xTaskGetTickCount(void)
Definition: tasks.c:2127
#define listGET_OWNER_OF_HEAD_ENTRY(pxList)
Definition: list.h:348
#define eventEVENT_BITS_CONTROL_BYTES
Definition: event_groups.c:102
#define traceEVENT_GROUP_WAIT_BITS_END(xEventGroup, uxBitsToWaitFor, xTimeoutOccurred)
Definition: FreeRTOS.h:598
PRIVILEGED_FUNCTION void vListInitialise(List_t *const pxList)
Definition: list.c:79
PRIVILEGED_FUNCTION void vListInsertEnd(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:116
TickType_t EventBits_t
Definition: event_groups.h:133
EventBits_t xEventGroupSetBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet)
Definition: event_groups.c:530
PRIVILEGED_FUNCTION BaseType_t xTaskRemoveFromUnorderedEventList(ListItem_t *pxEventListItem, const TickType_t xItemValue)
Definition: tasks.c:2962
#define traceEVENT_GROUP_DELETE(xEventGroup)
Definition: FreeRTOS.h:618
#define NULL
Definition: usbd_def.h:53
void * EventGroupHandle_t
Definition: event_groups.h:123
#define pdPASS
Definition: projdefs.h:89
#define PRIVILEGED_FUNCTION
Definition: mpu_wrappers.h:204
#define traceEVENT_GROUP_CREATE_FAILED()
Definition: FreeRTOS.h:582
uint32_t TickType_t
Definition: portmacro.h:105
#define traceEVENT_GROUP_CLEAR_BITS(xEventGroup, uxBitsToClear)
Definition: FreeRTOS.h:602
BaseType_t xCoRoutineCreate(crCOROUTINE_CODE pxCoRoutineCode, UBaseType_t uxPriority, UBaseType_t uxIndex)
PRIVILEGED_FUNCTION BaseType_t xTimerPendFunctionCallFromISR(PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, BaseType_t *pxHigherPriorityTaskWoken)
Definition: croutine.h:91
#define listGET_LIST_ITEM_VALUE(pxListItem)
Definition: list.h:249
void vEventGroupClearBitsCallback(void *pvEventGroup, const uint32_t ulBitsToClear)
Definition: event_groups.c:676
#define listSET_LIST_ITEM_VALUE(pxListItem, xValue)
Definition: list.h:239
struct corCoRoutineControlBlock CRCB_t
#define taskENTER_CRITICAL()
Definition: task.h:217
#define pdFALSE
Definition: projdefs.h:86
void *configLIST_VOLATILE pvContainer
Definition: list.h:188
#define xEventGroupClearBitsFromISR(xEventGroup, uxBitsToClear)
Definition: event_groups.h:451
unsigned long UBaseType_t
Definition: portmacro.h:99
PRIVILEGED_FUNCTION UBaseType_t uxListRemove(ListItem_t *const pxItemToRemove)
Definition: list.c:212
List_t xTasksWaitingForBits
Definition: event_groups.c:108
EventBits_t xEventGroupClearBits(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear)
Definition: event_groups.c:472
void
Definition: png.h:1083
#define portDISABLE_INTERRUPTS()
Definition: portmacro.h:143
#define traceEVENT_GROUP_SET_BITS_FROM_ISR(xEventGroup, uxBitsToSet)
Definition: FreeRTOS.h:614
#define traceEVENT_GROUP_SET_BITS(xEventGroup, uxBitsToSet)
Definition: FreeRTOS.h:610
MiniListItem_t xListEnd
Definition: list.h:210
#define traceEVENT_GROUP_SYNC_BLOCK(xEventGroup, uxBitsToSet, uxBitsToWaitFor)
Definition: FreeRTOS.h:586
Definition: FreeRTOS.h:1012
#define listLIST_IS_EMPTY(pxList)
Definition: list.h:291
ListItem_t xEventListItem
Definition: croutine.h:95
#define taskSCHEDULER_SUSPENDED
Definition: task.h:257
UBaseType_t uxIndex
Definition: croutine.h:97
EventBits_t uxEventBits
Definition: event_groups.c:107
const uint8_t[]
Definition: 404_html.c:3
UBaseType_t uxPriority
Definition: croutine.h:96
EventBits_t xEventGroupSync(EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
Definition: event_groups.c:208
#define portENABLE_INTERRUPTS()
Definition: portmacro.h:144
void vEventGroupDelete(EventGroupHandle_t xEventGroup)
Definition: event_groups.c:624
#define portYIELD_WITHIN_API
Definition: FreeRTOS.h:692
long BaseType_t
Definition: portmacro.h:98
#define pdTRUE
Definition: projdefs.h:87
void vCoRoutineSchedule(void)
#define listGET_OWNER_OF_NEXT_ENTRY(pxTCB, pxList)
Definition: list.h:318
void(* crCOROUTINE_CODE)(CoRoutineHandle_t, UBaseType_t)
Definition: croutine.h:89
PRIVILEGED_FUNCTION BaseType_t xTaskResumeAll(void)
Definition: tasks.c:2017
#define listGET_NEXT(pxListItem)
Definition: list.h:274
PRIVILEGED_FUNCTION void vPortFree(void *pv)
Definition: heap_4.c:305
struct xEventGroupDefinition EventGroup_t
BaseType_t xCoRoutineRemoveFromEventList(const List_t *pxEventList)
EventBits_t xEventGroupGetBitsFromISR(EventGroupHandle_t xEventGroup)
Definition: event_groups.c:514
#define taskEXIT_CRITICAL()
Definition: task.h:232
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(uxSavedStatusValue)
Definition: FreeRTOS.h:304
void vEventGroupSetBitsCallback(void *pvEventGroup, const uint32_t ulBitsToSet)
Definition: event_groups.c:668
PRIVILEGED_FUNCTION void vTaskSuspendAll(void)
Definition: tasks.c:1944
#define configMAX_CO_ROUTINE_PRIORITIES
Definition: FreeRTOSConfig.h:121
static PRIVILEGED_FUNCTION BaseType_t prvTestWaitCondition(const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits)
Definition: event_groups.c:682
#define eventUNBLOCKED_DUE_TO_BIT_SET
Definition: event_groups.c:100
PRIVILEGED_FUNCTION TickType_t uxTaskResetEventItemValue(void)
Definition: tasks.c:4162
#define listGET_HEAD_ENTRY(pxList)
Definition: list.h:266
#define mtCOVERAGE_TEST_MARKER()
Definition: FreeRTOS.h:748
#define listGET_END_MARKER(pxList)
Definition: list.h:282