CubeMX生成STM32F1+FREERTOS初始代码在VScode和Keil无法编译的问题
·
一、VScode
(一)问题1
freertos_os2.h:134:4: error: #error "Definition INCLUDE_xTaskGetCurrentTaskHandle must equal 1 to implement Thread Management API."
把include parameters里面的xTaskGetCurrentTaskHandle改成ENable
(二)问题二
cmsis_os2.c 第 31 行报错 error: #include expects "FILENAME" or <FILENAME>,导致 NVIC_SetPriority、SysTick 等未定义。

如图所示,在根目录CMakeLists.txt的# Add STM32CubeMX generated sources前一行添加一行
add_definitions(-DCMSIS_device_header="stm32f1xx.h")
(三)问题三
port.c 和 cmsis_os2.c 都定义了 SysTick_Handler(multiple definition)。

在Inc里找到FreeRTOSConfig.h,在下面用户代码区添加一行把一个SysTick_Handler指向别的地方去
#define SysTick_Handler SysTick_Handler_Dummy
二、keil
编译 cmsis_os2.c 时,报错 #13: expected a file name,指向 freertos_os2.h 的 #include CMSIS_device_header 行。
这个把库的版本改成1.8.5就能通过
不知道ST的人是怎么测试的
更多推荐

所有评论(0)