學(xué)得越多,發(fā)現(xiàn)自己知道的越少!Android與RTOS
小編研究生做了兩年Android應(yīng)用,實(shí)習(xí)時(shí)轉(zhuǎn)了嵌入式應(yīng)用軟件開(kāi)發(fā),拿著一塊移植了RTOS的設(shè)備學(xué)習(xí)。入門(mén)了才發(fā)現(xiàn),兩者都是開(kāi)源、穩(wěn)定、經(jīng)歷眾多設(shè)備廠商打磨的優(yōu)秀操作系統(tǒng),根據(jù)以下幾點(diǎn)對(duì)比學(xué)習(xí)。
通用操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng):
雙系統(tǒng)
兩個(gè)操作系統(tǒng)其實(shí)經(jīng)常一起應(yīng)用:
Android手機(jī)的雙MCU
1. AP(Application Processor)是ARM架構(gòu)搭載Android,運(yùn)行系統(tǒng)和應(yīng)用,由于高功耗待機(jī)時(shí)和WIFI、LCD均休眠
2. BP(BaseBand Processor)架構(gòu)搭載RTOS,運(yùn)行通信協(xié)議、射頻、GPIO,低功耗
TP_Link小白路由的雙系統(tǒng)
1. 搭載Android4.2,運(yùn)行APP加強(qiáng)應(yīng)用功能
2. 搭載RTOS,完成安全、嚴(yán)密、專業(yè)的路由功能
高通驍龍810/7系列處理器
1. 一個(gè)ARM運(yùn)行基于Linux的Android OS
2. 一個(gè)ARM運(yùn)行(RTOS)
適用于 TI 處理器的可擴(kuò)展 Linux 和 TI RTOS 解決方案
查資料過(guò)程中,發(fā)現(xiàn)TI也提供了一套基于自己家處理器的可擴(kuò)展Linux,Android,RTOS解決方案,同樣的處理器,可選的SDK和操作系統(tǒng),也是棒。當(dāng)然Android做為操作系統(tǒng)更為豐滿,更上層,而實(shí)時(shí)操作系統(tǒng)比如ucos,比如最近在學(xué)的rtos,都僅提供了任務(wù)調(diào)度、同步、互斥、時(shí)鐘等功能,所以必須內(nèi)核組,BSP&DSP,應(yīng)用軟件開(kāi)發(fā)人員再向這個(gè)骨架中填充(移植)血肉:lwip(小型TCP/IP協(xié)議棧), fatfs(文件系統(tǒng)), driver(各種外設(shè)驅(qū)動(dòng)), framework, ucGUI, bsp等。
通用操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)
一、通用操作系統(tǒng)的設(shè)計(jì)注重每次執(zhí)行的平均響應(yīng)時(shí)間而不關(guān)心某次特定執(zhí)行的響應(yīng)時(shí)間。通用操作系統(tǒng)中采用的很多策略和技巧都體現(xiàn)出了這種設(shè)計(jì)原則。
大型的os代碼包括的內(nèi)容很多,就拿linux來(lái)說(shuō),它就包括了調(diào)度、文件、網(wǎng)絡(luò)、驅(qū)動(dòng)等完整的代碼內(nèi)容。
二、對(duì)于實(shí)時(shí)操作系統(tǒng),它除了要滿足應(yīng)用的功能需求以外,更重要的是還要滿足應(yīng)用提出的實(shí)時(shí)性要求,而組成一個(gè)應(yīng)用的眾多實(shí)時(shí)任務(wù)對(duì)于實(shí)時(shí)性的要求是各不相同的,此外實(shí)時(shí)任務(wù)之間可能還會(huì)有一些復(fù)雜的關(guān)聯(lián)和同步關(guān)系,如執(zhí)行順序限制、共享資源的互斥訪問(wèn)要求等,這就為系統(tǒng)實(shí)時(shí)性的保證帶來(lái)了很大的困難。因此,實(shí)時(shí)操作系統(tǒng)所遵循的最重要的設(shè)計(jì)原則是:采用各種算法和策略,始終保證系統(tǒng)行為的可預(yù)測(cè)性predictability)
而一般的rtos呢,就拿大家熟悉的ucos2來(lái)說(shuō),只是包含了調(diào)度、同步、互斥、時(shí)鐘等代碼。如果系統(tǒng)工程師需要拿ucos2來(lái)做一個(gè)項(xiàng)目,那么他還需要bsp、lwip、ucGUI、fatfs、driver、framework等很多代碼才能組成一個(gè)完成的系統(tǒng)。
可預(yù)測(cè)性是指在系統(tǒng)運(yùn)行的任何時(shí)刻,在任何情況下,實(shí)時(shí)操作系統(tǒng)的資源調(diào)配策略都能為爭(zhēng)奪資源(包括CPU、內(nèi)存、網(wǎng)絡(luò)帶寬等)的多個(gè)實(shí)時(shí)任務(wù)合理地分配資源,使每個(gè)實(shí)時(shí)任務(wù)的實(shí)時(shí)性要求都能得到滿足。與通用操作系統(tǒng)不同,實(shí)時(shí)操作系統(tǒng)注重的不是系統(tǒng)的平均表現(xiàn),而是要求每個(gè)實(shí)時(shí)任務(wù)在最壞情況下都要滿足其實(shí)時(shí)性要求,也就是說(shuō),實(shí)時(shí)操作系統(tǒng)注重的是個(gè)體表現(xiàn),更準(zhǔn)確地講是個(gè)體最壞情況表現(xiàn)。
三、差別比較之處
1.幾個(gè)主要差別的地方:
(1)任務(wù)調(diào)度策略不同。
(2)內(nèi)存管理方式不同。
(3)中斷處理方式。
(3)系統(tǒng)管理方式不同。