Welcome
This guide provides a technical reference to both the primary FreeRTOS API and the FreeRTOS kernel configuration options. It is assumed that the reader is already familiar with the concepts of writing multitasking applications, and the primitives provided by real-time kernels. Readers who are not familiar with these fundamental concepts can read the FreeRTOS Kernel Developer Guide for a more descriptive, tutorial-style text.
Within this document, the API functions have been split into seven groups:
Other topics are covered in:
API Usage Restrictions
The following rules apply when using the FreeRTOS API:
-
API functions that do not end in “FromISR” must not be used in an interrupt service routine (ISR). Some FreeRTOS ports make a further restriction that even API functions that do end in “FromISR” cannot be used in an interrupt service routine that has a (hardware) priority above the priority set by the configMAX_SYSCALL_INTERRUPT_PRIORITY (or configMAX_API_CALL_INTERRUPT_PRIORITY, depending on the port) kernel configuration constant, which is described in Kernel Configuration. The second restriction is to ensure that the timing, determinism, and latency of interrupts that have a priority above that set by configMAX_SYSCALL_INTERRUPT_PRIORITY are not affected by FreeRTOS.
-
API functions that can potentially cause a context switch must not be called while the scheduler is suspended.
-
API functions that can potentially cause a context switch must not be called from within a critical section.




