RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FreeRTOS任務(wù)與協(xié)程介紹

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-09-28 11:02 ? 次閱讀

FreeRTOS 中應(yīng)用既可以使用任務(wù),也可以使用協(xié)程(Co-Routine),或者兩者混合使用。但是任務(wù)和協(xié)程使用不同的API函數(shù),因此不能通過隊列(或信號量)將數(shù)據(jù)從任務(wù)發(fā)送給協(xié)程,反之亦然。

協(xié)程是為那些資源很少的 MCU 準備的,其開銷很小,但是 FreeRTOS 官方已經(jīng)不打算再更新協(xié)程了。

任務(wù)特性:

1、簡單。

2、沒有使用限制。

3、支持搶占

4、支持優(yōu)先級

5、每個任務(wù)都擁有堆棧導(dǎo)致了 RAM 使用量增大。

6、如果使用搶占的話的必須仔細的考慮重入的問題。

協(xié)程(Co-routine)的特性

協(xié)程是為那些資源很少的 MCU 而做的,但是隨著 MCU 的飛速發(fā)展,性能越來越強大,現(xiàn)在協(xié)程幾乎很少用到了!但是 FreeRTOS 目前還沒有把協(xié)程移除的計劃,但是 FreeRTOS 是絕對不會再更新和維護協(xié)程了,因此協(xié)程大家了解一下就行了。在概念上協(xié)程和任務(wù)是相似的,但是有如下根本上的不同:

1、堆棧使用:所有的協(xié)程使用同一個堆棧(如果是任務(wù)的話每個任務(wù)都有自己的堆棧),這樣就比使用任務(wù)消耗更少的 RAM。

2、調(diào)度器和優(yōu)先級:協(xié)程使用合作式的調(diào)度器,但是可以在使用搶占式的調(diào)度器中使用協(xié)程。

3、宏實現(xiàn):協(xié)程是通過宏定義來實現(xiàn)的。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304805
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1368

    瀏覽量

    114641
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62139
  • 任務(wù)
    +關(guān)注

    關(guān)注

    1

    文章

    20

    瀏覽量

    8535
