【FreeRTOS】第一章:介绍

news2024/10/10 10:27:56
  1. FreeRTOS是什么?
    Free和RTOS,Free就是免费的、自由的意思,RTOS 全称是 Real Time Operating System。中文名就是实时操作系统。可以看出FreeROTS 就是一个免费的 RTOS 类系统。这里要注意,RTOS 不是指某一个确定的系统,而是指一类系統。比如 UCOS,FreeRTOS,RTX,RT-Thread 等都是RTOS 类操作系統。操作系统允许多个任务同时运行,这个叫做多任务,实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是決定在某一时刻究竟运行哪个任务,任务调度在各个任务之间的切换非常快!这就给人们造成了同一时刻有多个任务同时运行的错觉。操作系统的分类方式可以由任务调度器的工作方式决定,比如有的操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,Unix 操作系统就是这样的。RTOS 的任务调度器被设计为可预测的,而这正是嵌入式实时操作系统所需要的,实时环境中要求操作系统必须对某一个事件做出实时的响应,因此系统任务调度器的行为必须是可预测的。像 FreeRTOs 这种传统的RTOS类操例系统是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。
    FrceRTOS 是 RTOS 系统的一种,FreCRTOS 十分的小巧,可以在资源有限的徽控制器中运行,当然了,FreeRTOS 不仅局限于在微控制器中使用
  2. 为什么选择FreeRTOS?
    1.免费
    2.简单,文件少
    3.ST有cubemx工具能直接生成工程方便移植
    4.文档齐全
    5.社会占有量高
  3. FreeRTOS优点
    FreeRTOS 是一个可裁剪的小型 RTOS 系统,其特点包括:
    FreeRTOS 的内核支持抢占式,合作式和时间片调度。
    提供了一个用于低功耗的 Tickless 模式。
    系统的组件在创建时可以选择动态或者静态的 RAM,比如任务、消息队列、信号量、软件定时器等等。
    FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 单元,如 STM32F429。
    FreeRTOS 系统简单、小巧、易用,通常情况下内核占用 4k-9k 字节的空间。
    高可移植性,代码主要 C 语言编写。
    高效的软件定时器。
    强大的跟踪执行功能。
    堆栈溢出检测功能。
    任务数量不限。
    任务优先级不限。
  4. FreeRTOS源码
    https://www.freertos.org/zh-cn-cmn-s/
    在这里插入图片描述5.STMcubemx简单使用FreeRTOSV1
    在这里插入图片描述以上是测试例程使用的主控芯片型号:STM32F407ZGT6

在这里插入图片描述选择外部晶振,比内部晶振稳定频率更高

在这里插入图片描述把高速外部时钟,25M晶振接入倍频器,使HCLK达到168MHZ的最高频率

在这里插入图片描述Debug 修改为Serial wire,通过SWD方式下载代码
Timebase Source:时间基源 改为定时器1,systick留给FreeRTOS内核使用

在这里插入图片描述项目使用FreeRTOS的V1版本

在这里插入图片描述在这里插入图片描述按上述设置完后,点击生成工程
在这里插入图片描述在这里插入图片描述
上图代表工程生成成功

在这里插入图片描述生成的MDKV5的工程目录结构

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

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

相关文章

联想电脑安装ubuntu18.04双系统超详细教程(23年最新教程,99%成功率)

文章目录前言电脑配置制作系统盘安装ubuntu系统更新显卡驱动安装wifi驱动完成前言 ubtuntu的长期支持版本现在应该已经出道21.04版本了,如果你对于版本没有要求的话,建议直接安装最新版ubuntu,因为新版的系统驱动都会进行更新,也…

自学 Java 怎么入门?

玩Java多年的老司机带你上车全面系统学习Java,并且还能教你如何学习才能在今年拿到一份不错的offer。 说到系统全面,就是以目前绝大部分公司招聘要求的知识内容为基准,毕竟我们学习Java都是为了高薪工作,《史记》中说”天下熙熙皆…

2.【SpringBoot源码】SpringBoot核心启动流程

目录 一、简介 二、创建SpringApplication对象 1)、推导出当前启动的项目的类型 2)、设置Initializer初始化器 3)、初始化Listener监听器 4)、反推出main方法所在的Class对象 三、运行SpringApplication#run(java.lang.String...)方法 1)、获取运行监听器 2)、发布…

unity使用对象池实现冲锋留下的残影效果

目录 效果展示 实现思路 残影代码 对象池代码 控制冲刺产生残影 CD冷却图标 效果展示 实现思路 对象池,有想要用的物体时可以从池子里取,用完再放回去。 因为在生成残影再销毁,这个过程中创建和销毁都需要耗费大量资源,因此…

shell 条件测试详解

目录 shell条件测试 一,条件测试的基本语法 1,test 2,[ ] 3,[[ ]] 二,文件测试表达式 1,判断目录是否存在: 2,判断文件file1是否有写的权限,结果为有 3&#xf…

重学MySQL基础(一)

