【基于FreeRTOS的STM32F103系统】简介及官方文件移植

news/2024/3/29 15:52:17/文章来源:https://blog.csdn.net/qq_52785580/article/details/126797876

系列文章目录

文章目录

目录

系列文章目录

文章目录

前言

一、FreeRTOS是什么?

二、FreeRTOS在STM32F103上的移植

1.进入官网下载源码

 2.删除不需要的文件(精简化)

总结


前言

最近在做毕设,发现了一套STM32的底盘驱动程序,其中有一大段内容我直接看不懂,经过查阅资料才发现是一位牛逼的工程师将RTOS移植到了STM32中,代替了常规的裸机开发,我看不懂,但我大为震撼,于是展开了基于FreeRTOS的STM32F103学习。

一、FreeRTOS是什么?

RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格,允许偶尔的超时。

在实时操作系统中,我们可以把要实现的功能划分为多个任务,每任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是个死循环。

RTOS操作系统: FreeRTOS,UcOS, RTX, RT-Thread, DJYOS等。

FreeRTOS内核属于可剥夺型内核,负责管理所有的任务,任务之间可以根据优先级进行抢断,由内核决定运行哪个任务,多任务管理有助于模块化开发

FreeRTOS小巧简洁,包含了资源管理、同步、任务通讯等功能,基本能满足机器人工程师的使用。

二、官方文件移植

1.进入官网下载源码

 2.删除不需要的文件(精简化)

(1)主目录下

FreeRTOS-Plus:生态文件,非必需(删除)

tools:亚马逊相关文件(删除)

(2)FreeRTOS目录下

Demo:只保留需要的单片机型号的文件和Common文件

 Source:FreeRTOS的核心文件,源码

在其中的portable文件夹中,只保留RVDS和MenMang文件夹

  • RVDS:IDE为RVD或Keil的文件
  • MemMang:内存管理

最后,还可以进一步精简,在RVDS文件夹中,只保留与自己单片机对应的架构,STM32F103的话则保留ARM-CM3即可。

最后打开Demo中的Keil项目编译即可


总结

进行了简单介绍和移植,需要对FreeRTOS代码进行进一步改进和编写,使其融入我们的项目。

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

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

相关文章

35、数据表介绍

描述 到此,我们已经掌握了camunda大多数功能的用法,对整个camunda工作流的设计理解有了全新的认识,基本上还是如下图的层次结构。 了解了这些理论对使用camunda API有非常大的帮助,丰富完善camunda API已基本可以满足大多数业务场景,然而有些时候复杂的业务中,难免有些…

Java学习-第一部分-第三阶段-项目实战:多用户即时通讯系统

多用户即时通讯系统 包含推消息 私聊 发文件 等功能 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 为什么选择这个项目有趣涉及到java各个方面的技术 ✔项目框架设计 ✔java面向对象编程 ✔网络编程 ✔多线程 ✔IO流 ✔Mysql/ 学习前使用集合充当内存数据库…

vue的过滤器

过滤器(Filters)是vue为开发者提供的功能,常用于文本的格式化。过滤器可以用在两个地方:插值表达式和v-bind属性绑定。 过滤器应该被添加在JavaScript表达式的尾部,由“管道符”进行调用,示例代码如下: 过滤器的注意点:1.要定义到filters节点下,本质上是一个函数2.在过…

我的设计模式之旅 ⑦ 观察者模式

一个菜鸟的设计模式之旅,本程序实现观察者模式。使用C#、Go两门语言分别进行实现。程序创建一个全局游戏死亡事件通知,5个玩家、1个Boss,当任意一方死亡时,在场存活者都能收到阵亡者的消息。一个菜鸟的设计模式之旅,文章可能会有不对的地方,恳请大佬指出错误。 编程旅途是…

计算机网络性能指标之时延(delay)

概念 时延(delay 或 latency)是分组在网络的一端到另一端所需的时间,也叫延迟或迟延。如上图,发送时延、处理时延和排队时延、传播时延共同组成网络的时延。排队时延:分组在经过网络传输时,要经过许多路由器,分组进入路由器后进行排队(队列)等待路由器处理,这里就产生…

【Git总结大全】git操作从入门到实战(总结篇)

