成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

RTOS系列——初識嵌入式實時操作系統(tǒng)

不知名網(wǎng)友 / 3471人閱讀

摘要:嵌入式實時操作系統(tǒng)是一個特殊的程序通常稱為內(nèi)核,它可以創(chuàng)建,銷毀,控制所有任務(wù)。顯示處理函數(shù)運行過程中,定時器產(chǎn)生中斷,系統(tǒng)進入定時器中斷程序?qū)鞲衅鳂酥疚恢?。實時操作系的子系統(tǒng)將再后續(xù)持續(xù)更新。

嵌入式實時操作系統(tǒng)是什么
嵌入式實時操作系統(tǒng)是一個特殊的程序,是一個支持多任務(wù)的運行環(huán)境。嵌入式實時操作系統(tǒng)最大的特點就是“實時性”,如果有一個任務(wù)需要執(zhí)行,實時操作系統(tǒng)會立即執(zhí)行該任務(wù),不會有較長的延時。典型的實時操作系統(tǒng)有uCOS ,RT-Thread,F(xiàn)reeRTOS ,VxWorks,WinCE等。

嵌入式實時操作系統(tǒng)是一個特殊的程序(通常稱為內(nèi)核),它可以創(chuàng)建,銷毀,控制所有任務(wù)。嵌入式實時操作系統(tǒng)除了包含一個內(nèi)核以外,還提供其他服務(wù),如文件系統(tǒng),協(xié)議棧,圖形用戶界面等。本文的重點在于了解嵌入式實時操作系統(tǒng)內(nèi)核的工作原理和結(jié)構(gòu),因此文中提到的實時操作系統(tǒng)通常指的是操作系統(tǒng)內(nèi)核。實時操作系統(tǒng)內(nèi)核通常要占用5%左右的CPU運行時間,另外內(nèi)核是一個軟件代碼,需要額外占用ROM空間和RAM空間。

實時性
實時性可以定義為:觸發(fā)條件產(chǎn)生后系統(tǒng)的反應(yīng)能力。通俗的描述就是“天下武功唯快不破”,能達到所需要的“快”就是實時,在不同的場合需要達到us級、ns級。實時系統(tǒng)不僅僅只表現(xiàn)在“快”上,更主要的是實時系統(tǒng)需要對觸發(fā)事件在限定時間內(nèi)做出反應(yīng),這個限定時間是根據(jù)實際需要來定,例如自動駕駛控制系統(tǒng)的規(guī)定時間要求很短,需要在極短時間內(nèi)做出動作;一些農(nóng)業(yè)溫度控制系統(tǒng)的規(guī)定時間要求比較長,需要溫度控制平滑穩(wěn)定。

響應(yīng)時間
實時性越強,其響應(yīng)時間越短。響應(yīng)時間是指系統(tǒng)識別到一個事件到開始做出響應(yīng)的時間。舉一個簡單的例子:一個工控設(shè)備有一個急停按鍵開關(guān),用戶希望按下急停開關(guān)的時候系統(tǒng)立即將停止所有的動作,假設(shè)用戶在第1.001秒時按下了急停開關(guān),軟件系統(tǒng)在第1.011秒時執(zhí)行了停止指令,工控設(shè)備相應(yīng)的機械部件在1.211秒停止動作,此時軟件系統(tǒng)響應(yīng)時間為0.01秒,設(shè)備系統(tǒng)響應(yīng)時間為0.21秒,設(shè)備系統(tǒng)的響應(yīng)時間和軟件系統(tǒng)的響應(yīng)時間有一定區(qū)別,通常情況下設(shè)備系統(tǒng)的響應(yīng)時間>軟件系統(tǒng)的響應(yīng)時間。本文中提到的響應(yīng)時間指的是軟件系統(tǒng)的響應(yīng)時間。

再舉一個通俗的例子:你在玩王者榮耀,突然發(fā)現(xiàn)對面打野從草叢中跑出準備gank你,從你眼睛看到,到手指點擊閃現(xiàn),然后到你的人物閃現(xiàn)到塔下。這就是響應(yīng)時間,高端職業(yè)玩家可能只需要100ms即可完成整套動作,而菜鳥玩家可能需要1000ms來完成整個動作。

普通的嵌入式軟件架構(gòu)
普通的嵌入式軟件系統(tǒng)通常設(shè)計成前后臺結(jié)構(gòu),這個結(jié)構(gòu)包含一個死循環(huán)和若干中斷服務(wù)程序:應(yīng)用程序是一個無限循環(huán)的代碼塊,循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作(后 臺),中斷程序用于處理系統(tǒng)的異步事件(前臺)。前臺稱做中斷級,后臺稱做任務(wù)級。下面是一個典型的前后臺結(jié)構(gòu)的代碼:

