注意

本文档是基于 Arduino IDE 开发环境进行 ESP32 开发

1.为什么要使用 rtos

  • 前后台系统
    早期嵌入式开发没有嵌入式操作系统概念,直接操作裸机,直接在逻辑上写程序,比如 51 单片机没有操作系统的概念。通常把程序分为前台系统和后台系统。
    签单的小系统通常是前后台系统。这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用 API 库函数完成作需的操作,大循环叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。
    RTOS 全称为:Real time OS ,就是实时操作系统,强调的是:实时性。实时操作系统又分为软实时和硬实时。硬实时要求在规定的时间内必须完成操作,硬实时不允许超时,软实时里面处理过程超时的后果就没有那么严格。在实时操作系统种,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
    RTOS 操作系统包括: Freertos, UCOS,RTX,RT-THread,DJYOS 等
    RTOS 操作系统的核心内容在于: 实时内核。

  • 可剥夺型内核
    RTOS 的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力。多任务管理给人的感觉就是芯片有多个 CPU,多任务管理实现了 CPU 资源的最大化利用,多任务管理有助于实现程序的模块化开发,能够实现复杂的实时利用。
    可剥夺型内核顾名思义就是可以剥夺其他任务的 CPU 使用权,他总是运行就绪任务中优先级最高的任务。

  • Freertos 系统简介
    Freertos 是一个可剪裁,可剥夺型的多任务内核,而且没有任务数限制。 Freertos 提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。
    Freertos 是用 C 和汇编来写的,其中绝大部分都是用 C 语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的,Freertos 结构简洁,可读性很强!最主要的是非常适合初次接触嵌入式实时操作系统开发者。

二、FreeRTOS 移植

内核源码下载 www.freertos.org

1.在基础工程种新建 Freertos 文件夹,并且将源码添加到这个文件夹中。
在这里插入图片描述

cubemx 配置 freertos

https://blog.csdn.net/qq_36347513/article/details/122187066

野火 FreeRTOS 内核实现与应用开发实战指南(基于 stm32)
https://doc.embedfire.com/rtos/freertos/zh/latest/index.html