基于vscode搭建freertos环境
前言
目前网上windows仿真freertos的资料都是比较久远的,不太适合现有的开发,因此重新整理了一下资料.
目标:
使用Vscode进行FreeRTOS开发和仿真.
关键词: freertos
, vscode
,llvm
,cmake
,windows
环境配置
编译器目前使用的是llvm-MinGW-msvcrt
:Releases · mstorsjo/llvm-mingw (github.com)
FreeRTOS
使用的最新版20240601-LTS
:Release 202406.01-LTS · FreeRTOS/FreeRTOS-LTS (github.com)
Vsocde
就常用的插件,这里调试用的codeLLDB
,自己下载下.
编译器下载了加入环境变量,这里就不细说了
代码解压后,这里只关注FreeRTOS-Kernel
代码编译
使用code打开FreeRTOS-Kernel\examples\cmake_example
,使用cmaketools正常配置,选择windows能用的编译器即可.
然后需要配置windows的port.c
. 之前移植时需要自己加入编译目录,现在可以直接在Cmakelists.txt
中配置.
# Select the heap port. values between 1-4 will pick a heap.
set(FREERTOS_HEAP "4" CACHE STRING "" FORCE)
# Select the native compile PORT
set(FREERTOS_PORT "MSVC_MINGW" CACHE STRING "" FORCE)
修改成MSVC_MINGW
然后还要修改编译器设置
# Suppressions required to build clean with clang.
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-unused-macros>
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-padded>
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-missing-variable-declarations>
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-covered-switch-default>
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-extra-semi-stmt>
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-unsafe-buffer-usage>
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-missing-noreturn>
$<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-cast-align> )
不然会报错
然后就可以编译运行了
这里在main.c
里修改一些代码
static void exampleTask( void * parameters )
{
/* Unused parameters. */
( void ) parameters;
for( ; ; )
{
printf("example test\r\n");
/* Example Task Code */
vTaskDelay( 100 ); /* delay 100 ticks */
}
}
运行结果:
."FreeRTOS-Kernel/examples/cmake_example/build/example.exe"
Example FreeRTOS Project
example test
example test
example test
example test
example test
调试
新建launch.json
加入以下代码
{
"version": "0.2.0",
"configurations": [
{
"name": "windows",
"type":"lldb",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",//通过cmake获取可执行文件名
"args": [],
"cwd": "${workspaceFolder}",
},
]
}
然后就可以调试了