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 的消耗做了很多的限制。

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

    关注

    5064

    文章

    18992

    浏览量

    302590
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1366

    浏览量

    114503
  • FreeRTOS
    +关注

    关注

    12

    文章

    483

    浏览量

    61959
  • 任务
    +关注

    关注

    1

    文章

    20

    浏览量

    8528
收藏 人收藏

    评论

    相关推荐

    FreeRTOS介绍与基础任务创建

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

    谈谈的那些事儿

    随着异步编程的发展以及各种并发框架的普及,作为一种异步编程规范在各类语言中地位逐步提高。我们不单单会在自己的程序中使用,各类框架如fastapi,aiohttp等也都是基于异步
    的头像 发表于 01-26 11:36 1082次阅读
    谈谈<b class='flag-5'>协</b><b class='flag-5'>程</b>的那些事儿

    【转载】AT32 FreeRTOS应用笔记

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

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

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

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

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

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

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

    什么是FreeRTOS?怎样去移植FreeRTOS

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

    Python后端项目的是什么

    最近公司 Python 后端项目进行重构,整个后端逻辑基本都变更为采用“异步”的方式实现。看着满屏幕经过 async await(在 Python 中的实现)修饰的代码,我顿时
    的头像 发表于 09-23 14:38 1302次阅读

    (一)FreeRTOS学习之FreeRTOS任务基础知识

    功能,初学者必须先掌握——任务的创建、删除、挂起和恢复等操作。本章节分为如下几部分:*什么是多任务系统*FreeRTOS任务
    发表于 12-23 19:57 3次下载
    (一)<b class='flag-5'>FreeRTOS</b>学习之<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任务</b>基础知识

    FreeRTOS入门学

    ).FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、等,可基本满足较小系统的
    发表于 01-17 11:12 19次下载
    <b class='flag-5'>FreeRTOS</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实时系统能够创建多个独立的任务任务之间互不干扰。任务创建之后并不是一起运行的,而是通过优先级顺序进行任务的调用,
    的头像 发表于 12-06 16:33 2980次阅读
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>任务</b>和协<b class='flag-5'>程</b>简介及实现

    的概念及的挂起函数介绍

    是一种轻量级的线程,它可以在单个线程中实现并发执行。与线程不同,不需要操作系统的上下文切换,因此可以更高效地使用系统资源。Kotlin
    的头像 发表于 04-19 10:20 864次阅读

    Kotlin实战进阶之筑基篇3

    。 Android 中的每个应用都会运行一个主线程,它主要是用来处理 UI,如果主线程上需要处理的任务太多,应用就感觉被卡主一样影响用户体验,得让那些耗时的任务不阻塞主线程的运行。要做到处理网络请求不会阻塞主线程,一个常用的做法就是使用回调,另一种是使用
    的头像 发表于 05-30 16:26 661次阅读

    Linux线程、线程与异步编程、与异步介绍

    线程之间的切换不需要陷入内核,但部分操作系统中用户态线程的切换需要内核态线程的辅助。 是编程语言(或者 lib)提供的特性(程之间的切换方式与过程可以由编程人员确定),是用户态操作。
    的头像 发表于 11-11 11:35 1032次阅读
    Linux线程、线程与异步编程、<b class='flag-5'>协</b><b class='flag-5'>程</b>与异步<b class='flag-5'>介绍</b>