如何在VScode中将FreeRTOS移植STM32F103学习笔记一:如何移植
1.在middlewares下新建FreeRTOS文件夹,下面新建source文件夹,将.c和.h文件分别放入src和inc文件夹
2在freeRTOS文件夹下新建portable文件夹,将对应的移植文件放入,记得把管理堆的文件也放进去
3找到对应的config.h文件,里面是用来裁剪所需代码的,放到一个易于管理观察的地方即可,记得插入三个必要的宏
4将SVC和PendSV函数注释掉,不然会有两个强函数冲突
5.将对应文件加入工程,cmake先将头文件的路径写入MX_Include_Dirs,${CMAKE_CURRENT_SOURCE_DIR}/../../Middlewares/FreeRTOS/core/inc
${CMAKE_CURRENT_SOURCE_DIR}/../../Middlewares/FreeRTOS/portable/GCC
再将freerots库的源文件编入
file(GLOB FreeRTOS_Src
CONFIGURE_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../../Middlewares/FreeRTOS/core/src/*.c
${CMAKE_CURRENT_SOURCE_DIR}/../../Middlewares/FreeRTOS/portable/GCC/port.c
${CMAKE_CURRENT_SOURCE_DIR}/../../Middlewares/FreeRTOS/portable/MemMang/heap_4.c
)
将这个freertos作为静态库加入变量,并创建对应的静态库
set(MX_LINK_LIBS
STM32_Drivers
${TOOLCHAIN_LINK_LIBRARIES}
USB_Device_Library
FreeRTOS
)
# Create FreeRTOS static library
add_library(FreeRTOS OBJECT)
target_sources(FreeRTOS PRIVATE ${FreeRTOS_Src})
target_link_libraries(FreeRTOS PUBLIC stm32cubemx)
6.加入头文件,并从外部调用函数
#include "FreeRTOS.h"
#include "task.h"
extern void xPortSysTickHandler(void);
7.在systick中加入以下代码
if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) {
xPortSysTickHandler();
}
更多推荐


所有评论(0)