初识FreeRTOS

1.什么是FreeRTOS?

  1. Free 即免费的,RTOS 全称是 Real Time Operating System,中文就是实时操作系统。注意,RTOS 不是指某一个确定的系统,而是指一类系统。比如 uC/OS,FreeRTOS,RTX,RT-Thread 等这些都是 RTOS 类操作系统。
  2. 操作系统允许多个任务同时运行,这个叫做多任务。实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行哪个任务。任务调度在各个任务之间的切换非常快,就给人们造成了同一时刻有多个任务同时运行的错觉。
  3. 某些操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,比如Unix 操作系统。 FreeRTOS 操作系统则是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。
  4. FreeRTOS 是 RTOS 系统的一种,FreeRTOS 十分的小巧,可以在资源有限的微控制器中运行,当然,FreeRTOS 不仅局限于在微控制器中使用。但从文件数量上来看 FreeRTOS 要比uC/OSII 和 uC/OSIII 小的多。

2.为什么择 选择 FreeRTOS ?

RTOS 类系统有很多,比如 uC/OS,资料很多,尤其是中文资料,那为什么要选择 FreeRTOS 呢?

  1. FreeRTOS是免费的,学习RTOS操作系统的话 uC/OS是首选,但要做产品的话,免费的FreeRTOS操作系统就是个不错的选择。

  2. 许多半导体厂商产品的 SDK(Software Development Kit—软件开发工具包) 包就使用 FreeRTOS 作为其操作系统,尤其是 WIFI、蓝牙这些带协议栈的芯片或模块。

  3. 简单,因为FreeRTOS 的文件数量很少。

3.FreeRTOS 特点

FreeRTOS 是一个可裁剪的小型 RTOS 系统,其特点包括:

  • FreeRTOS 的内核支持抢占式,合作式和时间片调度。
  • 提供了一个用于低功耗的 Tickless 模式。
  • 系统的组件在创建时可以选择动态或者静态的 RAM,比如任务、消息队列、信号量、软件定时器等等。
  • FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 单元,如 STM32F429。
  • FreeRTOS 系统简单、小巧、易用,通常情况下内核占用 4k-9k 字节的空间。
  • 高可移植性,代码主要 C 语言编写。
  • 高效的软件定时器。
  • 强大的跟踪执行功能。
  • 堆栈溢出检测功能。
  • 任务数量不限。
  • 任务优先级不限。

FreeRTOS资料与源码下载

要找资料,官网是最好的地方,FreeRTOS的官网是www.freertos.org。

进入 FreeRTOS 首页,就会看到download下载链接,进入后下载“FreeRTOSv9.0.0.exe”文件,下载完成后双击运行,下载源码到指定目录。

由于该网站是国外网站,加载的比较慢,所以此处放上资料和源码的百度云链接-


FreeRTOS源码文件介绍

打开源码文件夹,可以看到有两个文件夹,4 个 HTML 格式的网页和一个 txt 文档,HTML 网页和 txt 文档就不用介绍了,看名字就知道是什么东西了,重点在于上面那两个文件夹:FreeRTOS 和 FreeRTOS-Plus,这两个文件夹里面的东西就是 FreeRTOS 的源码。

1.FreeRTOS文件夹

打开 FreeRTOS 文件夹,可以看到里面有三个文件夹:

Demo   文件夹里面就是 FreeRTOS 针对不同的 MCU 提供的相关例程,其中就有 ST 的 F1、F4 和F7 的相关例程,这对于我们学习来说是非常友好的,我们在移植的时候就会参考这些例程。

License  文件夹里面就是 相关的许可信息,要用 FreeRTOS 做产品的得仔细看看,尤其是要出口的产品。

Source  文件夹 里面就是 FreeRTOS 的源码文件,也是我们以后打交道的,可以看出,相比于 uC/OS来说 FreeRTOS 的文件非常少!include 文件夹是一些头文件,移植的时候是需要的,下面的这些.C 文件就是 FreeRTOS 的源码文件了,移植的时候肯定也是需要的。

重点来看一下 portable这个文件夹,FreeRTOS 是个系统,归根结底就是个纯软件的东西,它是怎么和硬件联系在一起的呢?软件到硬件中间必须有一个桥梁,portable 文件夹里面的东西就是 FreeRTOS系统和具体的硬件之间的连接桥梁!不同的编译环境,不同的 MCU,其桥梁应该是不同的,打开 portable 文件夹,如下图所示:

MemMang 这个文件夹是跟内存管理相关的,我们移植的时候是必须的。Keil 文件夹里面的东西肯定也是必须的,但是我们打开Keil文件夹以后里面只有一个文件:See-also-the-RVDS-directory.txt,意思就是参考RVDS文件夹里面的东西!

RVDS 文件夹针对不同的架构的 MCU 做了详细的分类,STM32F429 就参考 ARM_CM4F,打开 ARM_CM4F 文件夹,里面有两个文件,这两个文件就是我们移植的时候所需要的!

2.FreeRTOS-Plus  文件夹

