色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

FreeRTOS任務實現(xiàn)和控制塊

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-09-28 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

任務實現(xiàn)

FreeRTOS 官方給出的任務函數(shù)模板如下:

void vATaskFunction(void *pvParameters)
{
  for( ; ; )
  {
    --任務應用程序-- 
    vTaskDelay(); 
  }

  vTaskDelete(NULL); 
}

(1)、任務函數(shù)本質(zhì)也是函數(shù),所以肯定有任務名什么的,不過這里我們要注意:任務函數(shù) 的返回類型一定要為 void 類型,也就是無返回值,而且任務的參數(shù)也是 void 指針類型的!任務 函數(shù)名可以根據(jù)實際情況定義。

(2)、任務的具體執(zhí)行過程是一個大循環(huán),for(; ; )就代表一個循環(huán),作用和 while(1)一樣,博主習慣用 while(1)。

(3)、循環(huán)里面就是真正的任務代碼了,此任務具體要干的活就在這里實現(xiàn)!

(4)、FreeRTOS 的延時函數(shù),此處不一定要用延時函數(shù),其他只要能讓 FreeRTOS 發(fā)生任務 切換的 API 函數(shù)都可以,比如請求信號量、隊列等,甚至直接調(diào)用任務調(diào)度器。只不過最常用 的就是 FreeRTOS 的延時函數(shù)。

(5)、任務函數(shù)一般不允許跳出循環(huán),如果一定要跳出循環(huán)的話在跳出循環(huán)以后一定要調(diào)用 函數(shù) vTaskDelete(NULL)刪除此任務!

FreeRTOS 的任務函數(shù)和 UCOS 的任務函數(shù)模式基本相同的,不止 FreeRTOS,其他 RTOS 的任務函數(shù)基本也是這種方式的。

任務控制塊

FreeRTOS 的每個任務都有一些屬性需要存儲,F(xiàn)reeRTOS 把這些屬性集合到一起用一個結(jié)構(gòu)體來表示,這個結(jié)構(gòu)體叫做任務控制塊:TCB_t,在使用函數(shù) xTaskCreate()創(chuàng)建任務的時候就會自動的給每個任務分配一個任務控制塊。

此結(jié)構(gòu)體在文件 tasks.c 中有定義。類似于 Linux 的 task_struct 結(jié)構(gòu)體,保存進程信息用的,每個進程有一個。

任務堆棧

FreeRTOS 之所以能正確的恢復一個任務的運行就是因為有任務堆棧在保駕護航,任務調(diào)度器在進行任務切換的時候會將當前任務的現(xiàn)場(CPU 寄存器值等)保存在此任務的任務堆棧中,等到此任務下次運行的時候就會先用堆棧中保存的值來恢復現(xiàn)場,恢復現(xiàn)場以后任務就會接著從上次中斷的地方開始運行。

