Skip to content

Commit 1533343

Browse files
committed
Document pack components
1 parent 8d4f7cb commit 1533343

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

Documentation/Doxygen/src/create_project.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,45 @@ You can basically choose between two options when creating a FreeRTOS project:
55
1. [Using the FreeRTOS API and kernel](#create_native_project).
66
2. [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

1049
The steps to create a microcontroller application using FreeRTOS are:

0 commit comments

Comments
 (0)