STM32之FreeRTOS

news2025/1/19 3:15:29

目录

FreeRTOS 介绍

什么是 FreeRTOS ?

为什么选择 FreeRTOS ?  

FreeRTOS 资料与源码下载

祼机开发与 FreeRTOS 

祼机开发:

FreeRTOS:

FreeRTOS 实现多任务的原理

二、移植 FreeRTOS 

手动移植

使用CubeMX快速移植

快速移植流程

一些常见问题

1. Timebase Source 为什么不能设置为 SysTick ?

2. FreeRTOS 版本问题

3. FreeRTOS 各配置选项卡的解释

4. 内核配置、函数使能的一些翻译


FreeRTOS 介绍

什么是 FreeRTOS

Free 即免费的, RTOS 的全称是 Real time operating system ,中文就是实时操作系统。
注意: RTOS 不是指某一个确定的系统,而是指一类操作系统。比如: uc/OS FreeRTOS RTX
RT-Thread 等这些都是 RTOS 类操作系统。
FreeRTOS 是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管
理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满
足较小系统的需要。 由于 RTOS 需占用一定的系统资源 ( 尤其是 RAM 资源 ) ,只有 μC/OS-II
embOS salvo FreeRTOS 等少数实时操作系统能在小 RAM 单片机上运行。相对 μC/OS-II
embOS 等商业操作系统, FreeRTOS 操作系统是完全免费的操作系统,具有源码公开、可移
植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为
10.4.4 版。

为什么选择 FreeRTOS ?  

  • FreeRTOS 是免费的;
  • 很多半导体厂商产品的SDKSoftware Development Kit)软件开发工具包,就使用FreeRTOS 作为其操作系统,尤其是WIFI、蓝牙这些带有协议栈的芯片或模块。
  • 简单,因为FreeRTOS的文件数量很少。

FreeRTOS 资料与源码下载

最好的资料就是官网提供的资料! FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions

祼机开发与 FreeRTOS 

众所周知,游戏与女朋友不可兼得!

祼机开发:

  • 玩游戏,结果女朋友生气,分手!
  • 陪女朋友,无法玩游戏,抑郁症!

FreeRTOS

