0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FreeRTOS任务与协程介绍

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-09-28 11:02 次阅读

FreeRTOS 中应用既可以使用任务,也可以使用协程(Co-Routine),或者两者混合使用。但是任务和协程使用不同的API函数,因此不能通过队列(或信号量)将数据从任务发送给协程,反之亦然。

协程是为那些资源很少的 MCU 准备的,其开销很小,但是 FreeRTOS 官方已经不打算再更新协程了。

任务特性:

1、简单。

2、没有使用限制。

3、支持抢占

4、支持优先级

5、每个任务都拥有堆栈导致了 RAM 使用量增大。

6、如果使用抢占的话的必须仔细的考虑重入的问题。

协程(Co-routine)的特性

协程是为那些资源很少的 MCU 而做的,但是随着 MCU 的飞速发展,性能越来越强大,现在协程几乎很少用到了!但是 FreeRTOS 目前还没有把协程移除的计划,但是 FreeRTOS 是绝对不会再更新和维护协程了,因此协程大家了解一下就行了。在概念上协程和任务是相似的,但是有如下根本上的不同:

1、堆栈使用:所有的协程使用同一个堆栈(如果是任务的话每个任务都有自己的堆栈),这样就比使用任务消耗更少的 RAM。

2、调度器和优先级:协程使用合作式的调度器,但是可以在使用抢占式的调度器中使用协程。

3、宏实现:协程是通过宏定义来实现的。

4、使用限制:为了降低对 RAM 的消耗做了很多的限制。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4984

    文章

    18300

    浏览量

    288694
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1322

    浏览量

    113718
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61361
  • 任务
    +关注

    关注

    1

    文章

    20

    浏览量

    8504
收藏 人收藏

    评论

    相关推荐

    FreeRTOS介绍与基础任务创建

    本篇介绍FreeRTOS与基础任务创建
    的头像 发表于 09-26 09:00 1878次阅读
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>介绍</b>与基础<b class='flag-5'>任务</b>创建

    转:开始打怪——FreeRTOS

    FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、等,可基本满足较小系统的需要
    发表于 08-11 09:49

    【转载】AT32 FreeRTOS应用笔记

    ................................. 32FreeRTOS 任务相关函数 ..........................32例介绍
    发表于 08-16 11:56

    在STM32下完成FreeRTOS的多任务程序开发

    ---------FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、等,可基本
    发表于 08-09 07:27

    freeRTOS比uCOS II优胜的地方

    freeRTOS 可以用(Co-routine),减少RAM消耗(共用STACK)。uCOS只能用任务(TASK,每个任务有一个独立的
    发表于 08-20 07:33

    和线程有什么区别

    和线程的区别和线程的共同目的之一是实现系统资源的上下文调用,不过它们的实现层级不同;线程(Thraed)是比进程小一级的的运行单位,多线程实现系统资源上下文调用,是编程语言交付
    发表于 12-10 06:23

    如何在STM32下完成一个基于FreeRTOS的多任务程序

    ).FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、等,可基本满足较小系统的
    发表于 01-17 07:10

    FreeRTOS任务的使用

    FreeRTOS学习笔记(二):任务创建/删除,挂起/解挂上篇文章介绍任务相关的基础知识,本篇文章对FreeRTOS
    发表于 02-18 07:14

    什么是多任务系统?FreeRTOS任务简析

    功能,初学者必须先掌握——任务的创建、删除、挂起和恢复等操作。本章节分为如下几部分:*什么是多任务系统*FreeRTOS任务
    发表于 02-18 06:38

    什么是FreeRTOS?怎样去移植FreeRTOS

    FreeRTOSFreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、
    发表于 02-23 07:12

    初入FreeRTOS

    源码3、FreeRTOS移植操作三、在STM32下完成一个基于FreeRTOS的多任务程序1、任务要求2、任务实施3、
    发表于 12-06 21:06 37次下载
    初入<b class='flag-5'>FreeRTOS</b>

    FreeRTOS任务详解

    详细讲解freeRTOS任务
    发表于 12-23 20:01 11次下载
    <b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>任务</b>详解

    FreeRTOS高级篇2---FreeRTOS任务创建分析

    FreeRTOS基础系列《FreeRTOS系列第10篇---FreeRTOS任务创建和删除》中介绍
    发表于 01-26 17:42 23次下载
    <b class='flag-5'>FreeRTOS</b>高级篇2---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任务</b>创建分析

    freeRTOS任务

    freeRTOS系统的任务切换的具体过程最终都是在pendSV中断服务函数里面完成的。
    的头像 发表于 02-10 11:02 1069次阅读
    <b class='flag-5'>freeRTOS</b>的<b class='flag-5'>任务</b>

    FreeRTOS任务通知简介

    任务通知简介 任务通知在 FreeRTOS 中是一个可选的功能,要使用任务通知的话就需要将宏configUSE_TASK_NOTIFICATIONS 定义为 1。
    的头像 发表于 07-30 11:34 497次阅读