目录 1、Git 克隆指定分支的代码 2、把文件从本地推送到远程仓库(亲测) 3、删除冗余的本地或远程的操作分支 4、解决 “ Author identity unknown ”问题 5、git log 查看历史提交记录 6、git常用命令速查表 7、git分区原理(超级详细&a…

谷歌数据洞察简介

谷歌数据洞察简介除了数据收集、数据转换和数据建模,数据科学家的另一个主要任务是讲故事的艺术。这是我们尝试以最引人注目的方式交流发现的见解。通常,我们通过仪表板执行此操作,因为 我们可以创建出色的视觉效果并根据数据主题自定义所有内容 被描绘并具有随着数据流入而…

Boyer-Moore 投票算法

Boyer-Moore 投票算法该算法的原始研究发表在 https://www.cs.utexas.edu/~moore/best-ideas/mjrty/ 该方法基本上非常简单,它依赖于这样一个事实,即如果一个元素出现超过 1/2 次,那么它在体积方面的贡献最大。 所以我们取一个元素,如果下一个元素与取的元素相同,我们将增…

【面试要点】判断企业基本信息——新型骗局“招聘转培训”

核心保护请一定要对个人的身份证与银行卡留有心眼,不要给任何人有中途拿取的操作。 手机不要离手,且一定要设置安全级别较高的密码。 时刻都要保持录音,无论是不是在签合同。招聘流程先是邀请你面试,但是在电话或者任何招聘网站提供的公司信息都与现场不符。 面试通过,他们…

TCP 的自然律

周一傍晚发了一则朋友圈: 放大配图,来自:How to transfer, share and send big files fast: ​ 我对此事的看法:“想高效利用庞大的资源需要的代价和资源规模的增加并不是线性的,而且指数的,下…

新一代网络请求库:python-httpx库

文章目录httpx库一、 概述1、 简介2、 命令行模式3、 快速开始3.1 get请求3.2 post请求3.2.1 表单3.2.2 文件3.2.3 JSON3.2.4 二进制3.3 响应处理3.4 流式响应3.5 cookie3.6 重定向3.7 超时和验证二、 客户端1、 特性2、 发出请求3、 其他配置4、 python_web5、 Request对象6、…

Python基础学习

文章目录1.1变量与运算符案例一:变量与运算符1.2选择结构与循环结构实训案例一:使用for循环输出满足条件的内容案例二:使用while循环1.3数据结构实战案例一:列表案例二:元组案例三:字典案例四:集…

《高级C/C++编译技术》01

Linux程序内存布局:启动程序的默认加载点是在链接阶段才添加的,通常放在程序内存映射的起始处(这是可执行文件和动态库之间的唯一区别)。启动代码有两种不同方式:crt0:“纯粹”的入口点,这是程序代码的第一部分,在内核控制下执行 crt1:更现代化的启动例程,可以在main…

某银行开发一个信用卡管理系统CCMS

38.现准备为某银行开发一个信用卡管理系统CCMS,该系统的基本功能为: (1)信用卡申请:非信用卡客户填写信用卡审请表,说明所要申请的信用卡类型及申 请者的蒸本信息,并提交给CCMS。如果信用卡申请者被…

Day08__异常

异常 Error和Exception捕获和抛出异常package exception;public class Demo01 {public static void main(String[] args) {int a=1;int b=0;//Ctrl+Alt+ttry {//try监控区域System.out.println(a/b);}catch (ArithmeticException e){//捕获异常System.out.println("除数不…

JAVA基础知识

JAVA基础知识目录IDEA快捷键简洁语法CtrlAltShift操作其他常用操作JAVA基础知识注释字面量变量数据类型关键字标识符类型转换自动类型转换表达式的自动类型转换强制类型转换运算符算数运算符符号做连接符自增自减运算符关系运算符和逻辑运算符三元运算符运算符优先级数组数组的…

Code For Better 谷歌开发者之声——Flutter - Google 开源的移动 UI 框架

写在前面 如今,人们都希望自己手机里的应用又漂亮的设计,顺滑的动画以及优异的功能,为了做到这些,开发者们需要在不妥协质量和性能的前提下,更快速地推进新功能的研发,这就是Flutter的核心。 文章目录写在前…

【转】VS2019 安装完成之后再安装其它功能模块组件安装

VisualStudio2019安装完成之后,由于开发需求需要安装其它模块或组件,点击工具,选择获取工具和功能,进行选择安装。 做个笔记随笔记录一下。选择需要的模块进行即可。【转自】https://www.cnblogs.com/jiayan1578/p/13665423.html

网络抖动了解

转自:https://blog.csdn.net/W_317/article/details/112801222, https://zhuanlan.zhihu.com/p/403614008 1.网络抖动 指网络中的延迟是指信息从发送到接收经过的延迟时间,一般由传输延迟及处理延迟组成; 抖动=最大延迟-最小延迟 如访问一个网站的最大延迟是20毫秒,最小延迟…

【转载】预测算法--时间序列(ARIMA)模型

ARIMA:AutoregressiveIntegratedMovingAverage model。自回归差分移动平均模型(p,d,q),可以说AR自回归模型,MA移动平均模型,ARMA自回归移动平均模型都是ARIMA的特殊形式. 时间序列模型一般性步骤包括:1. 数据平稳性检验;2. 确定模型参数;3. 构建时间序列模型;4.模型预测…