初识FreeRTOS

news2024/11/22 22:14:43

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

为什么要学 FreeRTOS ?

更有钱途!! 只会祼机开发的单片机工程师,薪资注定不会高于会 FreeRTOS 的工程师; 有了 FreeRTOS 基础,对于将来学习 Linux 操作系统会更加有帮助;

FreeRTOS 资料与源码下载

最好的资料就是官网提供的资料!点击进入官网

祼机开发与 FreeRTOS

 FreeRTOS 实现多任务的原理

严格来说 FreeRTOS 并不是实时操作系统,因为它是分时复用的

系统将时间分割成很多时间片,然后轮流执行各个任务。 每个任务都是独立运行的,互不影响,由于切换的频率很快,就感觉像是同时运行的一样

 移植 FreeRTOS 到上官二号平台

手动移植 过程复杂且繁琐,对新手不友好。如有需要手动移植,可参照以下文章:

点击直达

使用CubeMX快速移植

快速移植流程

一些常见问题

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. 内核配置、函数使能的一些翻译

内核参数的理解内容非常多,可以参考以下文章:

FreeRTOS内核参数说明

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

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

相关文章

STM32 Proteus仿真LCD12864火灾检测烟雾火焰温度报警器MQ2 -0064

STM32 Proteus仿真LCD12864火灾检测烟雾火焰温度报警器MQ2 -0064 Proteus仿真小实验: STM32 Proteus仿真LCD12864火灾检测烟雾火焰温度报警器MQ2 -0064 功能: 硬件组成:STM32F103R6单片机 LCD12864 液晶显示DS18B20 温度传感器多个按键电位…

阿里云配置端口安全组策略

文章目录 为何配置安全组安全组设置安全组应用到实例中 为何配置安全组 nginx正确配置了83端口,却无法访问资源,报502错误,这大概就是服务器的安全策略原因 安全组设置 安全组配置地址 安全组应用到实例中 配置地址

pandas 各种存储格式速度对比:CSV、hdf5、SQL、pickle、feather、parquet

前言:目前我在做一个callback函数,需要将数据重复的读取、写入,再供使用,并且数据量比较大,所以需要使用一个读写速度快的存储方式,不太考虑占用的磁盘空间 直接看结果 csv的文件存储,在读取的…

Java虚拟机(JVM)

Java虚拟机(JVM) 类加载 类加载 Java类加载的过程可以分为以下几个步骤: 加载(Loading):类加载的第一步是将类的字节码文件加载到内存中。 通过类的全名,全限定名(包括包名和类名&…

C++之std::enable_if_t用法(一百五十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

“人工智能的崛起:挑战与机遇并存“

近日,一位美国网络安全高级官员发出警告,称如果科技公司未能自我约束并与政府合作控制人工智能的力量,我们可能面临着巨大的风险。这位官员的言论是在数百名科技领袖和公众人物支持的联合声明之后发表的,该声明将人工智能的存在威…

mysql练习---存储过程/存储函数

创建表并插入数据 字段名 数据类型 主键 外键 非空 唯一 自增 id INT 是 否 是 是 否 name VARCHAR(50) 否 否 是 否 否 glass VARCHAR(50) 否 否 是 否 否 sch 表内容 id name glass 1 xiaommg glass 1 2 xiaojun glass 2 1、创建一个可以统计表格内记录条数的存储函数 &#…

W波段超外差LO两种倍频链路的比较

W波段(75-110GHz)由于其衰减小,分辨率高,超宽带等优势,受到越来越多的关注。之前由于成本高昂,主要是军事方面的应用。近些年随着Gotmic等厂家毫米波芯片的量产,成本大大降低,已被很…

LRU 缓存

题目链接 LRU 缓存 题目描述 注意点 如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字函数 get 和 put 必须以 O(1) 的平均时间复杂度运行 解答思路 如果想以O(1)的速度进行get,则需要将对应的key、value存到map中如果想…

word 公式序号自动按章节排序

1.在普通视图下,使用Alt和F9切换到域代码模式。 普通视图 域代码模式 2.光标放在章节标题最后一个字后面,使用Ctrl和F9添加域代码的大括号 3.在大括号中键入 SEQ ch \h 4.光标放在刚刚的大括号后面,再次按下Ctrl和F9添加域代码的大括号 5.…

SAP MESSAGE ID LB31的问题和解决办法

外协采购订单判退时报错 EA 返回交货(原因)-> 3700006717 /00009 (0000) 1 EA 不正确过帐返回给供应商,错误信息:对所需数量 XXXXXX00003122,1.000 PCS 仍然未清LB 31 搜索到lb31是和批次相关的错误 https://www.michaelmanagement.com/sap-error-mes…

YoloX训练报错“IndexError: list index out of range”

问题描述 在训练Yolox时报错,IndexError: list index out of range 解决方案 在/yolox/data/datasets/voc.py修改第138行 (self._imgpath % self.ids[i]).split(self.root "\\")[1]修改完代码就没问题了,开始训练

48.循环类关键字 for in of while do continue break

我们使用循环的时候很可能出现一些问题,导致语句循环次数过多(几万次甚至几十万次),这个时候请立即点击这里关闭选项卡 如果点关闭选项卡已经关不上了,可以立即结束浏览器进程,windows可以通过任务管理器关闭,linux可以…

华为OD机试真题 Java 实现【MELON的难题】【2023 B卷 100分】,采用动态规划算法,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、动态规划五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明 大家好,我是哪吒。 做技术,我是认真的,立志于打造最权威的华为OD机试真题专栏,帮助那些与我有同样需求的…

【LeetCode热题100】打卡第35天:最小栈相交链表

文章目录 【LeetCode热题100】打卡第35天:最小栈&相交链表⛅前言 最小栈🔒题目🔑题解 相交链表🔒题目🔑题解 【LeetCode热题100】打卡第35天:最小栈&相交链表 ⛅前言 大家好,我是知识汲…

MySQL-分库分表详解(一)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

C进阶:指针的进阶(1)

回归 哈喽哈喽大家好呀,我是灰灰快醒醒,时隔一个月又与大家见面了。众所周知,期末考试是中国教育部为大学生专门研发的一款开放式大逃杀游戏,学生需要扮演大难将至而绝望的人类,与小骚书共同完成《期末复习》的任务&a…

【无标题】采用技术外包做项目开发,不得不说的四大注意事项

在进行多项目开发及多个研发供应商团队管理(技术外包管理)时,你是不是也遇到不少问题。 项目管理者A:在项目开发中聘用外包技术团队的过程中,我踩过太多的坑,换过一批又一批的供应商,之前遇到过…

I.MX8MM系统构建 -- 1.系统烧录

硬件环境:米尔 MY8-C8MMX V1.3开发板软件工具:uuu烧录工具 环境准备 硬件环境 将开发板拨码开关调整为SW1(ON,OFF,x,x) SW2(x,x,x,x),按照丝印字体方向向上为OFF,向下为ON。将开发板USB连接到PC给开发板通上12V电源(注意先修改拨…

Django框架之CSRF使用篇

Django框架之CSRF使用篇 目录 全局使用 设置csrf token 表单使用 脚本使用 单独豁免 引入csrf类库 设置单独豁免csrf 单独保护 关闭全局csrf 引入csrf库 设置函数保护 csrf token配置 总结 全局使用 Django项目配置中默认全局使用csrf中间件,注释掉即…