創(chuàng)建任務的時候需要給任務指定堆棧,如果使用的函數(shù) xTaskCreate()創(chuàng)建任務(動態(tài)方法)的話那么任務堆棧就會由函數(shù) xTaskCreate()自動創(chuàng)建。如果使用函數(shù) xTaskCreateStatic()創(chuàng)建任務(靜態(tài)方法)的話就需要程序員自行定義任務堆棧,然后堆棧首地址作為函數(shù)的參數(shù) puxStackBuffer 傳遞給函數(shù)。

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

    關(guān)注

    5154

    文章

    19708

    瀏覽量

    318090
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4383

    瀏覽量

    65008
  • FreeRTOS
    +關(guān)注

    關(guān)注

    13

    文章

    493

    瀏覽量

    64445
  • 控制塊
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6426
  • 任務
    +關(guān)注

    關(guān)注

    1

    文章

    20

    瀏覽量

    8649
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

    FreeRTOS中的任務管理

    任務FreeRTOS 中最基本的調(diào)度單元,它是一段可執(zhí)行的代碼,可以獨立運行。FreeRTOS 中的任務是基于優(yōu)先級的搶占式調(diào)度,優(yōu)先級高的任務
    的頭像 發(fā)表于 11-27 17:03 ?1433次閱讀

    請教:有SPC560B的多任務實時系統(tǒng)的例程嗎(freertos

    請教:有SPC560B的多任務實時系統(tǒng)的例程嗎(freertos
    發(fā)表于 01-15 17:04

    靜態(tài)方法創(chuàng)建任務刪除后內(nèi)存如何回收?

    最近學習原子哥的FreeRTOS例程,在靜態(tài)方法創(chuàng)建和刪除任務實驗中,任務刪除后好像沒有釋放內(nèi)存的部分。是不是一定是Malloc分配的內(nèi)存才有free對應,像例程中這種//任務堆棧
    發(fā)表于 06-19 06:23

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

    基于在STM32下完成FreeRTOS的多任務程序開發(fā) 序言 二.項目說明三.實戰(zhàn)過程 1)實驗器材 2)開始實戰(zhàn) 3)任務實現(xiàn) 4)效果展示四. 結(jié)語 序言(一)FreeRTOS簡介
    發(fā)表于 08-09 07:27

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

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

    如何輕松幾步實現(xiàn)在STM32上運行FreeRTOS任務

    輕松幾步實現(xiàn)在STM32上運行FreeRTOS任務
    的頭像 發(fā)表于 03-01 12:07 ?8898次閱讀
    如何輕松幾步<b class='flag-5'>實現(xiàn)</b>在STM32上運行<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務</b>

    初入FreeRTOS

    源碼3、FreeRTOS移植操作三、在STM32下完成一個基于FreeRTOS的多任務程序1、任務要求2、任務實施3、
    發(fā)表于 12-06 21:06 ?43次下載
    初入<b class='flag-5'>FreeRTOS</b>

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

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

    FreeRTOS任務詳解

    詳細講解freeRTOS任務
    發(fā)表于 12-23 20:01 ?11次下載
    <b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>任務</b>詳解

    FreeRTOS系列第11篇---FreeRTOS任務控制

    FreeRTOS任務控制API函數(shù)主要實現(xiàn)任務延時、任務掛起、解除任務掛起、
    發(fā)表于 01-26 17:54 ?12次下載
    <b class='flag-5'>FreeRTOS</b>系列第11篇---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務</b><b class='flag-5'>控制</b>

    freeRTOS任務

    freeRTOS系統(tǒng)的任務切換的具體過程最終都是在pendSV中斷服務函數(shù)里面完成的。
    的頭像 發(fā)表于 02-10 11:02 ?2046次閱讀
    <b class='flag-5'>freeRTOS</b>的<b class='flag-5'>任務</b>

    FreeRTOS任務間通信,怎么實現(xiàn)

    FreeRTOS 是一個可裁剪、可剝奪型的多任務內(nèi)核,十分好用,而且沒有任務數(shù)限制,在此之前分析過很多了,簡單來說,FreeRTOS實時系統(tǒng)能夠創(chuàng)建多個獨立的
    的頭像 發(fā)表于 02-23 09:21 ?2670次閱讀

    FreeRTOS任務通知簡介

    個 32 位的通知值,任務控制中的成員變量 ulNotifiedValue 就是這個通知值。任務通知是一個事件,假如某個任務通知的接收
    的頭像 發(fā)表于 07-30 11:34 ?1017次閱讀

    freertos最多支持多少個任務

    以下幾個因素: 系統(tǒng)資源 :FreeRTOS能夠支持的任務數(shù)量受到系統(tǒng)硬件資源的限制,特別是處理器的RAM大小和性能。RAM用于存儲任務控制
    的頭像 發(fā)表于 09-02 14:21 ?2297次閱讀
    主站蜘蛛池模板: 秋霞网韩国理伦片免费看 | 99久久免费国产精精品 | A级毛片无码久久精品免费 a级毛片黄免费a级毛片 | 年轻的老师5理伦片 | 老师的蕾丝小内内湿透了 | 国产人妻精品无码AV在线五十路 | 免费一级特黄欧美大片久久网 | 真人做受120分钟免费看 | 亚洲国产高清在线观看视频 | 大香伊蕉在人线国产97 | 中国农村真实bbwbbwbbw | 免费国产久久拍久久爱 | 最新日本免费一区 | 国产av久久免费观看 | 18禁裸乳无遮挡免费网站 | 动漫H片在线播放免费高清 动漫AV纯肉无码AV电影网 | 爽死你个放荡粗暴小淫货漫画 | 宅男午夜大片又黄又爽大片 | 亚洲免费视频在线观看 | 男插女高潮一区二区 | 丝瓜视频在线免费 | 伊人久久免费 | 亚洲2023无矿砖码砖区 | 古代荡乳尤物H妓女调教 | 欧美国产一区二区三区激情无套 | 97精品国产亚洲AV高清 | 开心色99xxxx开心色 | 成人高清网站 | 中文字幕在线永久 | 欧美精品一区二区蜜臀亚洲 | 臀精插宫NP文 | 欧美色图天堂网 | 亚洲zooz人禽交xxxx | 玉娇龙续集春雪瓶txt免费阅读 | 青青草原国产在线 | 久久爱狠狠综合网 | 日韩精品 电影一区 亚洲高清 | AV色蜜桃一区二区三区 | 美国一级黄色 | 男人的天堂黄色片 | 最新国自产拍天天更新 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品