基于vscode搭建freertos环境

news/2025/3/9 10:43:32/文章来源:https://www.cnblogs.com/USTHzhanglu/p/18346781

前言

目前网上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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/779205.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QWen2-72B-Instruct模型安装部署过程

最近在给我们的客户私有化部署我们的TorchV系统,客户给的资源足够充裕,借此机会记录下部署千问72B模型的过程,分享给大家! 一、基础信息操作系统:Ubuntu 22.04.3 LTSGPU: A800(80GB) * 8内存:1TB二、软件信息 Python: 3.10 Pytorch:2.3.0 Transformers:4.43.0 vLLM:0.…

塑胶件的结构设计:超声波焊接篇(中)

04 超声波焊接效果的影响因素 一、塑胶材料因素 上篇已经介绍的适合超声波焊接的材料选择,一般情况下两种材料满足Tg或熔点接近、化学相容性良好和熔体流动指数接近这三个条件,基本可认为是可焊接的,但需要注意以下几点: 1、热塑性塑胶又分为非结晶性(也叫无定形)塑胶和…

简易秀投票解决方案功能展示与案例分析

简易秀投票小程序作为一款功能丰富、操作简便的投票工具,其功能案例分析可以从以下几个方面进行: 一、功能概述 简易秀投票小程序支持多种投票类型和丰富的设置选项,主要包括: 1.多样化的投票类型:支持视频投票、音频投票、图文投票、文字投票等多种类型,满足不同场景下的…

周易智慧小程序:功能特色与用户体验案例分析

一、引言 随着人们对传统文化的兴趣日益增长,结合现代科技手段的周易智慧小程序应运而生。这类小程序不仅传承了《周易》的古老智慧,还通过创新的功能设计和用户体验优化,让更多人能够轻松接触并理解周易文化。二、功能特色分析 智能化占卜系统: 1.采用先进的人工智能算法,…

鸿蒙应用开发——新建一个项目

鸿蒙应用开发——新建一个项目鸿蒙应用开发——新建一个项目 一、点击Files->New->Create Project二、选择项目属性(Application是应用,Atomic Service是元服务开发)三、NEXT,NEXT设置相关信息四、Finish时光宓宓,岁月静好。 来自戈小戈,转载请注明原文链接:https…

Labview程序内保留小数位数

Labview程序内保留小数位数 程序如图:举例如下:

Cisco Nexus Dashboard 3.2(1e) - 云和数据中心网络管理软件

Cisco Nexus Dashboard 3.2(1e) - 云和数据中心网络管理软件Cisco Nexus Dashboard 3.2(1e) - 云和数据中心网络管理软件 跨数据中心和云实现集中配置、运行和分析 请访问原文链接:https://sysin.org/blog/cisco-nexus-dashboard/,查看最新版。原创作品,转载请保留出处。 Ci…

Nessus Professional 10.8.0 Auto Installer for RHEL 9/AlmaLinux 9/Rocky Linux 9

Nessus Professional 10.8.0 Auto Installer for RHEL 9/AlmaLinux 9/Rocky Linux 9Nessus Professional 10.8.0 Auto Installer for RHEL 9/AlmaLinux 9/Rocky Linux 9 发布 Nessus 试用版自动化安装程序,支持 macOS Sonoma、RHEL 9 和 Ubuntu 24.04 请访问原文链接:https:/…

mysql实现高可用架构之MHA

mysql实现高可用架构之MHA 一、简介MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能。MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点,在此期间,MHA 会通过于其…

帝国cms数据库表和前端不一致怎么办

解决帝国 CMS 数据库表和前端不一致问题,可以采取以下步骤: 1. 检查模板文件数据库中的字段名称是否与模板文件中的字段名称匹配? 字段的值是否正确传递到模板文件? 模板文件是否正确调用字段的值?2. 检查缓存设置确保帝国 CMS 设置为不使用缓存,或者将缓存设置为定期更新…

织梦DedeCMS的友情链接管理

友情链接的标签代码:{dede:flink row=24/},这个标签就是用来调用友情链接用的,具体标签代码可以查看我们的标签参考。 如果网站使用默认模板,可以使用/templets/default/index.htm,查看代码底部友情链接标签,可以自己修改,以便达到自己想要的效果。扫码添加技术【解决问…

表达式相关(一)操作数栈、运算符栈

NOIP2013普及组T2 只有加法和乘法的表达式 思考: 使用tok来存放操作数或操作符(在编译器词法分析中称之为token,故简写为tok);输入只有一行可以用fgets,不知道题目给的输入文件有没有换行(fgets是会读入换行符的),所以还要加个判断,不然存放的时候会把换行符也当做运…