一、初识FreeRTOS之FreeRTOS简介

2023-05-16

目录

一、什么是FreeRTOS?

二、为什么选择FreeRTOS?

三、FreeRTOS的特点

四、FreeRTOS资料与源码下载

五、FreeRTOS源码文件介绍


一、什么是FreeRTOS?

Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread等这些都是RTOS类操作系统。

操作系统允许多个任务同时运行,这个叫做多任务。实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行的哪个任务。任务调度在各个任务之间的切换非常快,就给人们造成了同一时刻有多个任务同时运行的错觉。

某些操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,比如Unix操作系统,FreeRTOS操作系统则是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。

FreeRTOS是RTOS系统中的一种,FreeRTOS十分的小巧,可以在资源有限的微控器中使用,当然FreeRTOS不仅仅局限于在微控器中使用,但从文件数中来说FreeRTOS要比uc/OS小的多。

二、为什么选择FreeRTOS?

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

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

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

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

三、FreeRTOS的特点

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

①FreeRTOS的内核支持抢占式,合作式和时间片调度。

②提供了一个用于低功耗的Tickless模式。

③系统的组件在创建时可以选择动态或者静态的RAM,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。基本可以满足较小系统的应用。

④FreeRTOS-MPU支持Core-M系列中的MPU单元,如STM32F429。

⑤FreeRTOS系统简单、小巧、易用,通常情况下内核占用4k-9k字节的空间。

⑥高移植性,代码主要用c语言编写。

⑦高效的软件定时器。

⑧强大的跟踪执行功能。

⑨堆栈溢出检测功能。

⑩任务数量不限、任务优先级不限。

四、FreeRTOS资料与源码下载

找资料最好在官网下载,FreeRTOS的官网是:www.freertos.org。

①进入FreeRTOS官网首页,就会看到download下载链接

②进入后下载“FreeRTOS 202112.00”文件,下载完成后解压到指定目录。

由于该网址是国外网站,建议翻墙下载,否则加载的非常慢。

五、FreeRTOS源码文件介绍

打开源码文件夹,重点看上面的两个文件夹:FreeRTOS和FreeRTOS-Plus,这两个文件里面的文件就是FreeRTOS的源码。

①FreeRTOS文件夹

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

Demo文件夹里面就是FreeRTOS针对不同的MCU提供的相关例程,进行程序移植的时候可以参考这些例程。

License文件夹里面的就是相关许可信息。

