FreeRTOS图示理解

FreeRTOS:解决裸机编程问题与实时操作系统特性详解
本文介绍了FreeRTOS,一种开源、无限制的多任务实时操作系统,针对裸机编程的缺点如实时性、CPU利用率和代码结构复杂性,提出了解决方案,并详细阐述了FreeRTOS的源码结构、配置、任务创建、优先级管理以及堆栈使用。

仅供本人查阅

前后台系统(裸机)

缺点:

实时性不能保证,事件可能无法得到及时处理。

存在CPU空转的情况,CPU利用率不搞,白白浪费功耗。

强迫人按照机器的顺序工作方式思考编码,当任务越多,代码结构越复杂,编码难度越大。

解决裸机编程方法

实时性不高
主程序尽量少用delay 通过硬件定时器做事件处理增强实时性

CPU利用率不高
中断程序不要加延时

代码结构复杂
高内聚低耦合 .c.h与其他功能相关联性太大太多

  1. 状态机编程
  2. 面向对象思想 多态 继承 复用抽象

FreeRTOS全称

实时操作系统,强调的是:实时性
实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。
在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是个死循环
RTOS操作系统:FreeRTOS,UCOS,RTX,RT-Thread, DJYOS操作系统的核心内容在于:实时内核

实时性操作系统终端
实时并不意味着快一种系统软件运行特定的嵌入式硬件
在固定的时间内对事件进行响应提供任务管理和协调的功能控制功能可裁剪代码可移植

FreeRTOS介绍

FreeRTOS是一个可裁剪可剥夺型的多任务内核,而且没有任务数限制
FreeRTOS提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。

FreeRTOS特点

FreeROTS开源
FreeRTOS免费
FreeRTOS是很多多第方组件钦定的系统!

在这里插入图片描述

FreeRTOS使用

FreeRTOS下载:
FreeRTOS还是有一定难度的,在学习的过程中难免会遇到看不懂的东西,如果遇到不懂的就先不要管,开发ESP8266只需要学会怎么调用FreeRTOS的API函数
对C语言的要求,需要了解指针、结构体、数据结构中的链表等。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

FreeRTOS任务特性

简单
没有使用限制
支持抢占
支持优先级
每个任务都拥有堆栈导致了 RAM 使用量增大

FreeRTOS源码结构

在这里插入图片描述

FreeRTOS任务创建头文件:

task.h

portBASE_TYPE xTaskCreate(
pdTASK_CODE pvTaskCode,指向任务的实现函数的指针。效果上仅仅是函数名
const portCHAR * const pcNane,具有描述性的任务名。FreeRTOS不会使用它。
unsigned portSHORT usStackDepth,指定任务堆栈的大小
void *pvParameters,指针用于作为一个参数传向创建的任务
unsigned portBASE_TYPE uxPriority, 任务运行时的优先级
xTaskHandle *pvCreatedTask用于传递任务的句柄,可以引用从而x务进行
)

FreeRTOS配置文件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

FreeRTOS函数Include配置

在这里插入图片描述

FreeRTOS任务调度机制(多任务基础)

在这里插入图片描述

FreeRTOS任务状态

在这里插入图片描述在这里插入图片描述

FreeRTOS任务优先级

在这里插入图片描述

FreeRTOS任务实现

在这里插入图片描述

FreeRTOS任务控制块

在这里插入图片描述
在这里插入图片描述

FreeRTOS任务堆栈

在这里插入图片描述

FreeRTOS任务堆栈大小确定

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有余地 Meiyouyudi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值