上圖中的代碼的執(zhí)行流程是:
1、判斷按鍵標志位,若標志位為1就執(zhí)行按鍵處理操作。
2、判斷通訊標志位,若標志位為1就執(zhí)行通訊處理操作。
3、執(zhí)行LCD顯示操作
4、判斷傳感器標志位,若標志位為1就執(zhí)行傳感器處理操作。
此代碼中有3個中斷函數(shù):
1、GPIO外部中斷,當按鍵按下后產(chǎn)生一個中斷,中斷函數(shù)中將鍵標志位置1。
2、串口空閑中斷,當串口總線空閑時產(chǎn)生一個中斷,中斷函數(shù)中將通訊標志位置1。
3、定時器中斷,每500ms周期性產(chǎn)生一個中斷,中斷函數(shù)中將傳感器標志位置1。

代碼執(zhí)行如圖所示:

分析運行圖:
1、程序判斷按鍵標志位,標志位為0,不執(zhí)行按鍵處理函數(shù)。
2、程序判斷通訊標志位,標志位為0,不執(zhí)行通訊處理函數(shù)。
3、程序執(zhí)行顯示處理函數(shù),此時用戶按下了按鍵,系統(tǒng)進入按鍵中斷程序?qū)存I標志位置1,中斷完成后返回顯示處理函數(shù)繼續(xù)運行。
4、顯示處理函數(shù)運行過程中,此時串口接收完一包數(shù)據(jù)產(chǎn)生了一個空閑中斷,系統(tǒng)進入串口空閑中斷程序?qū)⑼ㄓ崢酥疚恢?,中斷完成后返回顯示處理函數(shù)繼續(xù)運行。
5、顯示處理函數(shù)運行過程中,定時器產(chǎn)生中斷,系統(tǒng)進入定時器中斷程序?qū)鞲衅鳂酥疚恢?。
6、顯示處理函數(shù)執(zhí)行完畢,程序判斷傳感器標志位,標志位為1,執(zhí)行通訊處理函數(shù)。
7、程序判斷按鍵標志位,標志位為1,執(zhí)行按鍵處理函數(shù)。
8、程序判斷通訊標志位,標志位為1,執(zhí)行通訊處理函數(shù)。
9、無限循環(huán)…

