|
@@ -211,17 +211,20 @@ stm32-cmake contains additional CMake modules for finding and configuring variou
|
|
|
`FREERTOS_PATH` can be either the path to the whole
|
|
`FREERTOS_PATH` can be either the path to the whole
|
|
|
[FreeRTOS/FreeRTOS](https://github.com/FreeRTOS/FreeRTOS) github repo, or the path to
|
|
[FreeRTOS/FreeRTOS](https://github.com/FreeRTOS/FreeRTOS) github repo, or the path to
|
|
|
FreeRTOS-Kernel (usually located in the subfolder `FreeRTOS` on a downloaded release).
|
|
FreeRTOS-Kernel (usually located in the subfolder `FreeRTOS` on a downloaded release).
|
|
|
-You can supply `FREERTOS_PATH` as an environmental variable as well.
|
|
|
|
|
|
|
+`FREERTOS_PATH` can be supplied as an environmental variable as well.
|
|
|
|
|
|
|
|
-You can either use the FreeRTOS kernel provided in the Cube repositories, or a separate
|
|
|
|
|
|
|
+It is possible to either use the FreeRTOS kernel provided in the Cube repositories, or a separate
|
|
|
FreeRTOS kernel. The Cube repository also provides the CMSIS RTOS and CMSIS RTOS V2 implementations.
|
|
FreeRTOS kernel. The Cube repository also provides the CMSIS RTOS and CMSIS RTOS V2 implementations.
|
|
|
-If you like to use the CMSIS implementations, it is recommended to also use the FreeRTOS sources
|
|
|
|
|
|
|
+If the CMSIS implementations is used, it is recommended to also use the FreeRTOS sources
|
|
|
provided in the Cube repository because the CMSIS port might be incompatible to newer kernel
|
|
provided in the Cube repository because the CMSIS port might be incompatible to newer kernel
|
|
|
-versions.
|
|
|
|
|
|
|
+versions. The FreeRTOS port to use is specified as a `FreeRTOS` component. A list of available
|
|
|
|
|
+ports can be found below. If the FreeRTOS sources provided in the Cube repository are used, the
|
|
|
|
|
+device family also has to be specified as a component for the `FreeRTOS` package.
|
|
|
|
|
|
|
|
-You can specify to use CMSIS with a `CMSIS` target and by finding the CMSIS `RTOS` package.
|
|
|
|
|
-To select which FreeRTOS to use, you can find the package for a specific FreeRTOS port and then
|
|
|
|
|
-link against that port target within a specific namespace.
|
|
|
|
|
|
|
+CMSIS RTOS can be used by specifying a `CMSIS` target and by finding the CMSIS `RTOS` package.
|
|
|
|
|
+The following section will show a few example configurations for the H7 and F4 family.
|
|
|
|
|
+You can also find example code for the `H743ZI` and `F407VG` devices in the `examples`
|
|
|
|
|
+folder.
|
|
|
|
|
|
|
|
Typical usage for a H7 device when using the M7 core, using an external kernel without CMSIS
|
|
Typical usage for a H7 device when using the M7 core, using an external kernel without CMSIS
|
|
|
support. The FreeRTOS namespace is set to `FreeRTOS` and the `ARM_CM7` port is used:
|
|
support. The FreeRTOS namespace is set to `FreeRTOS` and the `ARM_CM7` port is used:
|
|
@@ -247,7 +250,8 @@ target_link_libraries(${TARGET_NAME} PRIVATE
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Another typical usage using the FreeRTOS provided in the Cube repository and the CMSIS support.
|
|
Another typical usage using the FreeRTOS provided in the Cube repository and the CMSIS support.
|
|
|
-The FreeRTOS namespace is set to `FreeRTOS::STM32::<FAMILY>` and the `ARM_CM7` port is used:
|
|
|
|
|
|
|
+The FreeRTOS namespace is set to `FreeRTOS::STM32::<FAMILY>`, the `ARM_CM7` port is used and
|
|
|
|
|
+the device family is specified as a `FreeRTOS` component with `STM32H7`:
|
|
|
|
|
|
|
|
```cmake
|
|
```cmake
|
|
|
find_package(CMSIS COMPONENTS STM32H743ZI STM32H7_M7 RTOS REQUIRED)
|
|
find_package(CMSIS COMPONENTS STM32H743ZI STM32H7_M7 RTOS REQUIRED)
|
|
@@ -269,7 +273,7 @@ in the Cube repository
|
|
|
|
|
|
|
|
* `FreeRTOS::STM32::<Family>`
|
|
* `FreeRTOS::STM32::<Family>`
|
|
|
|
|
|
|
|
-For the multi-core architectures, you have to specify both family and core like specified in the
|
|
|
|
|
|
|
+For the multi-core architectures, both family and core need to be specified like shown in the
|
|
|
example above.
|
|
example above.
|
|
|
|
|
|
|
|
The following FreeRTOS ports are supported in general: `ARM_CM0`, `ARM_CM3`, `ARM_CM4F`, `ARM_CM7`,
|
|
The following FreeRTOS ports are supported in general: `ARM_CM0`, `ARM_CM3`, `ARM_CM4F`, `ARM_CM7`,
|