|
1 | 1 | # STM32 FreeRTOS Library for Arduino
|
| 2 | + |
| 3 | +This is a port of FreeRTOS for STM32 as Arduino libraries. |
| 4 | + |
| 5 | +For more information about FreeRTOS, visit the [FreeRTOS Web Site](http://www.freertos.org/ "FreeRTOS"). |
| 6 | +Also, See the very useful [Getting Started](http://www.freertos.org/FreeRTOS-quick-start-guide.html "Quick Start Guide") page. |
| 7 | + |
| 8 | +Current FreeRTOS version used for this library is [9.0.0](http://www.freertos.org/FreeRTOS-V9.html) and has been modified by ST (See st_readme.txt in FreeRTOS Source). |
| 9 | + |
| 10 | +This is the current one provided with the [STM32Cube MCU Packages](http://www.st.com/en/embedded-software/stm32cube-mcu-packages.html) |
| 11 | + |
| 12 | +## Configuration |
| 13 | + |
| 14 | +FreeRTOS has several configuration options, which can be specified from within the FreeRTOSConfig.h file. |
| 15 | + |
| 16 | +This library provides a default FreeRTOS configuration file named `FreeRTOSConfig_Default.h`. |
| 17 | + |
| 18 | +User can provide his own FreeRTOS configuration file at sketch level by adding his configuration in a file named `STM32FreeRTOSConfig.h`. |
| 19 | + |
| 20 | +Heap allocation schemes are provided by FreeRTOS, see [Memory allocation implementations included in the RTOS source](https://www.freertos.org/a00111.html). |
| 21 | +By default, the `heap_3.c` is used. It can be changed thanks a define in the configuration file: |
| 22 | +``` |
| 23 | +/* Default (3) Memory allocation implementations (heap_[1-5].c) */ |
| 24 | +/*#define configMEMMANG_HEAP_NB 3*/ |
| 25 | +``` |
| 26 | + |
| 27 | +## Limitations |
| 28 | + |
| 29 | +* MPU: currently not fully supported. Disabled thanks this configuration: |
| 30 | +``` |
| 31 | +/* Currently MPU is not supported */ |
| 32 | +#define configMPU_NOT_SUPPORTED |
| 33 | +``` |
| 34 | + |
| 35 | +## Files & Configuration |
| 36 | + |
| 37 | +* STM32FreeRTOS.h : Must always be #include first. It references required include files. |
| 38 | +* STM32FreeRTOSConfig.h : If exist at sketch level, it contains the FreeRTOS configurations. |
| 39 | +* FreeRTOSConfig_Default.h : Contains the default FreeRTOS configurations for this STM32 port if `STM32FreeRTOSConfig.h` doesn't exist. |
0 commit comments