<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ucOS學(xué)習(xí)筆記(1)——為什么需要操作系統(tǒng)

          ucOS學(xué)習(xí)筆記(1)——為什么需要操作系統(tǒng)

          作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          1.操作系統(tǒng)可以顯著降低開發(fā)難度。
          操作系統(tǒng)幫我們協(xié)調(diào)多個程序之間的耦合關(guān)系,比如我們需要將串口的接收到的數(shù)據(jù)顯示在一塊LCD上。傳統(tǒng)做法是如圖1所示:

          圖1.無操作系統(tǒng)流程
          該流程中當(dāng)串口接收到數(shù)據(jù)再調(diào)用LCD顯示程序?qū)?shù)據(jù)顯示出來,而圖2展示了一種基于操作系統(tǒng)的方法。在該方法中串口接收數(shù)據(jù)和LCD顯示程序均以為自己獨占CPU,各自都只是執(zhí)行自己相關(guān)部分的工作,而什么時候顯示到LCD屏幕,什么時候又繼續(xù)接收串口數(shù)據(jù)這個協(xié)調(diào)工作將由操作系統(tǒng)完成。
          圖2 操作系統(tǒng)流程
          從以上比較可以看出操作系統(tǒng)協(xié)調(diào)了不同功能程序以讓他們共同完成同一個工作。同時操作系統(tǒng)又隔離了各個功能程序讓它們的耦合程度降低。這樣就方便設(shè)計人員編寫各個功能模塊,同時整個系統(tǒng)的結(jié)構(gòu)也更加清晰。特別是系統(tǒng)邏輯結(jié)構(gòu)復(fù)雜,功能模塊較多的情況下操作系統(tǒng)的這一優(yōu)點體現(xiàn)的更加明顯。
          2.操縱系統(tǒng)讓每一個任務(wù)都認(rèn)為自己獨占CPU,方便代碼編寫。
          同樣采用上邊的例子,無操作系統(tǒng)情況下我么需要在適當(dāng)?shù)臅r候分別調(diào)用串口接收數(shù)據(jù)程序和LCD顯示程序,而有操作系統(tǒng)時我們只需要完成兩個功能模塊代碼然后加入到操作系統(tǒng)就可以了。兩個功能代碼都是以無限循環(huán)的方式執(zhí)行,結(jié)構(gòu)顯得就很簡單。
          3.操作系統(tǒng)增加代碼的移植性。
          這一點我認(rèn)為在ucOS系統(tǒng)上體現(xiàn)得并不明顯,對于其他系統(tǒng)例如android,linux等系統(tǒng)可以這樣講,因為他們基本上應(yīng)該算是一個中等復(fù)雜系統(tǒng),而ucOS是一個簡單嵌入式系統(tǒng)。對于一個中等復(fù)雜系統(tǒng)它的底層硬件設(shè)備是有一定要求的,例如android設(shè)備,根據(jù)系統(tǒng)特性它就需要有GPS支持,顯示屏支持,電子羅盤支持,攝像頭支持這些支持都被列入android設(shè)備的系統(tǒng)內(nèi),它們以驅(qū)動的形式存在。而上層的應(yīng)用程序通過調(diào)用底層的支持進而實現(xiàn)復(fù)雜的功能。而ucOS我認(rèn)為它僅僅只是一個調(diào)度器,他的工作就是協(xié)調(diào)多個應(yīng)用程序在單個MCU上"同時"運行而已,它幾乎是沒有驅(qū)動這個概念的。



          關(guān)鍵詞: ucOS操作系

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();