Source文件里面就是FreeRTOS的源代码文件,include文件夹是一些头文件,移植的时候也是需要的,下面这些c文件就是FreeRTOS的源代码文件,移植的时候也是需要的。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一、初识FreeRTOS之FreeRTOS简介 的相关文章

  • STM32CubeMX+FreeRTOS学习笔记(一)

    嵌入式实时操作系统FreeRTOS 基本概述 在嵌入式领域当中 实时操作系统的应用越来越广泛了 目前嵌入式操作系统种类很多 例如 Clinux C OS II C OS III FreeRTOS RT Thread等等 这篇文章所记录的就是
  • FreeRTOS 软件定时器的使用

    FreeRTOS中加入了软件定时器这个功能组件 是一个可选的 不属于freeRTOS内核的功能 由定时器服务任务 其实就是一个定时器任务 来提供 软件定时器是当设定一个定时时间 当达到设定的时间之后就会执行指定的功能函数 而这个功能函数就叫
  • FreeRTOS学习笔记 6 - 互斥量

    目录 1 创建 2 获取 3 释放 4 测试 FreeRTOS不支持调度方式的设置 所以下面2个宏定义可以随意设置值 define RTOS IPC FLAG FIFO 0x00 define RTOS IPC FLAG PRIO 0x01
  • FreeRTOS学习笔记<中断>

    中断概念 Cortex M的NVIC最多支持240个IRQ 中断请求 1个不可屏蔽中断 NMI 1个Systick 滴答定时器 定时器中断和多个系统异常 Cortex M处理器有多个用于管中断和异常的可编程寄存器 这些寄存器大多数都在 NV
  • FreeRTOS ------- 任务(task)

    在学习RTOS的时候 个人觉得带着问题去学习 会了解到更多 1 什么是任务 在FreeRTOS中 每个执行线程都被称为 任务 每个任务都是在自己权限范围内的一个小程序 其具有程序入口每个任务都是在自己权限范围内的一个小程序 其具有程序入口通
  • 基于HAL库的FREERTOS----------一.任务

    FreeROTS 就是一个免费的 RTOS 类系统 这里要注意 RTOS 不是指某一个确定的系统 而是指一类系统 比如 UCOS FreeRTOS RTX RT Thread 等这些都是 RTOS 类操作系统 FreeRTOS 是 RTOS
  • FreeRTOS临界区

    FreeRTOS临界区是指那些必须完整运行 不能被打断的代码段 比如有的外设的初始化需要严格的时序 初始化过程中不能被打断 FreeRTOS 在进入临界区代码的时候需要关闭中断 当处理完临界区代码以后再打开中断 FreeRTOS 系统本身就
  • FreeRTOS记录(九、一个裸机工程转FreeRTOS的实例)

    记录一下一个实际项目由裸机程序改成FreeRTOS 以前产品的平台还是C8051单片机上面的程序 硬件平台改成了STM32L051 同时使用STM32CubeMX生成的工程 使用FreeRTOS系统 EEPROM数据存储读取函数修改更新 2
  • freeRTOS使用uxTaskGetStackHighWaterMark函数查看任务堆栈空间的使用情况

    摘要 每个任务都有自己的堆栈 堆栈的总大小在创建任务的时候就确定了 此函数用于检查任务从创建好到现在的历史剩余最小值 这个值越小说明任务堆栈溢出的可能性就越大 FreeRTOS 把这个历史剩余最小值叫做 高水位线 此函数相对来说会多耗费一点
  • FreeRTOS:中断配置

    目录 一 Cortex M 中断 1 1中断简介 1 2中断管理简介 1 3优先级分组定义 1 4优先级设置 1 5用于中断屏蔽的特殊寄存器 1 5 1PRIMASK 和 FAULTMASK 寄存器 1 5 2BASEPRI 寄存器 二 F
  • FreeRTOS临界段和开关中断

    http blog sina com cn s blog 98ee3a930102wg5u html 本章教程为大家讲解两个重要的概念 FreeRTOS的临界段和开关中断 本章教程配套的例子含Cortex M3内核的STM32F103和Co
  • freertos————互斥锁

    线程安全 多线程程序处于一个多变的环境 可访问的全局变量和堆数据随时可能被其他的线程改变 多个线程同时访问一个共享数据 可能造成严重的后果 出现问题的是之前移植了一个freemodbus的从站 多个任务访问全局变量保持寄存器区 导致最后读出
  • FreeRTOS学习(三)开关中断

    声明及感谢 跟随正点原子资料学习 在此作为学习的记录和总结 环境 keil stm32f103 背景知识 Cotex M3的NVIC最多支持240个IRQ 中断请求 1个不可屏蔽 NMI 1个Systick 滴答定时器 Cortex M处理
  • FreeRTOS笔记(一)简介

    这个笔记主要依据韦东山freertos快速入门系列记录 感谢韦东山老师的总结 什么是实时操作系统 操作系统是一个控制程序 负责协调分配计算资源和内存资源给不同的应用程序使用 并防止系统出现故障 操作系统通过一个调度算法和内存管理算法尽可能把
  • 啊哈C的简单使用

    打开啊哈C 新建一个程序输出hello world include
  • [FreeRTOS入门学习笔记]定时器

    定时器的使用步骤 1 定义一个handle xTimerCreate创建 2 启动定时器 在Task1中调用 通过队列通知守护任务来执行定时器任务 要再config头文件中定义守护任务相关配置 虽然定时器是在task1中启动 但是定时器的任
  • 单片机通信数据延迟问题排查

    1 问题说明 笔者在最近的项目中 发现系统的响应延迟较高 经过排查 排除了单片机运行卡死的问题 2 原因分析 具体排查过程这里就不细致说明了 直接给出排查后原因 任务执行周期规划不合理 导致freertos队列发送接收到的命令有延迟 为了便
  • STM32 Freertos 添加 外部sram heap_5.c

    1 添加外部SRAM 初始化 2 添加heap 5 c 3 初始化heap 5 c 外部堆栈 Define the start address and size of the two RAM regions not used by the
  • FreeRTOS实时操作系统(三)任务挂起与恢复

    系列文章 FreeRTOS实时操作系统 一 RTOS的基本概念 FreeRTOS实时操作系统 二 任务创建与任务删除 HAL库 FreeRTOS实时操作系统 三 任务挂起与恢复 FreeRTOS实时操作系统 四 中断任务管理 FreeRTO
  • 有关 CMake 错误的问题:没有为目标提供源

    我正在尝试使用 cmake 和 eclipse 将 FreeRtos 添加到我的项目中 但出现错误 我运行的是 debian 10 我的 cmake 版本是 3 13 4 cmake 的文件可以在以下位置找到这个 git 仓库 https

