樣品申請 | 資料下載 | 替換型號咨詢

基于靈動微電子MM32 MCU的OS移植與應用

近年來,物聯網IOT概念廣為普及,物聯網市場發展迅猛,嵌入式設備的聯網已然成為趨勢。終端聯網使得軟件復雜性大幅增加,傳統的 RTOS 內核已經越來越難滿足市場的需求。正是在這種情況下,物聯網操作系統(IoT OS)的概念應運而生。


物聯網操作系統是指以操作系統內核(可以是 RTOSLinux 等)為基礎,包括文件系統、圖形庫等較為完整的中間件組件,具備低功耗、安全、通信協議支持和云端連接能力的軟件平臺。

一般簡單的嵌入式系統軟件的編程思路是下面這樣的:


main

{

{任務1}

{任務2}

{任務3}

.......

{任務N}

}

isr_server

{

{處理中斷}

}


這是嵌入式工程師編程的一般思路,對于一個簡單的系統當然是夠用了,但在這樣的系統中每個任務的實時性是很差的,比如如果“任務1”用于用戶輸入的檢測,當用戶輸入時,如果程序正在執行其他的任務進程,那么這次用戶輸入將失效,用戶的體驗是“這個按鍵不靈敏,這個機器很慢”。


而我們如果把所有任務都放到中斷里去處理,雖然改善了實時性,卻會導致另外一個問題:一個任務在處理的時候有可能會引發其它的中斷丟失。這個后果有時候比“慢一點”更加嚴重和惡劣!又比如任務2是一個只需要1s鐘處理一次的任務,那么顯然任務2會白白浪費CPU的時間。


這時,我們可能需要改進我們的編程思路,一般我們會嘗試采用“時間片”的方式。這時候軟件結構會變成下面的方式:


main

{

{如果任務1的時間片到了則執行任務1}

{如果任務2的時間片到了則執行任務2}

.......

{如果任務N的時間片到了則執行任務N}

}

timer_isr_server

{

{判斷每個任務的時間片是否到來,并進行標記}

}

isr_server

{

{處理中斷}

}


我們可以看到,這種改進后的思路,使得任務的執行時間得到控制,任務只在自己的時間片到來后,才會去執行。但你可以發現,這種方式仍然不能徹底解決“實時性”的問題,因為某個任務的時間片到來后,也不能立即就執行,MCU必須等到當前任務的時間片用完,并且后面的任務時間片還沒有來,32位單片機才有機會獲得“執行時間”。


這時候我們需要繼續改進思路。為了使得某個任務的時間片到來以后能立即執行,我們需要在時鐘中斷里判斷完時間片后,改變程序的返回位置,讓程序不返回到剛剛被打斷的位置,而從最新獲得了時間片的任務處開始執行,這樣就徹底解決了任務的實時問題。


我們在這個思路上進行改進。在每次進入時鐘中斷前,MCU保存當前狀態和當前任務的關鍵數據,然后進入時鐘中斷進行時間片處理。如果這時判斷有新的更緊急的任務的時間片到來,則執行任務切換,恢復這個更緊急的任務的現場,然后返回中斷開始執行這個更緊急的任務。


到這里,我們終于知道了操作系統的作用了。事實上,操作系統的用處遠不止幫你完成這個“任務時間片的處理”,操作系統還能幫你處理各種超時,進行內存管理,完成任務間的通信等。有了操作系統,程序的層次也更加清晰,給系統添加功能也更方便,這一切在大型項目中越發的明顯!

主站蜘蛛池模板: 国产精品免费观看调教网| 亚洲不卡影院午夜在线观看| 亚洲性久久久影院| 国产亚洲精品拍拍拍拍拍| 久久亚洲国产精品一区二区| 亚洲春色在线视频| 中文字幕不卡免费视频| 黄色片在线免费观看| 国产精品成人四虎免费视频| 亚洲人成中文字幕在线观看| 亚洲av一本岛在线播放| 免费一级全黄少妇性色生活片| 免费看搞黄视频网站| 暖暖免费高清日本一区二区三区 | 99在线视频免费观看| 最近免费中文字幕大全视频 | 无人在线观看完整免费版视频 | 99精品视频免费| 亚洲AV无码一区二区二三区入口 | 91免费福利视频| 亚洲AV无码不卡在线播放| 无码日韩精品一区二区三区免费 | 国产日产亚洲系列| 亚洲成AV人影片在线观看| 一级毛片在线免费看| 亚洲日本国产乱码va在线观看| 成人网站免费看黄A站视频| 暖暖日本免费在线视频 | 日韩亚洲人成在线| 国产一级淫片a视频免费观看| 亚洲国产综合人成综合网站00| 一二三四视频在线观看中文版免费 | 免费国产一级特黄久久| 久久综合亚洲色一区二区三区| 成人无码区免费A∨直播| 666精品国产精品亚洲 | 一本岛v免费不卡一二三区| 午夜一级免费视频| 亚洲av永久无码精品天堂久久 | 午夜私人影院免费体验区| 亚洲欧洲日本天天堂在线观看|