Kernel
About FreeRTOS Kernel
Developer Docs
Secondary Docs
Supported Devices
API Reference
Licensing
Emulation/Simulation
QEMU (Cortex-M3)
Windows Simulator
Posix/Linux Simulator
Libraries
new
LTS Libraries
All libraries
FreeRTOS Plus
Introduction
FreeRTOS+TCP
FreeRTOS+CLI
FreeRTOS+IO
Backoff Algorithm
FreeRTOS Core
Introduction
coreMQTT
coreMQTT Agent
coreHTTP
coreSNTP
Transport Interface
coreJSON
corePKCS11
Cellular Interface
FreeRTOS for AWS
Introduction
AWS IoT OTA
AWS IoT Device Shadow
AWS IoT Jobs
AWS IoT Device Defender
AWS IoT Fleet Provisioning
AWS Signature Version 4
AWS Quick Connect Demos
AWS Reference Integrations
FreeRTOS Labs
Introduction
LoRaWAN
FreeRTOS+POSIX
FreeRTOS+FAT
FreeRTOS+TCP IPv6
FreeRTOS+TCP Multiple Interfaces
FreeRTOS MCUBoot
Delta Over-the-Air Updates
Featured Integrations
Introduction
i.MX RT1060 Arm Cortex-M7 MCU & EdgeLock SE050
STM32U5 Arm Cortex-M33 MCU w/ TrustZone & TF-M
ESP32-C3 RISC-V MCU w/ DSP
Licensing
Support
Contact
Support Options
Mailing List
Licensing
Extended Maintenance Plan
FAQ
Books and Manuals
Partners
Overview
Semiconductor
Productivity Tools
Training and Consulting
Software
Community
Overview
Forums
Blog
Media
FreeRTOS on Twitter
Webinars
Download FreeRTOS
Quality RTOS & Embedded Software
Download FreeRTOS
Menu
Kernel
About FreeRTOS Kernel
Developer Docs
Secondary Docs
Supported Devices
API Reference
Licensing
Emulation/Simulation
QEMU (Cortex-M3)
Windows Simulator
Posix/Linux Simulator
Libraries
new
LTS Libraries
All libraries
FreeRTOS Plus
Introduction
FreeRTOS+TCP
FreeRTOS+CLI
FreeRTOS+IO
Backoff Algorithm
FreeRTOS Core
Introduction
coreMQTT
coreMQTT Agent
coreHTTP
coreSNTP
Transport Interface
coreJSON
corePKCS11
Cellular Interface
FreeRTOS for AWS
Introduction
AWS IoT OTA
AWS IoT Device Shadow
AWS IoT Jobs
AWS IoT Device Defender
AWS IoT Fleet Provisioning
AWS Signature Version 4
AWS Quick Connect Demos
AWS Reference Integrations
FreeRTOS Labs
Introduction
LoRaWAN
FreeRTOS+POSIX
FreeRTOS+FAT
FreeRTOS+TCP IPv6
FreeRTOS+TCP Multiple Interfaces
FreeRTOS MCUBoot
Delta Over-the-Air Updates
Featured Integrations
Introduction
i.MX RT1060 Arm Cortex-M7 MCU & EdgeLock SE050
STM32U5 Arm Cortex-M33 MCU w/ TrustZone & TF-M
ESP32-C3 RISC-V MCU w/ DSP
Licensing
Support
Contact
Support Options
Mailing List
Licensing
Extended Maintenance Plan
FAQ
Books and Manuals
Partners
Overview
Semiconductor
Productivity Tools
Training and Consulting
Software
Community
Overview
Forums
Blog
Media
FreeRTOS on Twitter
Webinars
KERNEL
Home
Getting Started
FreeRTOS Books
About FreeRTOS Kernel
Overview
Coding, Testing, & Style
Quality Management
Official vs 3rd Party
Developer Docs
Tasks and Co-routines
Tasks Introduction
Task States
Task Priorities
Task Scheduling
Implementing a Task
Co-routine States
Implementing a Co-routine
Co-routine Priorities
Scheduling Co-routines
Limitations and Restrictions
More About Co-routines...
Quick Co-routine Example
Standard Demo Examples
Queues, Mutexes, Semaphores...
Queues
Binary Semaphores
Counting Semaphores
Mutexes
Recursive Mutexes
Direct To Task Notifications
Introduction
...As Binary Semaphore
...As Counting Semaphore
...As Event Group
...As Mailbox
Stream & Message Buffers
Introduction
...ISR to Task Streams
...Core to Core Messages
Software Timers
Introduction
Timer Service Daemon Task
Timer Daemon Configuration
One-Shot Vs Auto-Reload
Resetting a Timer
Event Groups (or "Flags")
Source Code Organization
FreeRTOSConfig.h
Static Vs Dynamic Memory
Heap Memory Management
Stack Overflow Protection
Creating a New Project
Secondary Docs
Idle Task
Hooks (Callbacks)
Symmetric Multiprocessing (SMP) Support
Memory Protection Support
Thread Local Storage Pointers
Blocking on Multiple Objects
Deferred Interrupt Handling
Low Power Support
Trace Features
Run Time Stats
Porting Guide
Legacy Trace Facility
FreeRTOS Concepts
RTOS Fundamentals
Multitasking Basics
Scheduling Basics
Context Switching
Real Time Applications
Real Time Scheduling
Implementation
Building Blocks
Development Tools
The RTOS Tick
GCC Signal Attribute
GCC Naked Attribute
FreeRTOS Tick Code
AVR Context
Saving the Context
Restoring the Context
Detailed Example
Putting It All Together
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Step 7
RAM Constrained Design Tips
Introduction
Solution 1
Solution 2
Solution 3
Solution 4
Import and Build an RTOS Demo Project in Eclipse
Emulation/Simulation
Windows Simulator
Posix/Linux Simulator
QEMU Cortex-M3
Supported Devices
Kernel Ports
Demos
Demo Projects
Supported Demos
Demo Quick Start
Hardware Independent
Modifying a Demo
API Reference
Task Creation
TaskHandle_t (type)
xTaskCreate()
xTaskCreateStatic()
xTaskCreateRestrictedStatic()
vTaskDelete()
Task Control
vTaskDelay()
vTaskDelayUntil()
xTaskDelayUntil()
uxTaskPriorityGet()
vTaskPrioritySet()
vTaskSuspend()
vTaskResume()
xTaskResumeFromISR()
xTaskAbortDelay()
Task Utilities
uxTaskGetSystemState()
vTaskGetInfo()
xTaskGetApplicationTaskTag()
xTaskGetCurrentTaskHandle()
xTaskGetHandle()
xTaskGetIdleTaskHandle()
uxTaskGetStackHighWaterMark()
eTaskGetState()
pcTaskGetName()
xTaskGetTickCount()
xTaskGetTickCountFromISR()
xTaskGetSchedulerState()
uxTaskGetNumberOfTasks()
vTaskList()
vTaskStartTrace()
ulTaskEndTrace()
vTaskGetRunTimeStats()
vTaskSetApplicationTaskTag()
xTaskCallApplicationTaskHook()
'SetThreadLocalStoragePointer()
'GetThreadLocalStoragePointer()
vTaskSetTimeOutState()
xTaskGetCheckForTimeOut()
RTOS Kernel Control
taskYIELD()
taskENTER_CRITICAL()
taskEXIT_CRITICAL()
taskENTER_CRITICAL_FROM_ISR()
taskEXIT_CRITICAL_FROM_ISR()
taskDISABLE_INTERRUPTS()
taskENABLE_INTERRUPTS()
vTaskStartScheduler()
vTaskEndScheduler()
vTaskSuspendAll()
xTaskResumeAll()
vTaskStepTick()
xTaskCatchUpTicks()
Direct To Task Notifications
xTaskNotifyGive()
vTaskNotifyGiveFromISR()
ulTaskNotifyTake()
xTaskNotify()
xTaskNotifyAndQuery()
xTaskNotifyAndQueryFromISR()
xTaskNotifyFromISR()
xTaskNotifyWait()
xTaskNotifyStateClear()
ulTaskNotifyValueClear()
Queues
xQueueCreate()
xQueueCreateStatic()
vQueueDelete()
xQueueSend()
xQueueSendFromISR()
xQueueSendToBack()
xQueueSendToBackFromISR()
xQueueSendToFront()
xQueueSendToFrontFromISR()
xQueueReceive()
xQueueReceiveFromISR()
uxQueueMessagesWaiting()
uxQueueMessagesWaitingFromISR()
uxQueueSpacesAvailable()
xQueueReset()
xQueueOverwrite()
xQueueOverwriteFromISR()
xQueuePeek()
xQueuePeekFromISR()
vQueueAddToRegistry()
vQueueUnregisterQueue()
pcQueueGetName()
xQueueIsQueueFullFromISR()
xQueueIsQueueEmptyFromISR()
Queue Sets
xQueueCreateSet()
xQueueAddToSet()
xQueueRemoveFromSet()
xQueueSelectFromSet()
xQueueSelectFromSetFromISR()
Stream Buffers
xStreamBufferCreate()
xStreamBufferCreateStatic()
xStreamBufferSend()
xStreamBufferSendFromISR()
xStreamBufferReceive()
xStreamBufferReceiveFromISR()
vStreamBufferDelete()
xStreamBufferBytesAvailable()
xStreamBufferSpacesAvailable()
xStreamBufferSetTriggerLevel()
xStreamBufferReset()
xStreamBufferIsEmpty()
xStreamBufferIsFull()
Message Buffers
xMessageBufferCreate()
xMessageBufferCreateStatic()
xMessageBufferSend()
xMessageBufferSendFromISR()
xMessageBufferReceive()
xMessageBufferReceiveFromISR()
vMessageBufferDelete()
xMessageBufferSpacesAvailable()
xMessageBufferReset()
xMessageBufferIsEmpty()
xMessageBufferIsFull()
Semaphore / Mutexes
xSemaphoreCreateBinary()
xSemaphoreCreateBinaryStatic()
vSemaphoreCreateBinary()
xSemaphoreCreateCounting()
xSemaphoreCreateCountingStatic()
xSemaphoreCreateMutex()
xSemaphoreCreateMutexStatic()
xSem'CreateRecursiveMutex()
xSem'CreateRecursiveMutexStatic()
vSemaphoreDelete()
xSemaphoreGetMutexHolder()
uxSemaphoreGetCount()
xSemaphoreTake()
xSemaphoreTakeFromISR()
xSemaphoreTakeRecursive()
xSemaphoreGive()
xSemaphoreGiveRecursive()
xSemaphoreGiveFromISR()
Software Timers
xTimerCreate()
xTimerCreateStatic()
xTimerIsTimerActive()
xTimerStart()
xTimerStop()
xTimerChangePeriod()
xTimerDelete()
xTimerReset()
xTimerStartFromISR()
xTimerStopFromISR()
xTimerChangePeriodFromISR()
xTimerResetFromISR()
pvTimerGetTimerID()
vTimerSetReloadMode()
vTimerSetTimerID()
xTimerGetTimerDaemonTaskHandle()
xTimerPendFunctionCall()
xTimerPendFunctionCallFromISR()
pcTimerGetName()
xTimerGetPeriod()
xTimerGetExpiryTime()
uxTimerGetReloadMode()
Event Groups (or 'flags')
xEventGroupCreate()
xEventGroupCreateStatic()
vEventGroupDelete()
xEventGroupWaitBits()
xEventGroupSetBits()
xEventGroupSetBitsFromISR()
xEventGroupClearBits()
xEventGroupClearBitsFromISR()
xEventGroupGetBits()
xEventGroupGetBitsFromISR()
xEventGroupSync()
FreeRTOS-MPU Specific
xTaskCreateRestricted()
vTaskAllocateMPURegions()
'SWITCH_TO_USER_MODE()
Co-routines
CoRoutineHandle_t (type)
xCoRoutineCreate()
crDELAY()
crQUEUE_SEND()
crQUEUE_RECEIVE()
crQUEUE_SEND_FROM_ISR()
crQUEUE_RECEIVE_FROM_ISR()
vCoRoutineSchedule()
Licensing
WHAT'S NEW
Featured FreeRTOS IoT Integrations:
Introducing three featured integrations for more secure IoT applications. See the
blog post
.
Extended Maintenance Plan (EMP):
Announcing the EMP for FreeRTOS, provided by AWS. See the
blog post
.
Delta Over-the-Air Updates:
Announcing Delta OTA updates. See the
blog post
.
December 2021 Releases:
Include MCUBoot demo and a new FreeRTOS download. See the
blog post
.
FreeRTOS LTS libraries:
The LTS libraries are now included in our partner toolchains. See the
blog post
.
This site requires JavaScript
to be enabled.
Click here
to
view a static menu.
Configuration
[
API
]
Modules
Customisation
Memory Management
Stack Overflow Detection
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.