PlatformIO中使用CubeMX的FreeRTOS

CubeMX中启用FreeRTOS后, 生成的FreeRTOS源代码并不在Src文件夹内, 所以PIO并不认FreeRTOS的源代码. PIO官方论坛上有人提到了这个问题: Using FreeRTOS in PlatformIO

CubeMX生成的FreeRTOS代码目录位于${PROJECT}/Middleware/FreeRTOS/内, 所以:

  1. win下比较丑的解决方案是将${PROJECT}/Middleware/FreeRTOS文件夹复制到${PROJECT}/Src下. 但是每次重新生成代码都要再复制一遍
  2. Mac和Linux下可以创建软连接(Win下对目录创建软连接的方法我统统尝试失败).

然后修改platformio.ini,添加build_flags:

[env:genericSTM32F103RC]
platform = ststm32
board = genericSTM32F103RC
framework = stm32cube
monitor_speed = 115200
build_flags = ${common.build_flags}
upload_protocol = stlink
debug_tool = stlink

[common]
build_flags = -std=gnu99 -Wl,-u,_printf_float
    -IInc
    -ISrc/FreeRTOS/Source/CMSIS_RTOS
    -ISrc/FreeRTOS/Source/include
    -ISrc/FreeRTOS/Source/portable/GCC/ARM_CM3

然后即可正常编译.

你可能感兴趣的:(PlatformIO中使用CubeMX的FreeRTOS)