首页 > 其他分享 >基于vscode搭建freertos环境

基于vscode搭建freertos环境

时间:2024-08-07 12:39:52浏览次数:14  
标签:cmake freertos FreeRTOS vscode Wno windows test example 搭建

前言

目前网上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能用的编译器即可.

image-20240807121958853

然后需要配置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}",
    },
  ]
}

然后就可以调试了

image-20240807122652246

标签:cmake,freertos,FreeRTOS,vscode,Wno,windows,test,example,搭建
From: https://www.cnblogs.com/USTHzhanglu/p/18346781

相关文章

  • [环境搭建]编码工具-lombok.jar引入环境
    UAPStudio.ini里添加:-Dfile.encoding=UTF-8-javaagent:lombok.jar-Xbootclasspath/a:lombok.jarlombok.jar放在UAPStudio.ini里同一级目录Eclipse报告内存不足和PermSizeSpace错误,Eclipse死掉的解决办法:在eclipse.ini配置文件总加上以下两行:-XX:PermSize=128M-XX:MaxP......
  • es6-string-html vscode插件 js里面template的高亮插件 无构建vue使用
    es6-string-htmlvscode插件js里面template的高亮插件无构建vue使用这个插件可以让js里面的template的字符串高亮,前面加/*html*/Refference:无构建和打包,浏览器直接吃上Vue全家桶?https://juejin.cn/post/7399094428343959552......
  • 在VSCode中使用PCL
    我要被气死了。前提条件:CMakeMSVC2022(务必装这个)VSCode以及相关的C++,CMake插件等安装步骤:去PCL的Release这里下载类似“PCL-1.14.1-AllInOne-msvc2022-win64.exe”名称的exe,安装过程中要求为所有用户写入环境变量。找个地方新建空文件夹,新建这些文件,注意文件名也要一......
  • 2024宝塔批量建站搭建易优cms_易优批量上站
     宝塔全自动搭建易优cms批量建站 软件教程文本:大家好,这里是好主题网nbzhuti.cnQQ:822674928今天给大家带来的是易优cms批量建站首先我们要准备宝塔,开启宝塔api,然后相关信息填写到config.iniconfig.ini里面可以填写其他的配置项比如:php版本网站的用户名,密码,伪静态这......
  • FreeRTOS基础知识详细版
    RTOS概念‌‌‌‌‌‌RTOS全称是RealTimeOperatingSystem,中文名就是实时操作系统,提供了任务调度、内存管理、中断处理等功能。‌1.任务调度:裸机编程需要手动调度任务,而RTOS提供自动的任务调度器。2.硬件管理:裸机编程需要开发者手动管理硬件资源,RTOS提供了......
  • 短视频矩阵获客系统开发搭建-ai文案+剪辑+去水印
    短视频矩阵获客系统是指利用多个短视频平台进行协同运营,通过发布高质量的短视频内容来吸引、转化潜在客户的营销策略。该系统集合了内容生产、分发、数据分析等功能于一体,为企业提供了一站式的短视频营销解决方案。一、短视频矩阵系统的优势提高营销效率:通过整合多个平台,减少......
  • STM32F1移植FREERTOS DEMO
    简介STM32F1太常用了,因为官网已经把移植的工作做的很完善了,只要文件放到相应工程里就可以使用,这里只做一个简单的DEMO,记录下FreeRTOS正常启动的流程CUBEMX配置1.新建CUBEMX工程,使用SWD的情况先配置SWD设置,防止第一次烧录后,后续无法使用2.由于FreeRTOS有重新使用到SYSTICK(滴搭......
  • 网络安全学习之DVWA平台的搭建及简单使用
    DVWA介绍DVWA(DamnVulnerableWebApplication)是一个用来进行安全脆弱性鉴定的PHP/MySQLWeb应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。DVWA一共包含了十个攻击模块,分别是:BruteForce(暴力(破解))、Comm......
  • MyBatis搭建和增删改查
    MyBatis是一个开源的持久层框架,用于处理数据库的增删改查操作。它能够将Java对象与数据库中的数据进行映射关系的配置,并自动生成对应的SQL语句,从而简化了数据库操作的编码工作。MyBatis的核心思想是将SQL语句与Java代码分离,通过XML或注解来配置SQL语句,使得SQL语句可以进行灵活......
  • 【go】【vscode】
    @目录写在前面launch.jsonGo的配置配置字段说明name:配置的描述性名称。type:指定调试器类型,即go用于Go应用程序。request:定义请求类型,任一launch启动新的调试会话,或者attach以附加到现有进程。mode:运行Go程序的模式,可以是auto、debug、test、exec或remote......