由上述例子可知,按鍵標志位和通訊標志位就緒后,程序還需要等待顯示函數(shù),傳感器函數(shù)執(zhí)行完畢。即使是按鍵處理函數(shù)的緊急性再高,也需要等待其他函數(shù)執(zhí)行完畢。因此就產(chǎn)生了響應(yīng)延遲,響應(yīng)延遲的時間隨機的不確定的,有的時候時幾毫秒的時間,有的時候是幾百毫秒甚至更長(如執(zhí)行傳感器讀?。虼诵枰岣呦到y(tǒng)的實時性。

實時操作系統(tǒng)
實時操作系可以隨時剝奪正在運行任務(wù)的CPU使用權(quán),并將CPU使用權(quán)交給進入就緒狀態(tài)的最高優(yōu)先級任務(wù),使用操作系統(tǒng)后的運行圖如下:

分析運行圖:
1、低優(yōu)先級的顯示任務(wù)正在運行,此時用戶按下了按鍵,系統(tǒng)進入按鍵中斷程序給按鍵任務(wù)發(fā)送一個信號,此時按鍵任務(wù)進入就緒狀態(tài),中斷返回時切換到按鍵處理任務(wù)中運行。
2、按鍵處理任務(wù)正在運行,此時串口接收完一包數(shù)據(jù)產(chǎn)生了一個空閑中斷,系統(tǒng)進入串口空閑中斷程序并給通訊處理任務(wù)發(fā)送一個信號,通訊處理任務(wù)進入就緒狀態(tài),中斷返回時切換到通訊處理任務(wù)。
3、通訊處理任務(wù)執(zhí)行完畢,放棄CPU使用權(quán)限,此時切換到按鍵處理任務(wù)。
4、按鍵處理任務(wù)執(zhí)行完畢,放棄CPU使用權(quán)限,此時切換到顯示處理任務(wù)。

由此可見,當觸發(fā)產(chǎn)生后實時操作系將立即中斷當前的任務(wù)并執(zhí)行相應(yīng)的任務(wù)。使用實時操作系可以極大的提高軟件系統(tǒng)的實時性。

實時操作系統(tǒng)組成
實時操作系由以下3個子系統(tǒng)組成(以uCOS和FreeRTOS為參考對象):
1、任務(wù)調(diào)度子系統(tǒng)
2、任務(wù)通信子系統(tǒng)
3、內(nèi)存管理子系統(tǒng)

任務(wù)調(diào)度子系統(tǒng)主要是維護兩個鏈表:就緒表和等待表。切換任務(wù)時從就緒表中取出最高優(yōu)先級任務(wù);任務(wù)需要延時等待時,內(nèi)核將任務(wù)中就緒表中移動到等待表中;時鐘節(jié)拍任務(wù)會周期性的更新等待表,并將等待時間完成的任務(wù)從等待表中移動到就緒表中。

任務(wù)通訊子系統(tǒng)主要是維護一個鏈表:掛起表。任務(wù)需要等待信號時,內(nèi)核將任務(wù)移動到掛起表中,當內(nèi)核收到信號時,內(nèi)核將任務(wù)從掛起表中移動到就緒表中。

內(nèi)存管理子系統(tǒng),內(nèi)核提供了幾種動態(tài)申請內(nèi)存的方式,防止出現(xiàn)內(nèi)存碎片。

實時操作系的子系統(tǒng)將再后續(xù)持續(xù)更新。

創(chuàng)作不易希望朋友們點贊,轉(zhuǎn)發(fā),評論,關(guān)注。
您的點贊,轉(zhuǎn)發(fā),評論,關(guān)注將是我持續(xù)更新的動力
作者:李巍
Github:liyinuoman2017

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/125574.html

相關(guān)文章

  • 入式系統(tǒng)基礎(chǔ)知識總結(jié)

    摘要:設(shè)計一個完整的需要完成兩部分工作嵌入式系統(tǒng)的硬件初始化和功能。片級初始化純硬件的初始化過程,把嵌入式微處理器從上電的默認狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。 一、嵌入式系統(tǒng)基礎(chǔ) 1、嵌入式系統(tǒng)的定義 1.1 ?定義:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可...

    AlphaWatch 評論0 收藏0
  • 如何將RTOS系統(tǒng)啟動時間做到“毫秒級”?AliOS Things是這樣做的

    摘要:自年以來,在智能家居市場的驅(qū)動下,智能貓眼市場膨脹速度驚人。移動偵測即人體感應(yīng)當有人經(jīng)過門前時會自動啟動拍照或者錄像功能記錄來訪者。而實時操作系統(tǒng)內(nèi)核小巧,對任何中斷指令都可以做到馬上響應(yīng),系統(tǒng)啟動時間則只有幾秒鐘。 1、背景 ????隨著人工智能的迅速發(fā)展,智能家居的時代已經(jīng)到來,除了智...

    Zachary 評論0 收藏0
  • 痞子衡入式入式Cortex-M系統(tǒng)中斷延遲及其測量方法簡介

    摘要:今天痞子衡給大家分享的是系統(tǒng)中斷延遲及其測量方法。至此,系統(tǒng)中斷延遲及其測量方法痞子衡便介紹完畢了,掌聲在哪里歡迎訂閱歡迎訂閱文章會同時發(fā)布到我的博客園主頁主頁知乎主頁微信公眾號平臺上?! 〈蠹液?,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是Cortex-M系統(tǒng)中斷延遲及其測量方法。  在嵌入式領(lǐng)域里,實時性是個經(jīng)常被我們掛在嘴邊的概念,這里的實時性主要強調(diào)得是當外界事件發(fā)生時,...

    不知名網(wǎng)友 評論0 收藏0
  • Zephyr Project RTOS - 開源實時操作系統(tǒng)的首次功能安全認證提交

    摘要:另一方面是提供的安全程度。這解決了為功能安全而設(shè)計的絕大多數(shù)設(shè)備用例。項目已經(jīng)開始致力于在開源環(huán)境中開發(fā)功能安全認證的。最后,認證將建立軟件故障避免和控制措施到目標完整性水平。 showImg(https://segmentfault.com/img/bVbpvvs?w=137&h=174);作者:Amber Hibberd,博士。英特爾功能安全工程經(jīng)理和Zephyr項目成員 免費的開...

    oliverhuang 評論0 收藏0
  • 發(fā)現(xiàn)一個非常好用的RTC(實時音視頻通信)方案,做直播和視頻通話都很牛

    摘要:除了一些線程調(diào)度和線程模型的調(diào)整,我們還需要進行業(yè)務(wù)邏輯上的優(yōu)化,比如縮減高消耗,低反饋的業(yè)務(wù)模塊,降低消耗,限制業(yè)務(wù)邏輯隊列內(nèi)存分配增長空間,避免某些業(yè)務(wù)場景中內(nèi)存持續(xù)增長導致系統(tǒng)奔潰。 1、HaaS RTC背景介紹 HaaS RTC是阿里云IoT聯(lián)合視頻云開發(fā)的IoT設(shè)備端上的實時通...

    LeviDing 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<