Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換

今天小編給大家分享一下Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

從策劃到設(shè)計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供網(wǎng)站制作、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設(shè)計、申請域名、網(wǎng)站空間、網(wǎng)絡(luò)營銷、VI設(shè)計、 網(wǎng)站改版、漏洞修補等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。

從零起步,先實現(xiàn)2個固定任務(wù)的互相切換來驗證操作系統(tǒng)的切換功能。

然后再不斷的加入新功能,由淺入深,一步步將操作系統(tǒng)充實起來。每一個功能的加入都是一個獨立的階段性。

Wanlix操作系統(tǒng)有什么特點?

Wanlix只提供主動切換任務(wù)的功能,是非搶占操作系統(tǒng),編寫相對簡單,作為學習編寫操作系統(tǒng)的入門教材是個不錯的選擇。這也使得它非常小巧,適合在硬件資源少但又需要任務(wù)切換的小型嵌入式軟件系統(tǒng)中使用。

兩個固定任務(wù)之間如何切換?

從C語言的角度來看,任務(wù)就是函數(shù),只不過是在操作系統(tǒng)里,一個任務(wù)可以切換到其它任務(wù),其實也就是一個函數(shù)可以切換到其它函數(shù)。

當切換發(fā)生時,正在執(zhí)行的函數(shù)1的R0~R15、CPSR這17個寄存器臨時保存起來,然后將希望執(zhí)行的函數(shù)2的上次保存的數(shù)值恢復(fù)到R0~R15、CPSR這17個寄存器,這樣芯片就從函數(shù)1切換到函數(shù)2運行了。

當希望從函數(shù)2切換到函數(shù)1時,再將函數(shù)2的17個寄存器保存起來,恢復(fù)函數(shù)1的17個寄存器,芯片就又繼續(xù)運行函數(shù)1了。這樣便在函數(shù)1運行的中間插入了函數(shù)2,這就是任務(wù)切換,也就是所謂的“上下切換”,函數(shù)1或函數(shù)2所在的最上層父函數(shù)調(diào)用的一系列函數(shù)就組成了任務(wù),任是從最上層父函數(shù)開始運行的。

Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換

任務(wù)切換示意圖

這種切換也可以在多個任務(wù)之間進行,至于什么時候切換,怎么控制切換,這就是操作系統(tǒng)要做的事情了。

下面我們將遵循著這一設(shè)計思路來編寫一個最簡單的切換過程——2個函數(shù)之間不停的互相切換,來驗證任務(wù)切換過程中寄存器備份、恢復(fù)原理的正確性。

為了能看出任務(wù)切換的效果,我們設(shè)計2個函數(shù)

TEST_TestTask1和TEST_TestTask2,這兩個函數(shù)都是死循環(huán),反復(fù)執(zhí)行“打印消息—>延遲”的過程,我們可以通過打印信息來確認是哪個函數(shù)在執(zhí)行,

偽碼如下:

Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換

如果沒有函數(shù)切換功能,那么這樣的函數(shù)只要一開始執(zhí)行,它們就會一直死循環(huán)執(zhí)行下去,不會給其它函數(shù)執(zhí)行的機會,我們就只能看到只有一個函數(shù)在循環(huán)打印消息。如果能夠按照上面是所講述的切換原理發(fā)生函數(shù)切換,那么我們

就應(yīng)該能看到的是這2個函數(shù)是在循環(huán)交替打印。

在main函數(shù)里首先初始化硬件,然后調(diào)用WLX_TaskInit函數(shù)對2個任務(wù)進行初始化,最后調(diào)用WLX_TaskStart函數(shù)啟動任務(wù)調(diào)度,這2個任務(wù)就開始交替執(zhí)行了,交替向串口打印數(shù)據(jù)。

Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換

最終結(jié)果:

Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換

以上就是“Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標題名稱:Wanlix操作系統(tǒng)怎么實現(xiàn)兩個固定任務(wù)之間的切換
分享網(wǎng)址:http://muchs.cn/article0/pgdeio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、標簽優(yōu)化、自適應(yīng)網(wǎng)站靜態(tài)網(wǎng)站、小程序開發(fā)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管