文章目录重学MySQL基础(一)MySQL 连接管理MySQL字符编码InnoDB 记录存储结构InnoDB 表的主键生成策略:InnoDB 数据页结构页目录页的效验和索引事务报错记录在MySQL中创建函数时出现这种错误恶补SQL语句SQL中的条件语句SQL中的字符串函数SQL中…

python调用go语言踩坑记录

目录 基本操作 1 在go文件中加注释,设置为导出方法,导出C依赖 2 导出so文件(mac或者linux下只需要so) 3 进行调用 报错记录 踩坑1 关于结构体 2 cannot use (_Cfunc_CString)("12345") (value of type *_Ctype_char) as ty…

spring中事务失效场景

文章目录spring中事务失效场景一、权限访问问题二、方法用final修饰三、无事务嵌套有事务的方法四、没有被spring管理五、设计的表不支持事务六、没有开启事务七、错误的事务传播八、自己捕获了异常九、手动抛出别的异常十、自定义回滚异常spring中事务失效场景 一、权限访问问…

软件研发管理经验总结 - 事务管理

软件研发管理经验总结 - 事务管理 相关系列文章 软件产品研发管理经验总结-管理细分 软件研发管理经验总结 - 事务管理 目录软件研发管理经验总结 - 事务管理一、概述二、事务管理过程1、制定开发计划2、启动会议3、阅读前一天的日报4、例会/早会5、调整计划6、协调资源7、日报…

LeetCode——2325. 解密消息

一、题目 给你字符串 key 和 message ,分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下: 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 将替换表与普通英文字母表对齐,形成对照表。 按照对照表…

vue全家桶(三)前端路由

vue全家桶(三)前端路由1.路由的概念1.1路由1.2vue Router2.vue-router的基本使用步骤2.1基本使用步骤2.2路由重定向3.vue-router的嵌套路由用法3.1嵌套路由的用法4.vue-router动态路由匹配用法5.vue-router命名路由用法6.vue-router编程式导航用法6.1 页…

06 Sentinel控制台规则配置讲解 (2)

1、实时监控 监控接口的通过的QPS和拒绝的QPS 2、簇点链路 用来显示微服务的所监控的API 3、流控规则 流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以…

源于《C陷阱与缺陷》----研究程序死循环问题

本题来源于《C陷阱与缺陷》这本书,从本质上讲解程序死循环的原因,关键在于栈的空间使用方式。研究程序死循环的原因死循环的原因是什么呢?解决方法总结研究程序死循环的原因 题目1: 在VS2019 X86环境下测试: int mai…

Linux服务器怎么设置iptables防火墙?

当今,为避免香港服务器及其端口受到恶意入侵,保障香港服务器的安全,配置Linux服务器防火墙的重要性不言而喻。恒创科技将向您介绍如何在 CentOS、Ubuntu 和 Debian 服务器中安装和配置 iptables防火墙。iptables是一个简单的防火墙&#xff0…

测试工程师必备技能之编写测试用例

1. 必要性 👉 指导测试工作,用例通过率是评估质量的基准 👉 完善测试人员测试的整体思路,不出现漏测 ❗️ 避免背锅,线上出了问题防止开发甩锅给测试 2. 模板 企业中用例往往是每个人负责不同模块,再根据…

Verilog实现超前进位加法器

在CPU等对性能要求较高的电路中,一般都会采用超前进位加法器,因为超前进位加法器的延时相对来说比较小。下面讲述超前进位加法器的原理: 我们知道,一个三输入,二输出的全加器,其逻辑关系为 SA⊕B⊕CinSA\op…

每日一练9——另类加法走方格的方案数

文章目录另类加法思路:代码:走方格的方案数思路:代码:另类加法 题目链接 思路: 本题可以通过位运算实现,具体实现如下: 两个数求和,其实就是 求和后当前位的数据两个数求和的进位…

Ceres Solver解算已知函数模型参数

一、介绍Ceres solver 是谷歌开发的一款用于非线性优化的库,在已知一个函数表达式,以及一组观测到的值,利用最小二乘是可以解算得到相关参数。下面举例使用ceres solver解算直线函数以及曲线函数参数。其过程包括三个步骤:&#x…

图为技术:专注核心技术 引领行业发展

图为技术T-3D引擎经过多年的技术积累与原始创新,作为国内首批基于分布式技术进行三维图形底层渲染的开拓者,不仅在渲染架构上优势明显,同时其所具备数据管理能力也十分卓越。分布式架构采用独创的(Multi Compute Server To Web Render)架构方…

Java多线程之CAS中的ABA问题与JUC的常见类

文章目录一. CAS指令与ABA问题1. 解析CAS2. 基于CAS实现的原子类3. 基于CAS实现自旋锁4. ABA问题二. JUC中的常见类1. Callable接口2. ReentrantLock类(可重入锁)3. Semaphore类(信号量)4. CountDownLatch同步工具类一. CAS指令与ABA问题 1. 解析CAS CAS即compare and awap, …