FreeRTOS快速入门-初探FreeRTOS

这篇具有很好参考价值的文章主要介绍了FreeRTOS快速入门-初探FreeRTOS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首发,公众号【一起学嵌入式

对于 RTOS 入门系列文章,已经更新完一款(RT-Thread):

助你快速入门 RT-Thread

这个系列的文章结合 RT-Thread,介绍过 RTOS 相关的核心知识。

接下来,开始另外一款 RTOS – FreeRTOS 入门系列,希望能够帮助初学者快速掌握 FreeRTOS,帮助老手回顾基础内容。

一起学习、一起进步。加油~

FreeRTOS简介

先来看看官网介绍,官方网址

https://freertos.org/

FreeRTOS快速入门-初探FreeRTOS

FreeRTOS 是一种面向微控制器和小型微处理器的市场领先实时操作系统(RTOS),与世界领先的芯片公司合作开发了18年,现在每 170 秒下载一次。

FreeRTOS根据麻省理工学院开放源码许可证免费发布,包括一个内核和一组越来越多的物联网库,适用于所有行业。FreeRTOS强调可靠性和易用性。

FreeRTOS 合作过的部分 IC 厂商:

FreeRTOS快速入门-初探FreeRTOS

特点

FreeRTOS 的主要特点如下:

  • 支持抢占式调度、协作式调度、时间片调度
  • 灵活、快速、轻量级的任务通知机制。
  • 支持消息队列、二值信号量、计数信号量、互斥量、递归互斥、软件定时器、事件标志组等功能
  • 时钟节拍钩子函数
  • 空闲钩子函数
  • 栈溢出检测
  • 任务运行时统计信息收集
  • 可选的商业许可和支持
  • 全中断嵌套模型(对于某些体系结构)
  • 极低功耗应用的无滴答功能
  • 软件管理的中断堆栈(这有助于节省RAM)
  • 支持 40 多个体系结构。
  • 模块化库。

为什么选择 FreeRTOS

列举几个选择 FreeRTOS 用于项目开发的几点原因:

  • 为许多不同的体系结构和开发工具提供单一且独立的解决方案。
  • 众所周知,它是可靠的。
  • 功能丰富,仍在持续积极发展。
  • 具有最小的 ROM、RAM 和 处理器开销。RTOS 内核二进制映像通常在 6K 到 12K 字节的范围内。
  • 非常简单——RTOS内核的核心只包含在 3 个 C 文件中。
  • 在商业应用中真正免费使用(详见许可证条件)。
  • 我们的合作伙伴WITTENSTEIN high integrity systems以OPENRTOS的形式提供商业许可、专业支持和移植服务。
  • 拥有通往 SafeRTOS 的迁移路径,其中包括医疗、汽车和工业部门的认证。
  • 拥有庞大且不断增长的用户群。
  • 包含每个端口的预配置示例。
  • 拥有一个优秀的、活跃的免费支持论坛。
  • 保证在需要时提供商业支持。
  • 提供了大量的文档。
  • 非常可扩展,简单易用。

源码文件结构

官方源码的下载地址为:

https://www.freertos.org/a00104.html

FreeRTOS快速入门-初探FreeRTOS

源码下载后,是一个压缩包 FreeRTOSv202112.00.zip,解压后如下图所示

FreeRTOS快速入门-初探FreeRTOS

FreeRTOS 的源码在 FreeRTOS 和 FreeRTOS-Plus 这两个文件夹中。tools 文件夹存放的是一些脚本工具。剩下的文件,看名字就知道是干什么用的了。

FreeRTOS文件夹

这个文件夹里放的是 FreeRTOS 内核相关的文件,打开 FreeRTOS 文件,来看看里面的内容

FreeRTOS快速入门-初探FreeRTOS

Demo 文件夹里包含 FreeRTOS 官方为各种单片机移植好的示例工程代码。

Source 文件夹里存放的是 FreeRTOS 的内核源码文件。

Demo文件夹

