-
下载
https://github.com/FreeRTOS 仓库有很多freeRTOS关于协议栈的实现,HTTP,TCP,MQTT等
这里只需要核心代码去模拟
https://github.com/FreeRTOS/FreeRTOS-Kernel -
安装cmake
省略,可以前往 LVGL-vscode模拟
-
vscode安装各种插件
省略,可以前往 LVGL-vscode模拟
-
vscode项目配置
.vscode/settings.json文件
{ "cmake.sourceDirectory": "E:/_1/embedded-study/freeRTOS/vscode/FreeRTOS-Kernel", "cmake.cmakePath": "E:/Program Files/CMake/bin/cmake.exe" }- cmake.sourceDirectory:cmake那个
CMakeLists.txt文件目录 - cmake.cmakePath:前面
安装cmake的目录
- cmake.sourceDirectory:cmake那个
-
移除不需要的文件/文件夹
- 删除所有目录下的CMakeFile.txt
- 删除其他无用文件。如图:
-
测试
-
编写测试程序
main.c
#include <FreeRTOS.h> #include <task.h> #include <stdio.h> void vTask(void *pv) { (void)pv; for (;;) { printf("Hello World\n"); vTaskDelay(1000); } } void main(void) { xTaskCreate(vTask, "Task", configMINIMAL_STACK_SIZE, NULL, 1, NULL); vTaskStartScheduler(); } -
freeRTOS配置文件
-
CmakeList.txt文件
cmake_minimum_required(VERSION 3.15) project(example LANGUAGES C) # ─── Select FreeRTOS port & heap ─── set(FREERTOS_PORT "MSVC-MingW" CACHE STRING "" FORCE) set(FREERTOS_HEAP "4" CACHE STRING "" FORCE) # ─── User-provided FreeRTOSConfig.h ─── add_library(freertos_config INTERFACE) target_include_directories(freertos_config INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) # ─── FreeRTOS-Kernel library (from root) ─── add_subdirectory(../ FreeRTOS-Kernel) # ─── Our test executable ─── add_executable(${PROJECT_NAME} main.c) target_link_libraries(${PROJECT_NAME} freertos_kernel freertos_config) set_target_properties(${PROJECT_NAME} PROPERTIES C_STANDARD 90)