Kernel
About FreeRTOS Kernel
Developer Docs
Secondary Docs
Supported Devices
API Reference
Licensing
Emulation/Simulation
QEMU (Cortex-M3)
Windows Simulator
Posix/Linux Simulator
QEMU (Cortex-M3 on MPS2)
Libraries
new
LTS Libraries
All libraries
FreeRTOS Plus
Introduction
FreeRTOS-Plus-TCP
FreeRTOS-Plus-CLI
FreeRTOS-Plus-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-Plus-POSIX
FreeRTOS-Plus-FAT
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
Arm Corstone-3xx on Arm Cortex-M MCU
Licensing
Security
Security Overview
Security Updates
Kernel Threat Model
Security Vulnerabilities
Support
Contact
Support Options
Mailing List
Licensing
Extended Maintenance Plan
FAQ
Books and Manuals
Partners
Overview
Semiconductor
Productivity Tools
Training and Consulting
Libraries
Safety Certification
Third-Party Board Support Packages
Community
Overview
Contributions
Forums
Blog
Media
FreeRTOS on Twitter
Webinars
FreeRTOS in the Wild
English
中文(简体)
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
QEMU (Cortex-M3 on MPS2)
Libraries
new
LTS Libraries
All libraries
FreeRTOS Plus
Introduction
FreeRTOS-Plus-TCP
FreeRTOS-Plus-CLI
FreeRTOS-Plus-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-Plus-POSIX
FreeRTOS-Plus-FAT
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
Arm Corstone-3xx on Arm Cortex-M MCU
Licensing
Security
Security Overview
Security Updates
Kernel Threat Model
Security Vulnerabilities
Support
Contact
Support Options
Mailing List
Licensing
Extended Maintenance Plan
FAQ
Books and Manuals
Partners
Overview
Semiconductor
Productivity Tools
Training and Consulting
Libraries
Safety Certification
Third-Party Board Support Packages
Community
Overview
Contributions
Forums
Blog
Media
FreeRTOS on Twitter
Webinars
FreeRTOS in the Wild
FreeRTOS Sitemap
Home
Kernel
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
Tick Resolution
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
QEMU-emulated ARM Cortex-M3 on MPS2 (AN385)
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()
vTaskDelete()
xTaskGetStaticBuffers()
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()
xTaskCheckForTimeOut()
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()
xQueueGetStaticBuffers()
Queue Sets
xQueueCreateSet()
xQueueAddToSet()
xQueueRemoveFromSet()
xQueueSelectFromSet()
xQueueSelectFromSetFromISR()
Stream Buffers
xStreamBufferCreate()
xStreamBufferCreateStatic()
xStreamBufferSend()
xStreamBufferSendFromISR()
xStreamBufferReceive()
xStreamBufferReceiveFromISR()
vStreamBufferDelete()
xStreamBufferBytesAvailable()
xStreamBufferSpacesAvailable()
xStreamBufferSetTriggerLevel()
xStreamBufferReset()
xStreamBufferIsEmpty()
xStreamBufferIsFull()
xStreamBufferGetStaticBuffers()
Message Buffers
xMessageBufferCreate()
xMessageBufferCreateStatic()
xMessageBufferSend()
xMessageBufferSendFromISR()
xMessageBufferReceive()
xMessageBufferReceiveFromISR()
vMessageBufferDelete()
xMessageBufferSpacesAvailable()
xMessageBufferReset()
xMessageBufferIsEmpty()
xMessageBufferIsFull()
xMessageBufferGetStaticBuffers()
Semaphore / Mutexes
xSemaphoreCreateBinary()
xSemaphoreCreateBinaryStatic()
vSemaphoreCreateBinary()
xSemaphoreCreateCounting()
xSemaphoreCreateCountingStatic()
xSemaphoreCreateMutex()
xSemaphoreCreateMutexStatic()
xSem'CreateRecursiveMutex()
xSem'CreateRecursiveMutexStatic()
vSemaphoreDelete()
xSemaphoreGetMutexHolder()
uxSemaphoreGetCount()
xSemaphoreTake()
xSemaphoreTakeFromISR()
xSemaphoreTakeRecursive()
xSemaphoreGive()
xSemaphoreGiveRecursive()
xSemaphoreGiveFromISR()
xSemaphoreGetStaticBuffer()
Software Timers
xTimerCreate()
xTimerCreateStatic()
xTimerIsTimerActive()
xTimerStart()
xTimerStop()
xTimerChangePeriod()
xTimerDelete()
xTimerReset()
xTimerStartFromISR()
xTimerStopFromISR()
xTimerChangePeriodFromISR()
xTimerResetFromISR()
pvTimerGetTimerID()
vTimerSetReloadMode()
vTimerSetTimerID()
xTimerGetTimerDaemonTaskHandle()
xTimerPendFunctionCall()
xTimerPendFunctionCallFromISR()
pcTimerGetName()
xTimerGetPeriod()
xTimerGetExpiryTime()
xTimerGetReloadMode()
Event Groups (or 'flags')
xEventGroupCreate()
xEventGroupCreateStatic()
vEventGroupDelete()
xEventGroupWaitBits()
xEventGroupSetBits()
xEventGroupSetBitsFromISR()
xEventGroupClearBits()
xEventGroupClearBitsFromISR()
xEventGroupGetBits()
xEventGroupGetBitsFromISR()
xEventGroupSync()
xEventGroupGetStaticBuffer()
FreeRTOS-MPU Specific
xTaskCreateRestricted()
xTaskCreateRestrictedStatic()
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
Libraries
LTS Libraries
All libraries
FreeRTOS Plus
FreeRTOS Core
FreeRTOS for AWS
FreeRTOS Labs
Featured Integrations
Security
Security
Security Overview
Security Updates
Kernel Threat Model
Security Vulnerabilities
Resources
Books and Manuals
Guides
Simulators
Windows Simulator
POSIX/Linux Simulator
Community
Overview
Contributions
Forums
Blog
Media
FreeRTOS on Twitter
Webinars
FreeRTOS in the Wild
Partners
Overview
Semiconductor
Productivity Tools
Training and Consulting
Libraries
Safety Certification
Third-Party Board Support Packages
Support
Contact
Support Options
Mailing List
Licensing
Extended Maintenance Plan
FAQ
About FreeRTOS
Long Term Support
Extended Maintenance Plan (EMP)
AWS Reference Integrations
GitHub Repository Structure & Versioning
Amazon
Testing
API
Ports
Memory Usage, Boot Times, Context Switch Times
Licensing
Scheduling
ISR
Books & Manuals
FreeRTOS+TCP
FreeRTOS-Plus-TCP
Introduction
Documentation
Networking Basics/Glossary
Introduction
Ethernet Addressing
MTU
Internet Protocol (IP)
IP Address
ARP
Subnet / Netmask
Router and Gateway
UDP
TCP
MSS
Port Number
Sockets
Binding
Clients and Servers
Static IP Address
DHCP (IPv4)
DHCPv6
Name Resolution
DNS
mDNS
LLMNR
NBNS (NetBIOS)
ND
Endian
ICMP
ICMPv6
RA
Multiple Interfaces
FreeRTOS-Plus-TCP Multiple Interfaces
FreeRTOS-Plus-TCP IPv6 Functionality
IPv6 and Multiple Interface Functions
FreeRTOS-Plus-TCP Tutorial
Introduction
Source Code Organisation
Including in a Project
Initialisation and Startup
Initialisation and Startup [Deprecated]
Creating TCP Sockets
Sending TCP Data
Receiving TCP Data
Closing a TCP Socket
Creating UDP Sockets
Sending UDP Data (standard)
Sending UDP Data (zero copy)
Receiving UDP Data (standard)
Receiving UDP Data (zero copy)
Buffer Mgmt. & Performance
Configuration File
Configuration Examples
Trace Macros
API Reference
Primary Socket API
FreeRTOS_socket
FreeRTOS_bind
FreeRTOS_connect
FreeRTOS_listen
FreeRTOS_accept
FreeRTOS_send
FreeRTOS_sendto
FreeRTOS_recv
FreeRTOS_recvfrom
FreeRTOS_setsockopt
FreeRTOS_shutdown
FreeRTOS_closesocket
FreeRTOS_select
Misc Socket API
FreeRTOS_CreateSocketSet
FreeRTOS_FD_SET
FreeRTOS_FD_CLR
FreeRTOS_FD_ISSET
FreeRTOS_gethostbyname
FreeRTOS_inet_ntoa
FreeRTOS_inet_addr_quick
FreeRTOS_inet_addr
FreeRTOS_htons
FreeRTOS_htonl
FreeRTOS_ntohs
FreeRTOS_ntohl
FreeRTOS_outstanding
FreeRTOS_recvcount
FreeRTOS_issocketconnected
FreeRTOS_GetLocalAddress
FreeRTOS_GetRemoteAddress
FreeRTOS_maywrite
FreeRTOS-Plus-TCP API
FreeRTOS_IpInit [Deprecated]
FreeRTOS_IPInit_Multi()
FreeRTOS_GetAddressConfiguration [Deprecated]
FreeRTOS_GetEndPointConfiguration()
FreeRTOS_GetUDPPayloadBuffer [Deprecated]
FreeRTOS_GetUDPPayloadBuffer_Multi()
FreeRTOS_ReleaseUDPPayloadBuffer
FreeRTOS_SendPingRequest
FreeRTOS_GetMACAddress [Deprecated]
FreeRTOS_GetIPAddress [Deprecated]
FreeRTOS_GetIPType()
FreeRTOS_GetGatewayAddress [Deprecated]
FreeRTOS_GetDNSServerAddress [Deprecated]
FreeRTOS_GetNetmask [Deprecated]
FreeRTOS_OutputARPRequest
FreeRTOS_IsNetworkUp
FreeRTOS_AllEndPointsUp()
FreeRTOS_IsEndPointUp()
FreeRTOS_SetAddressConfiguration [Deprecated]
FreeRTOS_SetEndPointConfiguration()
FreeRTOS_SetGatewayAddress [Deprecated]
FreeRTOS_SetIPAddress [Deprecated]
FreeRTOS_SetNetmask() [Deprecated]
FreeRTOS_SignalSocket
FreeRTOS_FillEndPoint()
FreeRTOS_FillEndPoint_IPv6()
Hook/Callback API
eApplicationProcessCustomFrameHook
pcApplicationHostnameHook
vApplicationIPNetworkEventHook_Multi()
vApplicationIPNetworkEventHook() [Deprecated]
vApplicationPingReplyHook
xApplicationDHCPHook [Deprecated]
xApplicationDHCPHook_Multi()
xApplicationDNSQueryHook
xApplicationDNSQueryHook_Multi()
Application provided functions
ulApplicationGetNextSequenceNumber
xApplicationGetRandomNumber
Porting
Changing Compiler
Changing Hardware
Porting API
FreeRTOS_AddNetworkInterface()
pxGetNetworkBufferWithDescriptor
vReleaseNetworkBufferAndDescriptor
pucGetNetworkBuffer
vReleaseNetworkBuffer
eConsiderFrameForProcessing
xSendEventStructToIPTask
FreeRTOS_FirstEndPoint()
FreeRTOS_MatchingEndpoint()
FreeRTOS_NextEndPoint()
Demos
Pre-configured Examples
Build Instructions
TCP Examples
TCP Basic (Windows)
TCP Basic (Posix/Linux)
UDP IO for CLI
TCP IO for CLI
Network logging via UDP
UDP Client and Server
Using FreeRTOS_select()
UDP Echo Clients
TCP Echo Clients
TCP Echo Clients (split)
TCP Echo Server
TCP and FAT Examples
FTP Server
HTTP Web Server
MIT Licensing
FreeRTOS+CLI
FreeRTOS-Plus-CLI
Introduction
Documentation
Implementing a Command
Command Parameters
Registering a Command
Calling the Interpreter
A FreeRTOS-Plus-CLI Task
Buffer Management
Demos
FreeRTOS+IO
FreeRTOS-Plus-IO
Introduction
Documentation
Quick Examples
API Reference
FreeRTOS_open
FreeRTOS_read
FreeRTOS_write
FreeRTOS_ioctl
Transfer Modes
Polled Rx and Tx
Zero Copy Tx
Circular buffer Rx
Character Queue Rx and Tx
Demos
coreMQTT
coreMQTT
Introduction
Documentation
Terminology
Logging
API Reference
Demos
Demo (Plaintext)
Demo (With TLS)
Demo (Mutual Auth)
Demo (Keep-Alive)
Demo (Agent Multithreading)
coreMQTT Agent
coreMQTT Agent
Introduction
API Reference
Demo
coreHTTP
coreHTTP
Introduction
Documentation
Terminology
Logging
API Reference
Demos
Demo (Plaintext)
Demo (Mutual Authentication)
Demo (Basic S3 Upload)
Demo (Basic S3 Download)
Demo (Multithreaded)
coreSNTP
coreSNTP
Introduction
Documentation
Terminology
Setting up an NTP server
API Reference
Demo
Transport Interface
Transport Interface
Introduction
Documentation
TLS Introduction
TLS Terminology
X.509 Certificates
coreJSON
coreJSON
Introduction
Documentation
Terminology
API Reference
corePKCS11
corePKCS11
Introduction
Documentation
Functions
Logging
API Reference
Demos
Demo (MQTT)
Demo (Management and RNG)
Demo (Mechanisms and Digests)
Demo (Objects)
Demo (Sign and Verify)
Cellular Interface
Cellular Interface
Introduction
Documentation
Porting Guide
API Reference
Demos
Demo (Mutual Auth)
Demo (ZTP)
AWS IoT OTA
AWS IoT OTA
Introduction
Documentation
Terminology
Porting
API Reference
Demos
Demo (MQTT)
Demo (HTTP)
AWS IoT Device Shadow
AWS IoT Device Shadow
Introduction
Documentation
Design for Named Shadow Support
Terminology
API Reference
Logging
Demo
AWS IoT Jobs
AWS IoT Jobs
Introduction
Documentation
Terminology
API Reference
Demo
AWS IoT Device Defender
AWS IoT Device Defender
Introduction
Documentation
Logging
API Reference
Demos
Demo
Demo (MQTT Agent)
AWS IoT Fleet Provisioning
AWS IoT Fleet Provisioning
Introduction
Documentation
Terminology
API Reference
Demo
AWS Signature Version 4
AWS Signature Version 4
Introduction
Documentation
Terminology
API Reference
HTTP S3 Download Demo
FreeRTOS LoRaWAN
FreeRTOS LoRaWAN
Introduction
API Reference
Demo
FreeRTOS+POSIX
FreeRTOS-Plus-POSIX
Introduction
API Reference
Demos
FreeRTOS+FAT
FreeRTOS-Plus-FAT
Introduction
Documentation
Source Code Organization
Configuration File
API Reference
Standard API errno Values
Standard Functions
Directory/Folder Functions
ff_mkdir
ff_chdir
ff_rmdir
ff_getcwd
Read & Write Functions
ff_fopen
ff_fclose
ff_fwrite
ff_fread
ff_fputc
ff_fgetc
ff_fgets
ff_fprintf
ff_fseek
ff_ftell
ff_seteof
ff_truncate
ff_rewind
Utility Functions
ff_errno
ff_feof
ff_rename
ff_remove
ff_stat
ff_filelength
ff_findfirst
ff_findnext
Disk Management Functions
FF_Partition
FF_Format
FF_Mount
FF_FS_Add
Porting
Creating a Media Driver
Step 1: Read Functions
Step 2: Write Function
Step 3: Init Function
Driver API and Structures
FF_CreateIOManager
FF_Disk_t
Demos
Build Instructions
FAT Examples
Basic File Use
stdio API tests
Creating a Disk
File System CLI
TCP and FAT Examples
FTP Server
HTTP Web Server
FreeRTOS+TCP IPv6
FreeRTOS-Plus-TCP IPv6
IPv6 Functions
IPv6 Demo
FreeRTOS MCUBoot
FreeRTOS MCUBoot
Introduction
MCUBoot Port API Reference
MCUBoot Demo
Blog Categories
Code Quality and Security
FreeRTOS Development
Kernel
Long Term Support
What's New
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.