这个文件夹里面存放的是 FreeRTOS 针对不同的 MCU 平台提供的例程 Demo。开发者可以参考这些 Demo 搭建自己的工程项目。如下图所示,官方提供的示例工程是非常全面的,几乎覆盖了常见的 MCU 平台。

FreeRTOS快速入门-初探FreeRTOS

Source 文件夹

这个文件夹里存放的是 FreeRTOS 的内核源码文件。也就是我们使用 FreeRTOS 必须用到的文件。下图中标示出各个部分的用途

FreeRTOS快速入门-初探FreeRTOS

include 文件夹是一些头文件,下面的这些 .c 文件就是 FreeRTOS 的源码文件。这两部分是不可或缺的,不必多说。

接下来看看 portable 文件夹,里面包含的是跟编译器相关的文件夹,使用不同的编译平台,选择对应的支持文件。

FreeRTOS快速入门-初探FreeRTOS

我们比较常用的是 keil,这个目录下只有一个文件,文件名字为 See-also-the-RVDS-directory.txt。即这个目录下的内容和 RVDS 目录相同。使用 RVDS 文件夹内的文件即可,具体如下所示

FreeRTOS快速入门-初探FreeRTOS

这里边的关联文件是连接 FreeRTOS 和具体硬件平台的桥梁。编写这些接口文件就是真正的移植过程,这部分工作已经由 FreeRTOS 官方完成了,我们直接拿来用就可以了。

MemMang 文件夹下存放的是跟内存管理相关的文件,共有 5 个 heap_x.c 文件和 1 个 ReadMe 文件。在移植时,根据选用的内存堆分配算法,选用其中一个即可。

License 文件夹

该文件夹下只有一个文件 license.txt,该文件描述的是相关的许可信息。用 FreeRTOS 做产品时需要看看。对于个人学习,暂时不需要关心。

FreeRTOS-Plus 文件夹

FreeRTOS-Plus 文件夹里存放的是第三方产品。

FreeRTOS快速入门-初探FreeRTOS

该文件里面也有 Demo 和 Source 文件夹。Source 文件夹里存放的是一些扩展功能源码文件,例如 CLI、TCP、Trace等等。Demo 文件夹里存放的是扩展功能的示例工程。

如果只是学习和使用 FreeRTOS 系统内核,这部分内容就没必要看了。

学习资料

官方的资料还是丰富的,打开官网即可获取到

FreeRTOS快速入门-初探FreeRTOS

FreeRTOS快速入门-初探FreeRTOS

可以看在线的资料文档,当然也可以下载官方 PDF 文件

FreeRTOS快速入门-初探FreeRTOS

两个 PDF 文件,一个是手把手入门教程,一个是 API 参考手册。

不过,这些资料都是英文的。

最后

本篇文章简单介绍了 FreeRTOS 的一些基本情况,以及源码文件存放结构等。源码获取和资料获取都做了简单介绍说明。

为了方便学习,我将官方 PDF 资料和源码已经下载,并且搜集了一些 FreeRTOS 的学习资料,一起打包放在网盘里了。
在公众号后台留言【freertos

今天先到这,下次继续。加油~

公众号【一起学嵌入式】,精彩首先送达文章来源地址https://www.toymoban.com/news/detail-450342.html

