Kernel
Getting Started
About FreeRTOS Kernel
Developer Docs
Secondary Docs
Supported Devices
API Reference
Licensing
Libraries
new
LTS Libraries
Libraries Categories
FreeRTOS Libraries
Overview
FreeRTOS+TCP
Application Protocols
coreMQTT
coreHTTP
Transport Interface
coreJSON
corePKCS11
FreeRTOS+IO
FreeRTOS+CLI
AWS IoT Libraries
Overview
Reference Integrations
AWS IoT OTA (RC)
AWS IoT Device Shadow
AWS IoT Jobs
AWS IoT Device Defender
FreeRTOS Labs
Overview
MQTT Agent
FreeRTOS Cellular Interface
LoRaWAN
FreeRTOS+POSIX
FreeRTOS+FAT
FreeRTOS+TCP IPv6
FreeRTOS+TCP Multiple Interfaces
Licensing
Resources
Books and Manuals
Windows Simulator
Posix/Linux Simulator
Community
Forums
Media
Blog
Ecosystem
Overview
SafeRTOS
OpenRTOS
Fail Safe File System
WolfSSL
Tracealyzer
3rd Party BSPs
FreeRTOS Interactive
FreeRTOS on Twitter
Support
Support Options
Mailing List
Contact
Licensing
FAQ
Download FreeRTOS
Quality RTOS & Embedded Software
Download FreeRTOS
Menu
Kernel
Getting Started
About FreeRTOS Kernel
Developer Docs
Secondary Docs
Supported Devices
API Reference
Licensing
Libraries
new
LTS Libraries
Libraries Categories
FreeRTOS Libraries
Overview
FreeRTOS+TCP
Application Protocols
coreMQTT
coreHTTP
Transport Interface
coreJSON
corePKCS11
FreeRTOS+IO
FreeRTOS+CLI
AWS IoT Libraries
Overview
Reference Integrations
AWS IoT OTA (RC)
AWS IoT Device Shadow
AWS IoT Jobs
AWS IoT Device Defender
FreeRTOS Labs
Overview
MQTT Agent
FreeRTOS Cellular Interface
LoRaWAN
FreeRTOS+POSIX
FreeRTOS+FAT
FreeRTOS+TCP IPv6
FreeRTOS+TCP Multiple Interfaces
Licensing
Resources
Books and Manuals
Windows Simulator
Posix/Linux Simulator
Community
Forums
Media
Blog
Ecosystem
Overview
SafeRTOS
OpenRTOS
Fail Safe File System
WolfSSL
Tracealyzer
3rd Party BSPs
FreeRTOS Interactive
FreeRTOS on Twitter
Support
Support Options
Mailing List
Contact
Licensing
FAQ
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
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)
Windows Simulator
Memory Protection Support
Thread Local Storage Pointers
Blocking on Multiple Objects
Deferred Interrupt Handling
Low Power Support
Trace Features
Run Time Stats
Porting Guide
Posix/Linux Simulator
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
Supported Devices
Kernel Ports
Demos
Supported Demos
Standard Demos
Basic Demos
Hardware Independent
Modifying a Demo
API Reference
Task Creation
TaskHandle_t (type)
xTaskCreate()
xTaskCreateStatic()
vTaskDelete()
Task Control
vTaskDelay()
vTaskDelayUntil()
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
This site requires JavaScript
to be enabled.
Click here
to
view a static menu.
Kernel
>
Secondary Docs
>
FreeRTOS Concepts
>
RTOS Fundamentals
RTOS Fundamentals
Pages
Multitasking
Scheduling
Context Switching
Real Time Applications
Real Time Scheduling
Detailed Description
This section provides a very brief introduction to real time and multitasking concepts. These must be understood before reading section 2.
Next:
RTOS Fundamentals – Multitasking
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.