• 下载

    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的目录
  • 移除不需要的文件/文件夹

    • 删除所有目录下的CMakeFile.txt
    • 删除其他无用文件。如图:
    1
  • 测试

  • 编写测试程序

    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配置文件

    FreeRTOSConfig.h

  • 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)