從ucOS談,為什么需要操作系統
1.操作系統可以顯著降低開發難度。操作系統幫我們協調多個程序之間的耦合關系,比如我們需要將串口的接收到的數據顯示在一塊LCD上。傳統做法是如圖1所示 :
1.jpg (7.94 KB, 下載次數: 158)
下載附件
2018-12-27 13:22 上傳
圖1.無操作系統流程
該流程中當串口接收到數據再調用LCD顯示程序將數據顯示出來,而圖2展示了一種基于操作系統的方法。在該方法中串口接收數據和LCD顯示程序均以為自己獨占CPU,各自都只是執行自己相關部分的工作,而什么時候顯示到LCD屏幕,什么時候又繼續接收串口數據這個協調工作將由操作系統完成。
2.jpg (13.86 KB, 下載次數: 133)
下載附件
2018-12-27 13:22 上傳
圖2 操作系統流程
從以上比較可以看出操作系統協調了不同功能程序以讓他們共同完成同一個工作。同時操作系統又隔離了各個功能程序讓它們的耦合程度降低。這樣就方便設計人員編寫各個功能模塊,同時整個系統的結構也更加清晰。特別是系統邏輯結構復雜,功能模塊較多的情況下操作系統的這一優點體現的更加明顯。
2.操縱系統讓每一個任務都認為自己獨占CPU,方便代碼編寫。
同樣采用上邊的例子,無操作系統情況下我么需要在適當的時候分別調用串口接收數據程序和LCD顯示程序,而有操作系統時我們只需要完成兩個功能模塊代碼然后加入到操作系統就可以了。兩個功能代碼都是以無限循環的方式執行,結構顯得就很簡單。
3.操作系統增加代碼的移植性。
這一點我認為在ucOS系統上體現得并不明顯,對于其他系統例如android,linux等系統可以這樣講,因為他們基本上應該算是一個中等復雜系統,而ucOS是一個簡單嵌入式系統。對于一個中等復雜系統它的底層硬件設備是有一定要求的,例如android設備,根據系統特性它就需要有GPS支持,顯示屏支持,電子羅盤支持,攝像頭支持這些支持都被列入android設備的系統內,它們以驅動的形式存在。而上層的應用程序通過調用底層的支持進而實現復雜的功能。而ucOS我認為它僅僅只是一個調度器,他的工作就是協調多個應用程序在單個MCU上"同時"運行而已,它幾乎是沒有驅動這個概念的。
以上圖文的Word格式文檔下載(內容和本網頁上的一模一樣,方便大家保存):
從ucOS談,為什么需要操作系統.doc
(45 KB, 下載次數: 126)
2018-12-27 09:06 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|