到了这里,关于FreeRTOS快速入门-初探FreeRTOS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RTOS】快速体验FreeRTOS所有常用API(4)队列

    快速体验FreeRTOS所有常用API(1)工程创建 快速体验FreeRTOS所有常用API(2)任务管理 快速体验FreeRTOS所有常用API(3)同步与互斥 快速体验FreeRTOS所有常用API(4)队列 快速体验FreeRTOS所有常用API(5)信号量、互斥量 快速体验FreeRTOS所有常用API(6)事件组 快速体验FreeRTOS所有常

    2024年01月15日
    浏览(41)
  • 【RTOS】快速体验FreeRTOS所有常用API(2)任务管理

    快速体验FreeRTOS所有常用API(1)工程创建 快速体验FreeRTOS所有常用API(2)任务管理 快速体验FreeRTOS所有常用API(3)同步与互斥 快速体验FreeRTOS所有常用API(4)队列 快速体验FreeRTOS所有常用API(5)信号量、互斥量 快速体验FreeRTOS所有常用API(6)事件组 快速体验FreeRTOS所有常

    2024年01月15日
    浏览(41)
  • 【RTOS】快速体验FreeRTOS所有常用API(1)工程创建

    快速体验FreeRTOS所有常用API(1)工程创建 快速体验FreeRTOS所有常用API(2)任务管理 快速体验FreeRTOS所有常用API(3)同步与互斥 快速体验FreeRTOS所有常用API(4)队列 快速体验FreeRTOS所有常用API(5)信号量、互斥量 快速体验FreeRTOS所有常用API(6)事件组 快速体验FreeRTOS所有常

    2024年01月20日
    浏览(40)
  • 【Freertos基础入门】freertos任务的优先级

    本系列基于 stm32 系列单片机来使用freerots 任务管理是实时操作系统(RTOS)的核心功能之一,它允许开发者以并发的方式组织和管理多个任务。FreeRTOS 是一个流行的开源RTOS,它提供了强大的任务管理功能,让开发者能够轻松创建和控制任务。本文将介绍 FreeRTOS 的任务管理功能

    2024年02月13日
    浏览(35)
  • 10分钟!快速部署ChatGPT微信公众号机器人!

    在上面公众号后台就可以免费体验gpt机器人 马上五一啦,很多小伙伴都要出去玩了,出去玩没有GPT怎么行呢!有没有一个简单的,可以24小时玩的GPT的! 前面我们教过大家部署微信机器人做24小时的助理,还有chatgpt web版本! 今天我们来教大家第三招,把gpt部署到微信公众号

    2024年02月08日
    浏览(48)
  • stm32 freeRTOS lwip TCP快速发送,内存泄露问题

    现象1: 发送缓慢,tcp_write之后要等200多ms才能过发送出去,而且粘包严重。 解决办法 tcp_write之后,立马调用tcp_output ,tcp就会立马发送。 现象2: 持续快速发送和接受TCP数据出现断言 而且出现TCP断连,死机情况。 其实就是一句话 主程序和以太网中断程序中对PCB-unsent 之类的

    2024年02月08日
    浏览(38)
  • 国密算法初探 | 入门教程 | 解析

    国密算法即国家密码局认定的国产密码算法。 国密算法是商用密码,仅能用于商业用途。 国密算法是一套标准,由国家密码局制定的规范,凡是符合的,都可以称之为国密算法。 国密算法暂无官方的代码实现,企业可以自己编码实现,并申请国家密码局认证,通过后即被认

    2024年02月08日
    浏览(43)
  • 【Python 零基础入门】常用内置函数 初探

    Python 是一种解释性, 高级和通用的变成语言. Python 由 Guido van Rossum 创建并 1991 年首次发布. Python 的设计强调代码的可读性, 其雨大允许我们使用相较于 C++ 或 Java 更少的代码表达概念. Python 使得变成变得更简单, 更快捷. 下面就跟着小白我来一起看一下 Python 常用的内置函数.

    2024年02月05日
    浏览(75)
  • 0基础入门代码审计-2 Fortify初探

    1、Fortify 2、需要审计的源码 1、  1、在开始菜单栏中找到Audit Workbench。 2、打开之后,是Fortify的首页(不同版本,首页可能不同)。 3、选择Advanced Scan导入源码。 1)选择源码; 2)选择java版本; 3)选择输出报告的位置。 4、点击Scan,开始源码扫描。 5、审计结束后,会输出审计

    2024年02月11日
    浏览(41)
  • 【一起学数据结构与算法】快速教你了解并实现单链表

    此篇是对单链表知识的学习和实现,基本上大体的方法实现和思路都已经表达,如果有不对的地方,还请各位大佬多多指教! 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素

    2024年02月19日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包