打开 FreeRTOS-Plus可以看到,里面也有 Demo 和 Source,Demo 文件夹里存放的肯定是一些例程, 而Source文件夹中存放的并不是 FreeRTOS 系统的源码,是在这个 FreeRTOS系统上另外增加的一些功能代码,比如 CLI、FAT、Trace 等等。就系统本身而言,和 FreeRTOS里面的一模一样的,所以我们如果只是学习 FreeRTOS 这个系统的话,FreeRTOS-Plus 就没必要看了。

FreeRTOS简介相关推荐

  1. FreeRTOS系列|FreeRTOS简介

    FreeRTOS简介 1. RTOS简介 RTOS全称为 Real Time Operation System,即实时操作系统.RTOS强调的是实时性,又分为硬实时和软实时.硬实时要求在规定的时间内必 ...

  2. 【STM32】FreeRTOS简介

    00. 目录 文章目录 00. 目录 01. 什么是FreeRTOS 02. 为什么选择FreeRTOS 03. FreeRTOS特点 04. FreeRTOS商业许可 05. 预留 06. 附录 0 ...

  3. 一、FreeRTOS简介

    初识FreeRTOS 1.什么是FreeRTOS? Free 即免费的,RTOS 全称是 Real Time Operating System,中文就是实时操作系统.注意,RTOS 不是指某一个确定的 ...

  4. FreeRTOS 简介

      FreeRTOS 是一个 RTOS 类的嵌入式实时操作系统.它的社会占有量很高,许多半导体厂商产品的 SDK 包就使用 FreeRTOS 作为其操作系统,尤其是 WIFI.蓝牙这些带协议栈的芯片或 ...

  5. FreeRTOS -- 简介

    FreeRTOS是一个迷你的实时操作系统内核.作为一个轻量级的操作系统,功能包括:任务管理.时间管理.信号量.消息队列.内存管理.记录功能.软件定时器.协程等,可基本满足较小系统的需要. 任务调度机制 ...

  6. 一、初识FreeRTOS之FreeRTOS简介

    目录 一.什么是FreeRTOS? 二.为什么选择FreeRTOS? 三.FreeRTOS的特点 四.FreeRTOS资料与源码下载 五.FreeRTOS源码文件介绍 一.什么是FreeRTOS? F ...

  7. 自娱自乐的FreeRTOS ——简介

    1.为什么学习FreeRTOS? FreeRTOS是一个免费的RTOS(实时操作)系统,通过任务调度器决定某一时刻运行哪一个任务模拟多个任务在一个处理器核心里同时运行.RTOS不像Unix操作系统给每 ...

  8. 基于STM32的FreeRTOS开发(1)----FreeRTOS简介

    为什么使用freertos FreeRTOS 是一个免费和开源的实时操作系统,它主要用于嵌入式系统.它非常轻量级,可以在很小的硬件资源上运行,因此非常适合在限制硬件资源的嵌入式系统中使用. FreeR ...

  9. 基于STM32的实时操作系统FreeRTOS移植教程(手动移植)

    前言:此文为笔者FreeRTOS专栏下的第一篇基础性教学文章,其主要目的为:帮助读者朋友快速搭建出属于自己的公版FreeRTOS系统,实现后续在实时操作系统FreeRTOS上的开发与运用.操作系统的学 ...

最新文章

  1. php case语句 分号
  2. win2003 配置跨域邮件服务器
  3. C++用FindFirstFile、FindNext递归遍历硬盘的文件
  4. 全球及中国汽车物流行业未来发展方向与投资机遇研究报告2022版
  5. MySQL 高级 - 启动及登录MySQL
  6. 设计模式-结构型模式-装饰模式
  7. nginx php exec,PHP Web 端如何操作 Nginx 配置
  8. 【华为云技术分享】选择困难症必看!云服务器操作系统选择技巧+经验
  9. linux 如何查看远程代码分支,linux看git 创建分支、删除本地分支、查看远程分支、本地分支例子...
  10. 正高职称 程序员_我985毕业33岁正高,职称评审哪里难?轻轻松松过职称
  11. python实践gcForest模型对鸢尾花数据集iris进行分类
  12. [工作记录]在线表格比对系统实现思路整理
  13. 德保罗大学计算机排名,德保罗大学费用
  14. 交换机和路由器有什么区别
  15. SEO入门学习:关键词密度和布局
  16. Java实现对png图片文件电子签名操作
  17. 【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 整合Spring Data JPA
  18. 文件上传插件WebUploader的使用
  19. Vue3在当前h5界面禁用移动端物理返回键代码
  20. 写JS代码让自己头秃的点

热门文章

  1. Java实现阿里云云通短信通知发送
  2. Vijos1889 天真的因数分解
  3. 第三章 程序的机器级表示
  4. Android小程序-乐学成语背景音乐(五)
  5. Altium Designer-快速画封装,图解
  6. 前端程序员快速画原型的方法在这里
  7. 【中学】判断三角形的形状
  8. 互联网早报:京东健康宠物医院上线:注册医生超3000名 提供7X24在线健康咨询服务
  9. 家居家装行业人群洞察白皮书.pdf
  10. 安全狗2周年“全民大抽奖”活动