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

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

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

什么叫多任務(wù)系統(tǒng) FreeRTOS任務(wù)管理

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

回想一下我們以前在使用 51、AVR、STM32 單片機(jī)裸機(jī)(未使用系統(tǒng))的時(shí)候一般都是在main 函數(shù)里面用while(1)做一個(gè)大循環(huán)來(lái)完成所有的處理,即應(yīng)用程序是一個(gè)無(wú)限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成所需的處理。有時(shí)候我們也需要中斷中完成一些處理。相對(duì)于多任務(wù)系統(tǒng)而言,這個(gè)就是單任務(wù)系統(tǒng),也稱作前后臺(tái)系統(tǒng),中斷服務(wù)函數(shù)作為前臺(tái)程序,大循環(huán)while(1)作為后臺(tái)程序,如圖所示:

圖片

前后臺(tái)系統(tǒng)的實(shí)時(shí)性差,前后臺(tái)系統(tǒng)各個(gè)任務(wù)(應(yīng)用程序)都是排隊(duì)等著輪流執(zhí)行,不管你這個(gè)程序現(xiàn)在有多緊急,沒(méi)輪到你就只能等著!相當(dāng)于所有任務(wù)(應(yīng)用程序)的優(yōu)先級(jí)都是一樣的。但是前后臺(tái)系統(tǒng)簡(jiǎn)單啊,資源消耗也少啊!在稍微大一點(diǎn)的嵌入式應(yīng)用中前后臺(tái)系統(tǒng)就明顯力不從心了,此時(shí)就需要多任務(wù)系統(tǒng)出馬了。

多任務(wù)系統(tǒng)會(huì)把一個(gè)大問(wèn)題(應(yīng)用)“分而治之”,把大問(wèn)題劃分成很多個(gè)小問(wèn)題,逐步的把小問(wèn)題解決掉,大問(wèn)題也就隨之解決了,這些小問(wèn)題可以單獨(dú)的作為一個(gè)小任務(wù)來(lái)處理。這些小任務(wù)是并發(fā)處理的,注意,并不是說(shuō)同一時(shí)刻一起執(zhí)行很多個(gè)任務(wù),而是由于每個(gè)任務(wù)執(zhí)行的時(shí)間很短,導(dǎo)致看起來(lái)像是同一時(shí)刻執(zhí)行了很多個(gè)任務(wù)一樣。多個(gè)任務(wù)帶來(lái)了一個(gè)新的問(wèn)題,究竟哪個(gè)任務(wù)先運(yùn)行,哪個(gè)任務(wù)后運(yùn)行呢?完成這個(gè)功能的東西在RTOS 系統(tǒng)中叫做任務(wù)調(diào)度器。不同的系統(tǒng)其任務(wù)調(diào)度器的實(shí)現(xiàn)方法也不同,比如 FreeRTOS是一個(gè)搶占式的實(shí)時(shí)多任務(wù)系統(tǒng),那么其任務(wù)調(diào)度器也是搶占式的,運(yùn)行過(guò)程如圖所示:

圖片

