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 的消耗做了很多的限制。
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304805 -
RAM
+關(guān)注
關(guān)注
8文章
1368瀏覽量
114641 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
484瀏覽量
62139 -
任務(wù)
+關(guān)注
關(guān)注
1文章
20瀏覽量
8535
發(fā)布評論請先 登錄
相關(guān)推薦
評論