随机推荐

  • Jetson Xavier NX配置全过程——D435i和T265驱动安装(三)

    Jetson Xavier NX配置全过程 系统与SDK烧录 xff08 一 xff09 Jetson Xavier NX配置全过程 安装OpenCV4 5 3 xff08 二 xff09 Jetson Xavier NX配置全过程 D43
  • Matlab 在线版 —— 科研人员的福音!无需下载安装,可计算可作图

    在线版 Matlab 科研人员的福音 可计算可作图 xff0c 无需下载安装 Matlab 软件 xff0c 也不需要配置环境 xff0c 直接在浏览器打开即可 xff0c 非常简单方便 不过和 Matlab 软件一样 xff0c 需要注册
  • 树莓派人工智能小车基本操作流程展示

    小车 把老师教我操作记录一下 添加后三行 xff1f gedit span class token operator span span class token operator span span class token punctuat
  • LeetCode刷题 Python实现——常用内置算法和数据结构

    目录 前言 常用内置算法和数据结构 注意 python 递归暴栈 栈溢出 python int 值范围 python 负数位运算的坑 python list 技巧 python dict 技巧 链表题目调试函数 内置库实现优先级队列的三种方
  • putty 报server unexpectedly closed network connection错误

    由于IP变了 xff0c 再用putty访问组内的服务器时 xff0c 竟然总是出错 xff0c 报server unexpectedly closed network connection错误 我公司的服务器是centos7 xff0c
  • Java中关于a=a++结果的解释

    目录 1 问题的提出 xff1a 2 如何对class文件进行反汇编 步骤 xff08 1 xff09 步骤 xff08 2 xff09 步骤 xff08 3 xff09 步骤 xff08 4 xff09 步骤 xff08 5 xff09
  • 无人机机架 无人机机架材料 无人机机架的尺寸计算 无人机机架结构图

    1 机架模块 机架是指多旋翼飞行器的机身架 xff0c 是整个飞行系统的飞行载体 机架就好像人体的骨骼 xff0c 选择好的机架可以增加你在飞行过程中的稳定性 xff0c 让你的飞机飞行更顺畅 机架最重要的一个参数就是其自身的重量 xff0
  • 看了这些书籍,进大厂就不难了是吗?

    嗯 是不是看了这些书籍 xff0c 进大厂就不难了吗 xff1f 哦 我只想说 xff1a 好好学习 xff0c 天天向上 xff01 Head First Java 如果你真的想要好好地学习Java xff0c 你会需要 Head Fir
  • 汽车电子MCU开发之FreeRtos Heap溢出检测

    1 项目背景 项目是基于Nxp Mcu 43 FreeRtos xff0c 成品是车机 xff08 车载导航系统 xff09 xff0c 在消息通信过程中会进入内存分配失败钩子函数里面 2 问题原因 FreeRtos系统的Heap堆不够用
  • RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED【解决方法】

    RuntimeError cuDNN error CUDNN STATUS NOT INITIALIZED 解决方法 在使用github上的开源框架pytorch deeplab xception在自己的数据集上进行语义分割时 xff0c
  • docker03(dockerfile镜像制作)

    文章目录 docker03 dockerfile镜像定制 一 引子二 dockerfile制作镜像步骤 xff08 镜像最多128层 xff09 xff08 一 xff09 dockerfile实例 xff08 二 xff09 docker
  • MapReduce处理数据流程

    一 mapreduce流程 图片来自 51doit Inputformat会将切片中每一行的数据表达成kv形式 k是这一行数据的偏移量 longwritable v是每一行数据内容类型 text map端会将每一行的数据进行处理 生成若干对
  • 关于java数组,形参的改变,会改变实参的值

    当java数组调用一个方法 xff0c 将数组传进去 public static void main String args int arr 61 6 1 2 3 4 5 sort arr arr length for int i 61 0
  • C++迭代器(iterator)

    什么是迭代器 xff08 iterator xff09 迭代器 xff08 iterator xff09 是一种可以遍历容器元素的数据类型 迭代器是一个变量 xff0c 相当于容器和操纵容器的算法之间的中介 C 43 43 更趋向于使用迭代
  • 理解lightdm.conf

    Before you do anything to your lightdm conf file you should make a backup simply run sudo cp etc lightdm lightdm conf et
  • selenium自动化测试

    目录 第一节 xff1a selenium概述 第二节 xff1a 在PyCharm中使用selenium 第三节 xff1a 使用selenium自动控制浏览器 第四节 xff1a selenium在大数据的使用 第一节 xff1a se
  • HTTP | HTTP报文

    01概述 客户端与服务器端之间的通信 xff0c 通过HTTP协议 xff0c 以HTTP报文的形式来实现数据的交互 HTTP报文是HTTP通信时发送的数据块 xff0c 本文主要从以下几个方面介绍HTTP报文 xff1a HTTP报文结构
  • k8s赋予用户进入容器以及向容器中拷贝文件的权限

    在k8s中集群中赋予用户进入容器以及向容器中拷贝文件的权限 xff0c 自定义clusterrole如下 xff1a span class token key atrule apiVersion span span class token
  • 翔仪 垂直起降固定翼 操作流程

    翔仪 垂直起降固定翼 操作流程 垂直起降固定翼 操作流程 01 地面站采用的是翔仪飞控软件 02 奥维互动定位平台 上规划飞行区域 长方形 为佳 覆盖作业范围200米以上 xff08 防止漏拍发生 xff09 导出KML格式 地图切换里面
  • 一、初识FreeRTOS之FreeRTOS简介

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