高優(yōu)先級(jí)的任務(wù)可以打斷低優(yōu)先級(jí)任務(wù)的運(yùn)行而取得 CPU的使用權(quán),這樣就保證了那些緊急任務(wù)的運(yùn)行。這樣我們就可以為那些對(duì)實(shí)時(shí)性要求高的任務(wù)設(shè)置一個(gè)很高的優(yōu)先級(jí),比如自動(dòng)駕駛中的障礙物檢測(cè)任務(wù)等。高優(yōu)先級(jí)的任務(wù)執(zhí)行完成以后重新把CPU 的使用權(quán)歸還給低優(yōu)先級(jí)的任務(wù),這個(gè)就是搶占式多任務(wù)系統(tǒng)的基本原理。

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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631997
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18974

    瀏覽量

    302065
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10805

    瀏覽量

    210847
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61918
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3237

    瀏覽量

    57547
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    轉(zhuǎn):第10章 FreeRTOS任務(wù)管理

    第10章FreeRTOS任務(wù)管理 對(duì)于初學(xué)者,特別是對(duì)于沒(méi)有RTOS基礎(chǔ)的同學(xué)來(lái)說(shuō),了解FreeRTOS任務(wù)
    發(fā)表于 08-23 09:54

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

    ---------FreeRTOS是一個(gè)迷你的實(shí)時(shí)操作系統(tǒng)內(nèi)核。作為一個(gè)輕量級(jí)的操作系統(tǒng),功能包括:任務(wù)管理、時(shí)間
    發(fā)表于 08-09 07:27

    如何去實(shí)現(xiàn)基于stm32的FreeRTOS多任務(wù)程序

    免費(fèi)的,RTOS 全稱是 Real Time Operating System,中文就是實(shí)時(shí)操作系統(tǒng)。注意,RTOS 不是指某一個(gè)確定的系統(tǒng),而是指一類系統(tǒng)。比如 uC/OS,FreeRTOS
    發(fā)表于 08-24 07:45

    如何使用CubeMX快速生成FreeRTOS系統(tǒng)并實(shí)現(xiàn)多任務(wù)處理?

    如何使用CubeMX快速生成FreeRTOS系統(tǒng)并實(shí)現(xiàn)多任務(wù)處理?
    發(fā)表于 12-20 08:00

    多任務(wù)系統(tǒng)與單任務(wù)系統(tǒng)分別是指什么

    多任務(wù)的并發(fā)執(zhí)行通常依賴于一個(gè)多任務(wù)操作系統(tǒng)(OS),多任務(wù)OS的核心是系統(tǒng)調(diào)度器,它使用任務(wù)
    發(fā)表于 12-22 07:20

    淺析FreeRTOS任務(wù)系統(tǒng)

    FreeRTOS-任務(wù)基礎(chǔ)大多數(shù)時(shí)候,使用RTOS就是使用其多任務(wù)處理功能。所謂多任務(wù)處理,其實(shí)并不是我們移植了RTOS系統(tǒng)后,CPU就可以
    發(fā)表于 01-06 08:08

    FreeRTOS多任務(wù)系統(tǒng)的相關(guān)資料推薦

    目錄單片機(jī)各編程系統(tǒng)特點(diǎn)1、裸機(jī)系統(tǒng)(1)輪詢系統(tǒng)(2)前后臺(tái)系統(tǒng)2、多任務(wù)系統(tǒng)單片機(jī)各編程
    發(fā)表于 01-13 07:51

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

    ).FreeRTOS是一個(gè)迷你的實(shí)時(shí)操作系統(tǒng)內(nèi)核。作為一個(gè)輕量級(jí)的操作系統(tǒng),功能包括:任務(wù)管理、時(shí)間管理
    發(fā)表于 01-17 07:10

    如何利用FreeRTOS程序完成多任務(wù)功能?

    如何利用FreeRTOS程序完成多任務(wù)功能?
    發(fā)表于 01-18 06:43

    任務(wù)裸機(jī)系統(tǒng)多任務(wù)系統(tǒng)的區(qū)別在哪

    外部事件驅(qū)動(dòng)就能完成的事情前后臺(tái)系統(tǒng):在輪詢系統(tǒng)的基礎(chǔ)上加入了終斷,終端即前臺(tái),無(wú)限循環(huán)的部分后臺(tái)多任務(wù)系統(tǒng):相比前后臺(tái),
    發(fā)表于 02-18 07:03

    什么是多任務(wù)系統(tǒng)FreeRTOS任務(wù)與協(xié)程簡(jiǎn)析

    FreeRTOS學(xué)習(xí)之FreeRTOS任務(wù)基礎(chǔ)知識(shí)轉(zhuǎn)行小白一枚,通過(guò)博客記錄自我學(xué)習(xí),望更多博友多多指點(diǎn),感激不盡!RTOS系統(tǒng)的核心就是任務(wù)
    發(fā)表于 02-18 06:38

    keil下的FreeRtos多任務(wù)程序?qū)W習(xí)

    keil下的FreeRtos多任務(wù)程序?qū)W習(xí)目標(biāo)手動(dòng)移植FreeRtos(以STM32F103為例)直接使用野火的模板學(xué)習(xí)目標(biāo)學(xué)習(xí)FreeRTOS原理,在STM32下完成一個(gè)基于
    發(fā)表于 02-21 06:14

    stm32基于FreeRTOS多任務(wù)程序

    目錄實(shí)驗(yàn)環(huán)境實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)步驟代碼:實(shí)驗(yàn)環(huán)境1.野火STM32MINI開發(fā)板2.keil5實(shí)驗(yàn)?zāi)康脑赟TM32下完成一個(gè)基于FreeRTOS多任務(wù)程序,執(zhí)行3個(gè)周期性task,具體任務(wù)如下
    發(fā)表于 12-07 10:36 ?14次下載
    stm32基于<b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>多任務(wù)</b>程序

    (一)FreeRTOS學(xué)習(xí)之FreeRTOS任務(wù)基礎(chǔ)知識(shí)

    FreeRTOS學(xué)習(xí)之FreeRTOS任務(wù)基礎(chǔ)知識(shí)轉(zhuǎn)行小白一枚,通過(guò)博客記錄自我學(xué)習(xí),望更多博友多多指點(diǎn),感激不盡!RTOS系統(tǒng)的核心就是任務(wù)
    發(fā)表于 12-23 19:57 ?3次下載
    (一)<b class='flag-5'>FreeRTOS</b>學(xué)習(xí)之<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>基礎(chǔ)知識(shí)

    基于FreeRTOS的STM32多任務(wù)程序

    基于FreeRTOS的STM32多任務(wù)程序一、材料準(zhǔn)備二、 FreeRTOS移植FreeRTOS是什么FreeRTOS移植到STM32上(M
    發(fā)表于 12-27 18:38 ?28次下載
    基于<b class='flag-5'>FreeRTOS</b>的STM32<b class='flag-5'>多任務(wù)</b>程序