研究生做了兩年Android應用,實習時轉了嵌入式應用軟件開發,拿著一塊移植了RTOS的設備學習。入門了才發現,兩者都是開源、穩定、經歷眾多設備廠商打磨的優秀操作系統,根據以下幾點對比學習。
通用操作系統和實時操作系統:
雙系統
兩個操作系統其實經常一起應用:
1.AP(Application Processor)是ARM架構搭載Android,運行系統和應用,由于高功耗待機時和WIFI、LCD均休眠
2.BP(BaseBand Processor)架構搭載RTOS,運行通信協議、射頻、GPIO,低功耗
TP_Link小白路由的雙系統
1.搭載Android4.2,運行APP加強應用功能
2.搭載RTOS,完成安全、嚴密、專業的路由功能
1.一個ARM運行基于Linux的Android OS
2.一個ARM運行(RTOS)
適用于 TI 處理器的可擴展 Linux 和 TI RTOS 解決方案
查資料過程中,發現TI也提供了一套基于自己家處理器的可擴展Linux,Android,RTOS解決方案,同樣的處理器,可選的SDK和操作系統,也是棒。當然Android做為操作系統更為豐滿,更上層,而實時操作系統比如ucos,比如最近在學的rtos,都僅提供了任務調度、同步、互斥、時鐘等功能,所以必須內核組,BSP&DSP,應用軟件開發人員再向這個骨架中填充(移植)血肉:lwip(小型TCP/IP協議棧), fatfs(文件系統), driver(各種外設驅動), framework, ucGUI, bsp等。
通用操作系統和實時操作系統
一、通用操作系統的設計注重每次執行的平均響應時間而不關心某次特定執行的響應時間。通用操作系統中采用的很多策略和技巧都體現出了這種設計原則。
大型的os代碼包括的內容很多,就拿linux來說,它就包括了調度、文件、網絡、驅動等完整的代碼內容。
二、對于實時操作系統,它除了要滿足應用的功能需求以外,更重要的是還要滿足應用提出的實時性要求,而組成一個應用的眾多實時任務對于實時性的要求是各不相同的,此外實時任務之間可能還會有一些復雜的關聯和同步關系,如執行順序限制、共享資源的互斥訪問要求等,這就為系統實時性的保證帶來了很大的困難。因此,實時操作系統所遵循的最重要的設計原則是:采用各種算法和策略,始終保證系統行為的可預測性predictability)
而一般的rtos呢,就拿大家熟悉的ucos2來說,只是包含了調度、同步、互斥、時鐘等代碼。如果系統工程師需要拿ucos2來做一個項目,那么他還需要bsp、lwip、ucGUI、fatfs、driver、framework等很多代碼才能組成一個完成的系統。
可預測性是指在系統運行的任何時刻,在任何情況下,實時操作系統的資源調配策略都能為爭奪資源(包括CPU、內存、網絡帶寬等)的多個實時任務合理地分配資源,使每個實時任務的實時性要求都能得到滿足。與通用操作系統不同,實時操作系統注重的不是系統的平均表現,而是要求每個實時任務在最壞情況下都要滿足其實時性要求,也就是說,實時操作系統注重的是個體表現,更準確地講是個體最壞情況表現。三、差別比較之處
幾個主要差別的地方:
(1)任務調度策略不同。
(2)內存管理方式不同。
(3)中斷處理方式。
(3)系統管理方式不同。
-
Android
+關注
關注
12文章
3926瀏覽量
127158 -
RTOS
+關注
關注
22文章
809瀏覽量
119451
原文標題:學得越多,發現自己知道的越少!Android與RTOS
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論