Contents
List of Figures
List of Code Listings
List of Tables
List of Notation
Chapter 1 About This Manual
1.1 Scope
The Order in Which Functions Appear in This Manual
API Usage Restrictions
Chapter 2 Task and Scheduler API
2.1 portSWITCH_TO_USER_MODE()
Summary
Parameters
Return Values
Notes
2.2 vTaskAllocateMPURegions()
Summary
Parameters
Notes
Example
2.3 xTaskAbortDelay()
Summary
Parameters
Notes
Example
2.4 xTaskCallApplicationTaskHook()
Summary
Parameters
Example
2.5 xTaskCheckForTimeOut()
Summary
Parameters
Example
2.6 xTaskCreate()
Summary
Parameters
Return Values
Notes
Example
2.7 xTaskCreateStatic()
Summary
Parameters
Return Values
Notes
Example
2.8 xTaskCreateRestricted()
Summary
Parameters
Return Values
Notes
Example
2.9 vTaskDelay()
Summary
Parameters
Return Values
Notes
Example
2.10 vTaskDelayUntil()
Summary
Differences Between vTaskDelay() and vTaskDelayUntil()
Parameters
Return Values
Notes
Example
2.11 vTaskDelete()
Summary
Parameters
Return Values
Example
2.12 taskDISABLE_INTERRUPTS()
Summary
Parameters
Return Values
2.13 taskENABLE_INTERRUPTS()
Summary
Parameters
Return Values
2.14 taskENTER_CRITICAL()
Summary
Parameters
Return Values
Example
2.15 taskENTER_CRITICAL_FROM_ISR()
Summary
Parameters
Return Values
Example
2.16 taskEXIT_CRITICAL()
Summary
Parameters
Return Values
Example
2.1 taskEXIT_CRITICAL_FROM_ISR()
Summary
Parameters
Return Values
Example
2.2 xTaskGetApplicationTaskTag()
Summary
Parameters
Return Values
Notes
Example
2.3 xTaskGetCurrentTaskHandle()
Summary
Parameters
Return Values
Notes
2.4 xTaskGetIdleTaskHandle()
Summary
Parameters
Return Values
Notes
2.1 xTaskGetHandle()
Summary
Parameters
Return Values
Notes
Example
2.2 uxTaskGetNumberOfTasks()
Summary
Parameters
Return Values
2.3 vTaskGetRunTimeStats()
Summary
Parameters
Return Values
Notes
Example
2.4 xTaskGetSchedulerState()
Summary
Parameters
Return Values
Notes
2.5 uxTaskGetStackHighWaterMark()
Summary
Parameters
Return Values
Notes
Example
2.6 eTaskGetState()
Summary
Parameters
Return Values
Notes
2.7 uxTaskGetSystemState()
Summary
Parameters
Return Values
Notes
Example
2.8 vTaskGetTaskInfo()
Summary
Parameters
Notes
Example
2.9 pvTaskGetThreadLocalStoragePointer()
Summary
Parameters
Return Values
Example
2.10 pcTaskGetName()
Summary
Parameters
Return Values
2.11 xTaskGetTickCount()
Summary
Parameters
Return Values
Notes
Example
2.12 xTaskGetTickCountFromISR()
Summary
Parameters
Return Values
Notes
Example
2.13 vTaskList()
Summary
Parameters
Return Values
Notes
Example
2.14 xTaskNotify()
Summary
Parameters
Return Values
Notes
Example
2.15 xTaskNotifyAndQuery()
Summary
Parameters
Return Values
Notes
Example
2.16 xTaskNotifyAndQueryFromISR()
Summary
Parameters
Return Values
Notes
Example
2.17 xTaskNotifyFromISR()
Summary
Parameters
Return Values
Notes
Example
2.18 xTaskNotifyGive()
Summary
Parameters
Return Values
Notes
Example
2.19 vTaskNotifyGiveFromISR()
Summary
Parameters
Notes
Example
2.20 xTaskNotifyStateClear()
Summary
Parameters
Return Values
Example
2.21 ulTaskNotifyTake()
Summary
Parameters
Return Values
Notes
Example
2.22 xTaskNotifyWait()
Summary
Parameters
Return Values
Notes
Example
2.23 uxTaskPriorityGet()
Summary
Parameters
Return Values
Example
2.24 vTaskPrioritySet()
Summary
Parameters
Return Values
Notes
Example
2.25 vTaskResume()
Summary
Parameters
Return Values
Notes
Example
2.26 xTaskResumeAll()
Summary
Parameters
Return Values
Notes
Example
2.27 xTaskResumeFromISR()
Summary
Parameters
Return Values
Notes
Example
2.28 vTaskSetApplicationTaskTag()
Summary
Parameters
Return Values
Notes
Example
2.29 vTaskSetThreadLocalStoragePointer()
Summary
Parameters
Return Values
Example
2.30 vTaskSetTimeOutState()
Summary
Parameters
Example
2.31 vTaskStartScheduler()
Summary
Parameters
Return Values
Notes
Example
2.32 vTaskStepTick()
Summary
Parameters
Return Values
Notes
Example
2.33 vTaskSuspend()
Summary
Parameters
Return Values
Notes
Example
2.34 vTaskSuspendAll()
Summary
Parameters
Return Values
Notes
Example
2.35 taskYIELD()
Summary
Parameters
Return Values
Notes
Example
Chapter 3 Queue API
3.1 vQueueAddToRegistry()
Summary
Parameters
Return Values
Notes
Example
3.2 xQueueAddToSet()
Summary
Parameters
Return Values
Notes
Example
3.3 xQueueCreate()
Summary
Parameters
Return Values
Notes
Example
3.4 xQueueCreateSet()
Summary
Parameters
Return Values
Notes
Example
3.5 xQueueCreateStatic()
Summary
Parameters
Return Values
Notes
Example
3.6 vQueueDelete()
Summary
Parameters
Return Values
Notes
Example
3.7 pcQueueGetName()
Summary
Parameters
Return Values
3.8 xQueueIsQueueEmptyFromISR()
Summary
Parameters
Return Values
Notes
3.9 xQueueIsQueueFullFromISR()
Summary
Parameters
Return Values
Notes
3.10 uxQueueMessagesWaiting()
Summary
Parameters
Returned Value
Example
3.11 uxQueueMessagesWaitingFromISR()
Summary
Parameters
Returned Value
Example
3.12 xQueueOverwrite()
Summary
Parameters
Returned Value
Example
3.13 xQueueOverwriteFromISR()
Summary
Parameters
Returned Value
Example
3.14 xQueuePeek()
Summary
Parameters
Return Values
Notes
Example
3.15 xQueuePeekFromISR()
Summary
Parameters
Return Values
Notes
3.16 xQueueReceive()
Summary
Parameters
Return Values
Notes
Example
3.17 xQueueReceiveFromISR()
Summary
Parameters
Return Values
Notes
Example
3.18 xQueueRemoveFromSet()
Summary
Summary
Parameters
Return Values
Notes
Example
3.19 xQueueReset()
Summary
Parameters
Return Values
3.20 xQueueSelectFromSet()
Summary
Parameters
Return Values
Notes
Example
3.21 xQueueSelectFromSetFromISR()
Summary
Parameters
Return Values
Notes
Example
3.22 xQueueSend(), xQueueSendToFront(), xQueueSendToBack()
Summary
Parameters
Return Values
Notes
Example
3.23 xQueueSendFromISR(), xQueueSendToBackFromISR(), xQueueSendToFrontFromISR()
Summary
Parameters
Return Values
Notes
Example
3.24 uxQueueSpacesAvailable()
Summary
Parameters
Returned Value
Example
Chapter 4 Semaphore API
4.1 vSemaphoreCreateBinary()
Summary
Parameters
Return Values
Notes
Example
4.2 xSemaphoreCreateBinary()
Summary
Parameters
Return Values
Notes
Example
4.3 xSemaphoreCreateBinaryStatic()
Summary
Parameters
Return Values
Notes
Example
4.4 xSemaphoreCreateCounting()
Summary
Parameters
Return Values
Notes
Example
4.5 xSemaphoreCreateCountingStatic()
Summary
Parameters
Return Values
Notes
Example
4.6 xSemaphoreCreateMutex()
Summary
Parameters
Return Values
Notes
Example
4.7 xSemaphoreCreateMutexStatic()
Summary
Parameters
Return Values
Notes
Example
4.8 xSemaphoreCreateRecursiveMutex()
Summary
Parameters
Return Values
Notes
Example
4.9 xSemaphoreCreateRecursiveMutexStatic()
Summary
Parameters
Return Values
Notes
Example
4.10 vSemaphoreDelete()
Summary
Parameters
Return Values
Notes
4.11 uxSemaphoreGetCount()
Summary
Parameters
Return Values
4.12 xSemaphoreGetMutexHolder()
Summary
Parameters
Return Values
Notes
4.13 xSemaphoreGive()
Summary
Parameters
Return Values
Notes
Example
4.14 xSemaphoreGiveFromISR()
Summary
Parameters
Return Values
Notes
Example
4.15 xSemaphoreGiveRecursive()
Summary
Parameters
Return Values
Notes
Example
4.16 xSemaphoreTake()
Summary
Parameters
Return Values
Notes
Example
4.17 xSemaphoreTakeFromISR()
Summary
Parameters
Return Values
4.18 xSemaphoreTakeRecursive()
Summary
Parameters
Return Values
Notes
Example
Chapter 5 Software Timer API
5.1 xTimerChangePeriod()
Summary
Parameters
Return Values
Notes
Example
5.2 xTimerChangePeriodFromISR()
Summary
Parameters
Return Values
Notes
Example
5.3 xTimerCreate()
Summary
Parameters
Return Values
Notes
Example
5.4 xTimerCreateStatic()
Summary
Parameters
Return Values
Notes
Example
5.5 xTimerDelete()
Summary
Parameters
Return Values
Notes
Example
5.1 xTimerGetExpiryTime()
Summary
Parameters
Return Values
Notes
Example
5.1 pcTimerGetName()
Summary
Parameters
Return Values
Notes
5.2 xTimerGetPeriod()
Summary
Parameters
Return Values
Notes
Example
5.3 xTimerGetTimerDaemonTaskHandle()
Summary
Parameters
Return Values
Notes
5.4 pvTimerGetTimerID()
Summary
Parameters
Return Values
Notes
Example
5.5 xTimerIsTimerActive()
Summary
Parameters
Return Values
Notes
Example
5.6 xTimerPendFunctionCall()
Summary
Parameters
Return Values
Notes
5.7 xTimerPendFunctionCallFromISR()
Summary
Parameters
Return Values
Notes
Example
5.8 xTimerReset()
Summary
Parameters
Return Values
Notes
Example
5.9 xTimerResetFromISR()
Summary
Parameters
Return Values
Notes
Example
5.10 vTimerSetTimerID()
Summary
Parameters
Notes
Example
5.11 xTimerStart()
Summary
Parameters
Return Values
Notes
Example
5.12 xTimerStartFromISR()
Summary
Parameters
Return Values
Notes
Example
5.13 xTimerStop()
Summary
Parameters
Return Values
Notes
Example
5.14 xTimerStopFromISR()
Summary
Parameters
Return Values
Notes
Example
Chapter 6 Event Groups API
6.1 xEventGroupClearBits()
Summary
Parameters
Return Values
Notes
Example
6.2 xEventGroupClearBitsFromISR()
Summary
Parameters
Return Values
Notes
Example
6.3 xEventGroupCreate()
Summary
Parameters
Return Values
Notes
Example
6.4 xEventGroupCreateStatic()
Summary
Parameters
Return Values
Notes
Example
6.1 vEventGroupDelete()
Summary
Parameters
Return Values
Notes
6.2 xEventGroupGetBits()
Summary
Parameters
Return Values
Notes
6.1 xEventGroupGetBitsFromISR()
Summary
Parameters
Return Values
Notes
6.2 xEventGroupSetBits()
Summary
Parameters
Return Values
Notes
Example
6.3 xEventGroupSetBitsFromISR()
Summary
Parameters
Return Values
Notes
Example
6.1 xEventGroupSync()
Summary
Parameters
Return Values
Notes
Example
6.2 xEventGroupWaitBits()
Summary
Parameters
Return Values
Notes
Example
Chapter 7 Kernel Configuration
7.1 FreeRTOSConfig.h
7.2 Constants that Start “INCLUDE_”
INCLUDE_xEventGroupSetBitsFromISR
INCLUDE_xSemaphoreGetMutexHolder
INCLUDE_xTaskAbortDelay
INCLUDE_vTaskDelay
INCLUDE_vTaskDelayUntil
INCLUDE_vTaskDelete
INCLUDE_xTaskGetCurrentTaskHandle
INCLUDE_xTaskGetCurrentTaskHandle must be set to 1 for the xTaskGetCurrentTaskHandle() API function to be available.
INCLUDE_xTaskGetHandle
INCLUDE_xTaskGetHandle must be set to 1 for the xTaskGetHandle() API function to be available.
INCLUDE_xTaskGetIdleTaskHandle
INCLUDE_xTaskGetSchedulerState
INCLUDE_uxTaskGetStackHighWaterMark
INCLUDE_uxTaskPriorityGet
INCLUDE_vTaskPrioritySet
INCLUDE_xTaskResumeFromISR
INCLUDE_eTaskGetState
INCLUDE_vTaskSuspend
INCLUDE_xTimerPendFunctionCall
7.3 Constants that Start “config”
configAPPLICATION_ALLOCATED_HEAP
configASSERT
configCHECK_FOR_STACK_OVERFLOW
configCPU_CLOCK_HZ
configSUPPORT_DYNAMIC_ALLOCATION
configENABLE_BACKWARD_COMPATIBILITY
configGENERATE_RUN_TIME_STATS
configIDLE_SHOULD_YIELD
configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
configKERNEL_INTERRUPT_PRIORITY, configMAX_SYSCALL_INTERRUPT_PRIORITY, configMAX_API_CALL_INTERRUPT_PRIORITY
configMAX_CO_ROUTINE_PRIORITIES
configMAX_PRIORITIES
configMAX_TASK_NAME_LEN
configMAX_SYSCALL_INTERRUPT_PRIORITY
configMINIMAL_STACK_SIZE
configNUM_THREAD_LOCAL_STORAGE_POINTERS
configQUEUE_REGISTRY_SIZE
configSUPPORT_STATIC_ALLOCATION
configTICK_RATE_HZ
configTIMER_QUEUE_LENGTH
configTIMER_TASK_PRIORITY
configTIMER_TASK_STACK_DEPTH
configTOTAL_HEAP_SIZE
configUSE_16_BIT_TICKS
configUSE_ALTERNATIVE_API
configUSE_APPLICATION_TASK_TAG
configUSE_CO_ROUTINES
configUSE_COUNTING_SEMAPHORES
configUSE_DAEMON_TASK_STARTUP_HOOK
configUSE_IDLE_HOOK
configUSE_MALLOC_FAILED_HOOK
configUSE_MUTEXES
configUSE_NEWLIB_REENTRANT
configUSE_PORT_OPTIMISED_TASK_SELECTION
configUSE_PREEMPTION
configUSE_QUEUE_SETS
configUSE_RECURSIVE_MUTEXES
configUSE_STATS_FORMATTING_FUNCTIONS
configUSE_TASK_NOTIFICATIONS
configUSE_TICK_HOOK
configUSE_TICKLESS_IDLE
configUSE_TIMERS
configUSE_TIME_SLICING
configUSE_TRACE_FACILITY
APPENDIX 1: Data Types and Coding Style Guide
Data Types
Variable Names
Function Names
Formatting
Macro Names
Rationale for Excessive Type Casting
INDEX