FreeRTOS学习 -- 移植

news2024/11/29 6:28:14

一、添加FreeRTOS源码

在基础工程中新建一个名为FreeRTOS的文件夹,创建FreeRTOS文件夹以后将FreeRTOS的源码添加到这个文件夹中。
在这里插入图片描述
portable 文件夹,只需要保留keil、MemMang 和 RVDS这三个文件夹,其他的都可以删除掉。
在这里插入图片描述
移植FreeRTOSConfig.h文件,它是FreeRTOS 的配置文件,一般的操作系统都有裁剪、配置功能。而这些裁剪及配置都是通过一个文件来完成的,基本都是通过宏定义来完成对系统的配置和裁剪的。
在这里插入图片描述

二、添加相关的头文件路径

在这里插入图片描述

三、修改SYSTEM文件

SYSTEM文件夹中的文件一开始是针对 μC/OS编写的,因此使用 FreeRTOS的话,就需要作相应的修改。SYSTEM文件夹中一共需要修改三个文件,分别是 sys.h、 usart.c、 delay.c。

1、修改 sys.h 文件

在 sys.h 文件里面用宏 SYSTEM_SUPPORT_OS 来定义是否使用 OS。
在这里插入图片描述

2、修改 usart.c 文件

添加 FreeRTOS.h 头文件
在这里插入图片描述
在 USART1 的中断服务函数,删除OSIntEnter()和 OSIntExit()
在这里插入图片描述

3、修改 delay.c 文件

  • 函数 SysTick_Handler(),此函数是滴答定时器的中断服务函数。
    在滴答定时器中断服务函数中调用 FreeRTOS 的 API 函数 xPortSysTickHandler()
    在这里插入图片描述
  • delay_init()是用来初始化滴答定时器和延时函数
    FreeRTOS 的系统时钟节拍由宏 configTICK_RATE_HZ 来设置,这个值我们可以自由设置,但是一旦设置好以后我们就要根据这个值来初始化滴答定时器。
    在这里插入图片描述
  • delay_us、delay_ms、delay_xms 三个延时函数
    delay_us()是 us 级延时函数,delay_ms 和 delay_xms()都是 ms 级的延时函数,delay_us()和 delay_xms()不会导致任务切换。delay_ms()其实就是对 FreeRTOS 中的延时函数 vTaskDelay()的简单封装,所以在使用 delay_ms()的时候就会导致任务切换。
    在这里插入图片描述
    至此,SYSTEM 文件夹就修改完成了。
    这些其实都有例程可以参看。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯-【二分】肖恩的苹果林

思路:有点类似于找最大值的最小化。 代码及解析 常规的模板引用40% #include <bits/stdc.h> using namespace std; #define ll long long const ll N1e53; ll a[N]; ll m,n; ll chack(ll mid) {int res1,last0;for(int i1;i<n;i){ if(a[i]-a[last]>mid){res;las…

微信小程序uniapp+vue电力巡线任务故障报修管理系统2q91t

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 前端开发:vue 语言&#xff1a;javapythonnodejsphp均支持 运行软件:idea/eclipse/vscode/pycharm/wamp均支持 框架支持:Ssm/django/flask/t…

亚马逊云的账单申诉

亚马逊云科技申诉通常涉及几个步骤&#xff0c;目的是解决账单错误或申请费用调整。以下是一个基本的指南&#xff0c;可以帮助你开始处理账单问题&#xff1a; 1. 审核账单 在开始申诉之前&#xff0c;首先登录到亚马逊云科技管理控制台。 导航到“账单仪表板”以查看当前的…

如何在Python中进行指数和对数曲线拟合?

在本文中&#xff0c;我们将学习如何在Python中进行指数和对数曲线拟合。首先我们要问的问题是什么是曲线拟合&#xff1f; 曲线拟合是构造曲线或数学函数的过程&#xff0c;其具有对一系列数据点的最佳拟合&#xff0c;可能受到约束。 对数曲线拟合&#xff1a;对数曲线是对…

HarmonyOS开发实例:【数字管家app】

一&#xff0e;概述 本应用是基于RK3399开发板&#xff0c;使用OpenHarmony3.1-Release开发的应用。通过OpenHarmony的分布式技术&#xff0c;使多人能够一起画画。 1.应用运行效果图&#xff1a; 2.分布式画板使用示意图 如上图所示&#xff0c;用户1、用户2在各自本地端进行…

【可视化大屏开发】17. 加餐-ECharts定制省份地图

各身份地图数据下载小工具 DataV.GeoAtlas地理小工具系列 登录DataV 后&#xff0c;直接通过选择点击获取需要的省份地区数据 > 其实单击即可完成选择 检查下载的数据格式是否正常 自定义字体 更新地图部分代码 index.less部分 //声明字体 font-face{ font-family: …