1 秒游戏 -- 1 秒女朋友 -- 1 秒游戏 -- 1 秒女朋友 -- 1 秒游戏 -- 1 秒女朋友 ....
(累死 ……
CPU 是个无情的战斗机器,可以快速在两个乃至多个任务间快速切换,并且不觉得劳累,实现
二者兼顾。

FreeRTOS 实现多任务的原理

严格来说 FreeRTOS 并不是实时操作系统,因为它是 分时复用 的。
系统将时间分割成很多时间片,然后轮流执行各个任务。
每个任务都是独立运行的,互不影响,由于切换的频率很快,就感觉像是同时运行的一样。

二、移植 FreeRTOS 

手动移植

过程复杂且繁琐,对新手不友好。如有需要手动移植,可参照以下文章:
(30条消息) FreeRTOS移植到STM32_不秃也很强的博客-CSDN博客 (点击直达)

使用CubeMX快速移植

快速移植流程

1. SYS 选项里,将 Debug 设为 Serial Wire ,并且将 Timebase Source 设为 TIM2 (其它定
时器也行)。

 

2. RCC 里的 HSE 设置为 Crystal/Ceramic Resonator
3. 时钟按下图配置
4. 选择 FREERTOS 选项,并将 Interface 改为 CMSIS_V1
5. 配置项目信息,并导出代码。

一些常见问题

1. Timebase Source 为什么不能设置为 SysTick ?

裸机的时钟源默认是 SysTick ,但是开启 FreeRTOS 后, FreeRTOS 会占用 SysTick (用来生成 1ms
定时,用于任务调度),所以需要需要为其他总线提供另外的时钟源。

2. FreeRTOS 版本问题

V2 的内核版本更高,功能更多,在大多数情况下 V1 版本的内核完全够用。

3. FreeRTOS 各配置选项卡的解释

  • Events:事件相关的创建
  • Task and Queues: 任务与队列的创建
  • Timers and Semaphores: 定时器和信号量的创建
  • Mutexes: 互斥量的创建
  • FreeRTOS Heap Usage: 用于查看堆使用情况
  • config parameters: 内核参数设置,用户根据自己的实际应用来裁剪定制 FreeRTOS 内核
  • Include parameters FreeRTOS 部分函数的使能
  • User Constants: 相关宏的定义,可以自建一些常量在工程中使用
  • Advanced settings:高级设置

4. 内核配置、函数使能的一些翻译

内核参数的理解内容非常多,可以参考以下文章:
(30条消息) FreeRTOS系列第6篇---FreeRTOS内核配置说明_vassertcalled_研究是为了理解的博客-CSDN博客

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

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

相关文章

基于Hadoop与Electron的京东商品评论词云统计系统

一、综合设计目的与要求 合肥工业大学软件工程专业《云计算、大数据技术与应用》课程综合设计报告。 爬取京东或淘宝某一商品的评论1000条,统计词频(使用MapReduce或HBase或Hive),并以词云的方式可视化呈现,最后设计为…

python-面向对象:三大特性高级特性

文章目录 前言一、面向对象三大特性:封装、继承、多态1.对象和类2.封装3.继承(1)重写父类方法(2)多继承(3)私有属性与私有方法 4.多态 二、三大特性的应用1.链表的封装2.栈的封装3.队列的封装4.二叉树的封装 三、高级特性1.类属性与实例属性2.类方法与静态方法3.pro…

三相PWM整流器滞环电流控制MATLAB仿真模型

三相PWM整流器滞环电流控制MATLAB仿真模型资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87882090 模型简介: 该模型采用滞环电流控制方法来控制PWM整流器,在matlab/simulink中实现。电流内环采用三个滞环比较器,电压外…

C#,码海拾贝(38)——求解“线性方程组”的“高斯-赛德尔迭代法”之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

Nacos架构与原理 - 自研 Distro 协议 (AP分布式协议)

文章目录 背景设计思想Distro 协议工作原理数据初始化数据校验写操作读操作 小结 背景 Distro 协议是 Nacos 社区自研的⼀种 AP 分布式协议&#xff0c;是面向临时实例设计的⼀种分布式协议&#xff0c;其保证了在某些 Nacos 节点宕机后&#xff0c;整个临时实例处理系统依旧可…

VMware Workstation 17 安装教程

哈喽&#xff0c;大家好。今天一起学习的是VMware Workstation 17的安装&#xff0c;vm虚拟机是小编非常喜欢的生产力软件&#xff0c;小编之前发布的测试教程钧在vm上进行的实验。 VMware Workstation是一款功能强大的桌面虚拟计算机软件&#xff0c;它能够让用户在宿主机操作…

mac 电脑CPU温度怎么看?怎么可以监控Mac CPU温度,为什么我的 MacBook Air 这么热?

众所周知&#xff0c;电脑温度太高会直接影响到系统运行速度&#xff0c;对硬盘伤害也是很大的。特别是夏天&#xff0c;Mac 笔记本有时候运行起来会比较烫。关于 Mac 笔记本的散热&#xff0c;见仁见智。但是我们也比较好奇 CPU、电池的温度。怎么查看Mac CPU温度呢&#xff1…

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用(1编译器)

【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用&#xff08;1&#xff09; 目录 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用&#xff08;1&#xff09;Linux编译器-gcc/g使用gcc的编译过程预处理&#xff08;进行宏替换&#xff09;编译&a…

2023/6/8总结

MySQL必知必会 commit 和 rollback 的差异是commit会提交&#xff0c;而rollback不会&#xff0c;就好像是撤回。 使用保留点&#xff1a; 简单的rollback和commit语句就可以写入或者撤销整个事务处理&#xff0c;但是&#xff0c;只是对简单的事务处理才能这样做&#xff0…

chatgpt赋能python:Pythontypedef:介绍及使用方法

Python typedef: 介绍及使用方法 Python作为一种高级编程语言&#xff0c;支持定义类型别名&#xff0c;可以给现有类型起一个新的名字&#xff0c;从而提高代码的可读性和可维护性。在本文中&#xff0c;我们将介绍Python中的typedef概念及其使用方法。 什么是Python typede…

BiFormer实战:使用BiFormer实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整算法设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试热力图可视化展示…

【新申请】新SRRC容易Fail点分享 2.4G和5.8G的干扰规避判定方法

新SRRC容易Fail点分享 一、2.4G 产品针对于高信道边带变严格了&#xff0c;在之前带外杂散limit为-80dBm/Hz的基础上增加了一段2483.5MHz-2500MHz限值为-40dBm/MHz, 计算可得-100dBm/Hz, 限值严格了20dB。 二、2.4G和5.8G低频发射杂散变严&#xff0c;新规2.4G和5.8G限值变为…

三相PWM整流器有限集模型预测电流控制MATLAB仿真模型

三相PWM整流器有限集模型预测电流控制MATLAB仿真模型-Matlab文档类资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87881809模型简介&#xff1a; 整流器交流侧为三相对称电压&#xff0c;220V/50Hz&#xff0c;直流侧为760V&#xff0c;且电压可调。其中模…

Java 八股文-基础篇

Java 基础 一、Java 概述 1.什么是 Java&#xff1f; Java 是一门面向对象的编程语言&#xff0c;不仅吸收了 C语言的各种优点&#xff0c;还摒弃了 C里难以理解的多继承、指针等概念&#xff0c;因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为静态面向对象编…

树莓派安装 VScode 与卸载 VScode

0. 实验准备 一个带有系统的树莓派&#xff08;有屏幕更好&#xff09; 一台联网的电脑&#xff0c;且可以使用 VNC 登录树莓派&#xff08;与屏幕二选一&#xff09; 一个可以与树莓派交互文件的软件、如&#xff1a;MobaXterm&#xff08;推荐&#xff09;、WinSCP 1. 获取…

ch7_1指令系统

计算机硬件与软件之间的接口&#xff0c; 指令系统。 1.机器指令 1.1 指令的格式 指令的格式是什么&#xff1f; 操作码&#xff0c;地址码&#xff0c;寻址方式&#xff1b; 指令的字长&#xff0c;可以分为固定字长&#xff0c;可变字长&#xff1b; 操作码的长度可以是…

chatgpt赋能python:Python下Maskout

Python下Maskout Python下Maskout是一种图像处理技术&#xff0c;用于去除图像中的特定区域或对象。Maskout通常用于图像分割&#xff0c;图像合成&#xff0c;深度学习等方面&#xff0c;在许多应用程序中都有很高的需求。本文将向您介绍Python下如何实现Maskout&#xff0c;…

读改变未来的九大算法笔记07_搜索引擎

1. 车库轶事 1.1. 1939年 1.1.1. 戴夫休利特&#xff08;Dave Hewlett&#xff09; 1.1.1.1. 惠普&#xff08;Hewlett-Packard&#xff09; 1.2. 1976年 1.2.1. 蒂夫乔布斯&#xff08;Steve Jobs&#xff09;和史蒂夫沃兹尼亚克&#xff08;Steve Wozniak&#xff09; …

chatgpt赋能python:PythonPip(包管理器):即插即用的方式

Python Pip&#xff08;包管理器&#xff09;: 即插即用的方式 Python Pip是Python的包管理器&#xff0c;目的是为了简化Python包的安装和管理。Python Pip让用户可以轻松地添加、更新和删除Python包。 安装Pip 在安装Python的时候&#xff0c;一般情况下&#xff0c;Pip就…

遗留的 AppSec 工具迷失在云端

随着应用程序开发步伐的加快&#xff0c;IT 和安全团队正在对旧的应用程序安全(AppSec) 工具失去信心。 根据 Backslash 对 300 名 CISO、AppSec 经理和工程师的调查&#xff0c;遗留工具无法跟上并陷入永远的追赶游戏。 影响是深远的&#xff0c;大多数组织都看到云原生 App…