Setting Up FreeRTOS on PlatformIO STM32
I've recently set up FreeRTOS on an STM32 PlatformIO Project so here are the steps. I've adapted the guide from https://registry.platformio.org/libraries/mincrmatt12/STM32Cube Middleware-FreeRTOS/installation:
Modify platformio.ini as such (Add lib_deps
and custom_freertos_config_location
)
[TB]
...
lib_deps = mincrmatt12/STM32Cube Middleware-FreeRTOS
custom_freertos_config_location = include/TB/FreeRTOSConfig.h
Create FreeRTOSConfig.h from https://github.com/mincrmatt12/stm32-platformio-freertos/blob/master/include/FreeRTOSConfig_template.h
Change your time base from SysTick to another timer (FreeRTOS uses SysTick so you have to use another timer for HAL Timebase)
Comment out these functions in stm32f1xx_it.c
void SVC_Handler(void)
void PendSV_Handler(void)
void SysTick_Handler(void)
The FreeRTOS kernel should just work (with some tweaks)
This guide might help: https://www.hackster.io/Sparky/freertos-on-stm32f103c8t6-1a2413