Freertos V10.0.0 Reference Manual
Total Page:16
File Type:pdf, Size:1020Kb
The FreeRTOS™ Reference Manual The FreeRTOS™ Reference Manual API Functions and Configuration Options Amazon Web Services Reference Manual for FreeRTOS version 10.0.0 issue 1. © Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. http://www.FreeRTOS.org http://www.FreeRTOS.org/plus http://www.FreeRTOS.org/labs Contents Contents ................................................................................................................................... 5 List of Figures ........................................................................................................................... 9 List of Code Listings ............................................................................................................... 10 List of Tables .......................................................................................................................... 16 List of Notation ........................................................................................................................ 17 Chapter 1 About This Manual ............................................................................................... 18 1.1 Scope........................................................................................................................ 19 Chapter 2 Task and Scheduler API ...................................................................................... 22 2.1 portSWITCH_TO_USER_MODE() ............................................................................ 23 2.2 vTaskAllocateMPURegions() .................................................................................... 24 2.3 xTaskAbortDelay() .................................................................................................... 27 2.4 xTaskCallApplicationTaskHook() ............................................................................... 29 2.5 xTaskCheckForTimeOut() ......................................................................................... 32 2.6 xTaskCreate() ........................................................................................................... 34 2.7 xTaskCreateStatic() .................................................................................................. 39 2.8 xTaskCreateRestricted() ........................................................................................... 43 2.9 vTaskDelay() ............................................................................................................. 48 2.10 vTaskDelayUntil() ...................................................................................................... 50 2.11 vTaskDelete() ............................................................................................................ 53 2.12 taskDISABLE_INTERRUPTS() ................................................................................. 55 2.13 taskENABLE_INTERRUPTS() .................................................................................. 57 2.14 taskENTER_CRITICAL() ........................................................................................... 58 2.15 taskENTER_CRITICAL_FROM_ISR() ....................................................................... 61 2.16 taskEXIT_CRITICAL() ............................................................................................... 63 2.1 taskEXIT_CRITICAL_FROM_ISR() ........................................................................... 65 2.2 xTaskGetApplicationTaskTag() ................................................................................. 67 2.3 xTaskGetCurrentTaskHandle().................................................................................. 69 2.4 xTaskGetIdleTaskHandle() ........................................................................................ 70 2.1 xTaskGetHandle() ..................................................................................................... 71 2.2 uxTaskGetNumberOfTasks() .................................................................................... 73 2.3 vTaskGetRunTimeStats() .......................................................................................... 74 2.4 xTaskGetSchedulerState() ........................................................................................ 78 2.5 uxTaskGetStackHighWaterMark() ............................................................................. 79 2.6 eTaskGetState() ........................................................................................................ 81 2.7 uxTaskGetSystemState() .......................................................................................... 83 2.8 vTaskGetTaskInfo() ................................................................................................... 87 2.9 pvTaskGetThreadLocalStoragePointer() ................................................................... 89 v 2.10 pcTaskGetName() ..................................................................................................... 91 2.11 xTaskGetTickCount() ................................................................................................ 92 2.12 xTaskGetTickCountFromISR() .................................................................................. 94 2.13 vTaskList() ................................................................................................................. 96 2.14 xTaskNotify() ............................................................................................................. 99 2.15 xTaskNotifyAndQuery() ........................................................................................... 102 2.16 xTaskNotifyAndQueryFromISR() ............................................................................. 106 2.17 xTaskNotifyFromISR() ............................................................................................. 110 2.18 xTaskNotifyGive() .................................................................................................... 115 2.19 vTaskNotifyGiveFromISR() ...................................................................................... 118 2.20 xTaskNotifyStateClear() .......................................................................................... 121 2.21 ulTaskNotifyTake() .................................................................................................. 123 2.22 xTaskNotifyWait() .................................................................................................... 126 2.23 uxTaskPriorityGet() ................................................................................................. 129 2.24 vTaskPrioritySet() .................................................................................................... 131 2.25 vTaskResume() ....................................................................................................... 133 2.26 xTaskResumeAll() ................................................................................................... 135 2.27 xTaskResumeFromISR() ......................................................................................... 138 2.28 vTaskSetApplicationTaskTag() ................................................................................ 141 2.29 vTaskSetThreadLocalStoragePointer() .................................................................... 143 2.30 vTaskSetTimeOutState() ......................................................................................... 145 2.31 vTaskStartScheduler() ............................................................................................. 147 2.32 vTaskStepTick() ...................................................................................................... 149 2.33 vTaskSuspend() ...................................................................................................... 151 2.34 vTaskSuspendAll() .................................................................................................. 153 2.35 taskYIELD() ............................................................................................................. 155 Chapter 3 Queue API ......................................................................................................... 157 3.1 vQueueAddToRegistry() .......................................................................................... 158 3.2 xQueueAddToSet() ................................................................................................. 160 3.3 xQueueCreate()....................................................................................................... 162 3.4 xQueueCreateSet() ................................................................................................. 164 3.5 xQueueCreateStatic() .............................................................................................. 168 3.6 vQueueDelete() ....................................................................................................... 170 3.7 pcQueueGetName() ................................................................................................ 172 3.8 xQueueIsQueueEmptyFromISR() ............................................................................ 173 3.9 xQueueIsQueueFullFromISR() ................................................................................ 174 3.10 uxQueueMessagesWaiting() ................................................................................... 175 3.11 uxQueueMessagesWaitingFromISR() ....................................................................