Shows how a auto-generated STM32CubeMX project can be converted to be compiled with PlatformIO
Core\Inc\*
from STM32Cube project to include\*
Core\Src\*
from STM32Cube project to src\*
Middlewares\Third_Party\FreeRTOS
folder into lib
STM32H723ZGTX_FLASH.ld
to the root of the PIO project platformio.ini
to the following[env:nucleo_h723zg]
platform = ststm32
board = nucleo_h723zg
framework = stm32cube
; select linker file generated by CubeMX
board_build.ldscript = STM32H723ZGTX_FLASH.ld
; make build system use our HAL config file
board_build.stm32cube.custom_config_header = yes
; force inclusion of lib/FreeRTOS
lib_deps = FreeRTOS
; needed compiler flags to
; correctly build the port assembly files
; and add freertos subfolders to include path
build_flags =
-mfpu=fpv4-sp-d16
-mfloat-abi=softfp
-Ilib/FreeRTOS/include
-Ilib/FreeRTOS/CMSIS_RTOS_V2
-Ilib/FreeRTOS/portable/GCC/ARM_CM4F
-Iinclude
; link FreeRTOS as objectf files, not as
; archives. otherwise weak ISR functions
; don't get linked properly!
lib_archive = no
; fix for RAM size / initial SP.
; see https://community.platformio.org/t/arm-versus-thumb/23540/
; actually **not** needed because we have selected a fixed linkerfile!!
;board_upload.maximum_ram_size = 131072
Note:
board_build.stm32cube.custom_config_header
is needed, the default stm32h7xx_hal_conf.h
supplied by PlatformIO declares a 25MHz HSE input frequency when the Nucleo board has a 8MHz one. Alternatively, add -DHSE_VALUE=8000000UL
to the build_flags
.Core\Startup
, PlatforrmIO already has the startup file and compiles it in. Drivers\CMSIS
and Drivers\STM32H7xx_HAL_Driver