一、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的人是怎么测试的

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