收藏 人收藏

    評論

    相關(guān)推薦

    FreeRTOS介紹與基礎(chǔ)任務(wù)創(chuàng)建

    本篇介紹FreeRTOS與基礎(chǔ)任務(wù)創(chuàng)建
    的頭像 發(fā)表于 09-26 09:00 ?2397次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>介紹</b>與基礎(chǔ)<b class='flag-5'>任務(wù)</b>創(chuàng)建

    談?wù)?b class='flag-5'>協(xié)的那些事兒

    隨著異步編程的發(fā)展以及各種并發(fā)框架的普及,協(xié)作為一種異步編程規(guī)范在各類語言中地位逐步提高。我們不單單會在自己的程序中使用協(xié),各類框架如fastapi,aiohttp等也都是基于異步
    的頭像 發(fā)表于 01-26 11:36 ?1111次閱讀
    談?wù)?b class='flag-5'>協(xié)</b><b class='flag-5'>程</b>的那些事兒

    【轉(zhuǎn)載】AT32 FreeRTOS應(yīng)用筆記

    ................................. 32FreeRTOS 任務(wù)相關(guān)函數(shù) ..........................32例介紹
    發(fā)表于 08-16 11:56

    在STM32下完成FreeRTOS的多任務(wù)程序開發(fā)

    ---------FreeRTOS是一個迷你的實時操作系統(tǒng)內(nèi)核。作為一個輕量級的操作系統(tǒng),功能包括:任務(wù)管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能、軟件定時器、協(xié)等,可基本
    發(fā)表于 08-09 07:27

    如何在STM32下完成一個基于FreeRTOS的多任務(wù)程序

    ).FreeRTOS是一個迷你的實時操作系統(tǒng)內(nèi)核。作為一個輕量級的操作系統(tǒng),功能包括:任務(wù)管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能、軟件定時器、協(xié)等,可基本滿足較小系統(tǒng)的
    發(fā)表于 01-17 07:10

    什么是多任務(wù)系統(tǒng)?FreeRTOS任務(wù)協(xié)簡析

    功能,初學者必須先掌握——任務(wù)的創(chuàng)建、刪除、掛起和恢復(fù)等操作。本章節(jié)分為如下幾部分:*什么是多任務(wù)系統(tǒng)*FreeRTOS任務(wù)協(xié)
    發(fā)表于 02-18 06:38

    什么是FreeRTOS?怎樣去移植FreeRTOS

    FreeRTOSFreeRTOS是一個迷你的實時操作系統(tǒng)內(nèi)核。作為一個輕量級的操作系統(tǒng),功能包括:任務(wù)管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能、軟件定時器、協(xié)
    發(fā)表于 02-23 07:12

    Python后端項目的協(xié)是什么

    最近公司 Python 后端項目進行重構(gòu),整個后端邏輯基本都變更為采用“異步”協(xié)的方式實現(xiàn)??粗鴿M屏幕經(jīng)過 async await(協(xié)在 Python 中的實現(xiàn))修飾的代碼,我頓時
    的頭像 發(fā)表于 09-23 14:38 ?1326次閱讀

    (一)FreeRTOS學習之FreeRTOS任務(wù)基礎(chǔ)知識

    功能,初學者必須先掌握——任務(wù)的創(chuàng)建、刪除、掛起和恢復(fù)等操作。本章節(jié)分為如下幾部分:*什么是多任務(wù)系統(tǒng)*FreeRTOS任務(wù)協(xié)
    發(fā)表于 12-23 19:57 ?3次下載
    (一)<b class='flag-5'>FreeRTOS</b>學習之<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>基礎(chǔ)知識

    FreeRTOS入門學

    ).FreeRTOS是一個迷你的實時操作系統(tǒng)內(nèi)核。作為一個輕量級的操作系統(tǒng),功能包括:任務(wù)管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能、軟件定時器、協(xié)等,可基本滿足較小系統(tǒng)的
    發(fā)表于 01-17 11:12 ?19次下載
    <b class='flag-5'>FreeRTOS</b>入門學

    FreeRTOS高級篇2---FreeRTOS任務(wù)創(chuàng)建分析

    FreeRTOS基礎(chǔ)系列《FreeRTOS系列第10篇---FreeRTOS任務(wù)創(chuàng)建和刪除》中介紹
    發(fā)表于 01-26 17:42 ?23次下載
    <b class='flag-5'>FreeRTOS</b>高級篇2---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>創(chuàng)建分析

    FreeRTOS任務(wù)和協(xié)簡介及實現(xiàn)

    簡單來說,FreeRTOS實時系統(tǒng)能夠創(chuàng)建多個獨立的任務(wù)任務(wù)之間互不干擾。任務(wù)創(chuàng)建之后并不是一起運行的,而是通過優(yōu)先級順序進行任務(wù)的調(diào)用,
    的頭像 發(fā)表于 12-06 16:33 ?3081次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>和協(xié)<b class='flag-5'>程</b>簡介及實現(xiàn)

    協(xié)的概念及協(xié)的掛起函數(shù)介紹

    協(xié)是一種輕量級的線程,它可以在單個線程中實現(xiàn)并發(fā)執(zhí)行。與線程不同,協(xié)不需要操作系統(tǒng)的上下文切換,因此可以更高效地使用系統(tǒng)資源。Kotlin 協(xié)
    的頭像 發(fā)表于 04-19 10:20 ?887次閱讀

    Kotlin協(xié)實戰(zhàn)進階之筑基篇3

    。 Android 中的每個應(yīng)用都會運行一個主線程,它主要是用來處理 UI,如果主線程上需要處理的任務(wù)太多,應(yīng)用就感覺被卡主一樣影響用戶體驗,得讓那些耗時的任務(wù)不阻塞主線程的運行。要做到處理網(wǎng)絡(luò)請求不會阻塞主線程,一個常用的做法就是使用回調(diào),另一種是使用
    的頭像 發(fā)表于 05-30 16:26 ?695次閱讀

    Linux線程、線程與異步編程、協(xié)與異步介紹

    線程之間的切換不需要陷入內(nèi)核,但部分操作系統(tǒng)中用戶態(tài)線程的切換需要內(nèi)核態(tài)線程的輔助。 協(xié)是編程語言(或者 lib)提供的特性(協(xié)程之間的切換方式與過程可以由編程人員確定),是用戶態(tài)操作。協(xié)
    的頭像 發(fā)表于 11-11 11:35 ?1138次閱讀
    Linux線程、線程與異步編程、<b class='flag-5'>協(xié)</b><b class='flag-5'>程</b>與異步<b class='flag-5'>介紹</b>
    RM新时代网站-首页