@@ -5,6 +5,45 @@ You can basically choose between two options when creating a FreeRTOS project:
551 . [ Using the FreeRTOS API and kernel] ( #create_native_project ) .
662 . [ Using the CMSIS-RTOS2 API with an underlying FreeRTOS kernel] ( #create_cmsis_project ) .
77
8+ Before starting, please review the brief summary of the [ Pack Components] ( #pack_components ) below to familiarize yourself with them.
9+
10+ ## Pack Components {#pack_components}
11+
12+ The CMSIS-FreeRTOS pack includes the following components and their variants:
13+
14+ | Component | Variant | Description |
15+ | ----------------------| -------------------------| -------------------------------------------------------------------------------------|
16+ | CMSIS:RTOS2: FreeRTOS | Cortex-M | CMSIS-RTOS2 API implementation based on the FreeRTOS kernel for Cortex-M. |
17+ | | Cortex-A | Adds support for external IRQ controller on Cortex-A processors. |
18+ | RTOS: CORE | Cortex-M | Core API for Cortex-M processors, providing task scheduling and communication. |
19+ | | Cortex-M MPU | Adds support for the Memory Protection Unit (MPU) on Cortex-M processors. |
20+ | | Cortex-M Non-Secure | Core API for Cortex-M, supporting TrustZone non-secure domain operation. ** [ Warning: Deprecated] ** |
21+ | | Cortex-M Non-Secure MPU | Combines TrustZone non-secure domain support with MPU functionality. ** [ Warning: Deprecated] ** |
22+ | | Cortex-A | Core API for Cortex-A processors. |
23+ | RTOS: Config | CMSIS RTOS2 | Configuration file tailored for the CMSIS-RTOS2 API. |
24+ | | FreeRTOS | Configuration file for native FreeRTOS API usage. |
25+ | RTOS: Coroutines | - | Adds FreeRTOS Co-routine API. |
26+ | RTOS: Event Groups | - | Provides event group functionality for task synchronization and communication. |
27+ | RTOS: Heap | Heap_1 | A simple memory allocation scheme that does not permit memory to be freed. |
28+ | | Heap_2 | Allows memory to be freed but does not coalesce adjacent free memory blocks. |
29+ | | Heap_3 | Wraps the standard ` malloc() ` and ` free() ` functions for thread safety. |
30+ | | Heap_4 | Coalesces adjacent free memory blocks to avoid fragmentation. |
31+ | | Heap_5 | Extends Heap_4 with the ability to span the heap across non-adjacent memory areas. |
32+ | RTOS: Message Buffer | - | Enables tasks and interrupts to send and receive variable-length messages. |
33+ | RTOS: Stream Buffer | - | Allows tasks and interrupts to send and receive continuous streams of data. |
34+ | RTOS: Timers | - | Adds support for software timers, enabling delayed and periodic function execution. |
35+ | RTOS: TrustZone | - | Provides context management for execution in TrustZone secure domain. |
36+
37+ > ** NOTE**
38+ >
39+ > CMSIS-FreeRTOS 11.2.0 adds support for TrustZone ** domain detection from project** settings. Regardless of the build contexts
40+ > (no TrustZone, TrustZone secure or non-secure domain) the below variants shall be used:
41+ >
42+ > - RTOS: CORE &Cortex-M
43+ > - RTOS: CORE &Cortex-M MPU
44+ >
45+ > This makes ** variants Cortex-M Non-Secure and Cortex-M Non-Secure MPU obsolete** and will be removed in future releases.
46+
847## Create a Native FreeRTOS Project {#create_native_project}
948
1049The steps to create a microcontroller application using FreeRTOS are:
0 commit comments