Creating custom board for STM32F429ZGT6

freertos is not a supported framework in the PlatformIO sense – only the ones that have builder scripts are supported. Of course one can use e.g. STM32Cube with a FreeRTOS library, but that is then framework = stm32cube as a project base, not framework = freertos.

As an improvement you can add e.g. -DHSE_VALUE=8000000UL into this so that the HSE external crystal frequency (example here: 8MHz) is always correct in the build system. Otherwise you might be running into issues like PlatformIO FreeRTOS is slower.

Boards do not have platforms field, remove this line.

This is not syntactically valid because of the , at the end. If it’s the last element in the object, don’t add a ,, otherwise it will be expecting the next element.

You are also missing the informative fields

in the definition.

Beware of a current bug in auto-generated linker scripts for STM32: It will set the initial SP to RAM begin + maximum_ram_size, leading to a possible crash on startup if SP lands in a memory address that is not RAM (ARM versus Thumb - #11 by maxgerhardt). Use an explicit good linker script in the project as described in PlatformIO FreeRTOS - #10 by maxgerhardt.

I don’t see any further issues beyond that.