ios包上架系列 三、JumpServer 堡垒机使用

1、钉钉申请搜索&#xff08;jumpserver权限申请&#xff09; 服务器信息可以询问产品经理&#xff0c;如有疑问最好当面和运维同事学习 XXX 2、使用钉钉扫码登录 https://jump.xxx.com/ui/#/workbench/assets 3、手机APP Authenticator&#xff0c;打开即可获取验证码 4、…

Clip论文学习

学习过程如上 学习时&#xff0c;图片与文本对应&#xff08;句子&#xff09;&#xff0c;共有n个句子与n个文本&#xff0c;进行对比学习 测试时&#xff0c;将标签句子化&#xff0c;再将其放入encoder中操作。最后找出特征最相似的。 特点&#xff1a;泛化能力强&#x…

VSCode中调试C++程序

目录 一、准备工作&#xff1a;安装插件 1、C/C插件 ​编辑 2、CMake插件 3、CMake tool插件 二、调试过程 1、debug 2、打断点 3、调C/C文件 每次重新调试的时候都忘了具体步骤&#xff0c;直接给自己写个备忘录好了。 一、准备工作&#xff1a;安装插件 1、C/C插件…

全面学习SpringCloud框架指南

要深入学习Spring Cloud框架,你需要系统地掌握其核心组件和概念,并了解如何在实际项目中应用这些知识。以下是一些关键的学习点和相应的学习内容: 一共分为10个模块包括: 1、微服务架构基础: 理解微服务架构的概念和优势。 学习单体架构向微服务架构演进的过程。 掌握…

C语言 | Leetcode C语言题解之第12题整数转罗马数字

题目&#xff1a; 题解&#xff1a; const char* thousands[] {"", "M", "MM", "MMM"}; const char* hundreds[] {"", "C", "CC", "CCC", "CD", "D", "DC"…

langchain txt 文档加载,分割

stuff 策略 加载 arXiv 论文&#xff0c;让模型总结前 2000 字 这里采用的是 stuff 策略&#xff0c;也就是将一大段文本。按字数分割成 N 个文本块&#xff0c;又合并成一个大的文本块。 对超大规模不友好&#xff0c;没有区分文档重要性&#xff0c;适合文档量较少场景 i…

未来课堂革命:OpenAI 发布 ChatGPT 使用指南,探索生成式 AI 如何重塑教育景观

随着新学期的来临&#xff0c;众多初登教师舞台的 00 后们&#xff0c;也完成了他们的第一个教师身份下的暑期生活。 对于开学的抵触情绪&#xff0c;不仅学生们普遍存在&#xff0c;许多 00 后的新晋教师们也同样感同身受。某种程度上&#xff0c;这些抗拒上班的年轻教师群体…

编译原理 学习笔记

1、代码&#xff1a; (1 2) * 3 2、词法解析&#xff1a; 3、抽象语法树&#xff1a; 4、语法树递归下降求值&#xff1a; 先Current_Node是根节点乘号&#xff0c;乘号&#xff0c;是中缀运算符&#xff0c;找左子节点&#xff0c;是加号&#xff0c;加号是中缀表达式&…

生产问题排查指南:从定位到解决

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 一、引言 二、 观察和定位问题 监控系统 日志分析 用户反馈 其他观察方式 注意事项…

共享低碳未来!科士达新一代工商业储能产品引爆ESIE 2024

4月11日&#xff0c;第十二届储能国际峰会暨展览会&#xff08;ESIE 2024&#xff09;在北京首钢会展中心盛大开幕&#xff0c;科士达以“数智光储&#xff0c;共享低碳未来”为主题&#xff0c;携多款工商业储能产品及解决方案惊艳亮相本次盛会。 展会首日&#xff0c;科士达展…

C语言——实践小游戏(贪吃蛇)代码版

大家好久不见&#xff0c;我是残念我回来了&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#x…

196算法之谜在 JSP 中使用内置对象 request 获取 form 表单的文本框 text 提交的数据。

(1&#xff09;编写 inputNumber . jsp &#xff0c;该页面提供一个 form 表单&#xff0c;该 form 表单提供一个文本框 text &#xff0c;用于用户输入一个正整数&#xff0c;用户在 form 表单中输入的数字&#xff0c;单击 submit 提交键将正整数提交给 huiwenNumber . jsp 页…

基于JSP+Mysql+HTml+Css仓库出入库管理系统设计与实现

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

Leetcode二十二题:合并K个升序链表【22/1000 python】

“合并K个升序链表”&#xff0c;这是一道中等难度的题目&#xff0c;经常出现在编程面试中。以下是该问题的详细描述、解题步骤、不同算法的比较、代码示例及其分析。 问题描述 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中…