為FPGA軟處理器選擇操作系統(tǒng)
在本文中,我們研究了選擇嵌入式操作系統(tǒng)的各種方案,并且針對(duì)嵌入式和實(shí)時(shí)操作系統(tǒng),討論一些選擇標(biāo)準(zhǔn),并強(qiáng)調(diào)由可編程邏輯解決方案引入的設(shè)計(jì)折衷。闡述了一個(gè)典型實(shí)例,這里我們以在萊迪思半導(dǎo)體公司的FPGA 上運(yùn)行的LatticeMico32軟處理器設(shè)計(jì)為例提供一個(gè)典型方案的討論。
引言
操作系統(tǒng)能夠提高可移植性,并提供多種經(jīng)過測(cè)試的抽象層,服務(wù)層和應(yīng)用模塊層以供選擇,從而加快產(chǎn)品上市時(shí)間并減少應(yīng)用程序出錯(cuò)的可能性。然而,選擇一個(gè)嵌入式操作系統(tǒng)( OS )從來就不是一個(gè)簡(jiǎn)單的過程,因?yàn)榧汕度胧杰浖姆绞竭x擇余地很大,你可以完全都由自己來編寫,或通過商業(yè)定制專門實(shí)時(shí)操作系統(tǒng),也可以直接購(gòu)買通用操作系統(tǒng)不作任何修改,現(xiàn)成的通用操作系統(tǒng)。FPGA性能的提高和軟處理器核的出現(xiàn),直接導(dǎo)致了可編程邏輯SoC解決方案的產(chǎn)生,隨著這一變化,關(guān)于選擇標(biāo)準(zhǔn),設(shè)計(jì)方案以及折中考慮等傳統(tǒng)經(jīng)驗(yàn)也需要與時(shí)俱進(jìn)以適應(yīng)這些新的開發(fā)方式。
在本文中,我們研究了選擇嵌入式操作系統(tǒng)的各種方案,并且針對(duì)嵌入式和實(shí)時(shí)操作系統(tǒng),討論一些選擇標(biāo)準(zhǔn),并強(qiáng)調(diào)由可編程邏輯解決方案引入的設(shè)計(jì)折衷。闡述了一個(gè)典型實(shí)例,這里我們以在萊迪思半導(dǎo)體公司的FPGA 上運(yùn)行的LatticeMico32軟處理器設(shè)計(jì)為例提供一個(gè)典型方案的討論。
傳統(tǒng)經(jīng)驗(yàn)
根據(jù)傳統(tǒng)經(jīng)驗(yàn),一個(gè)操作系統(tǒng)的選擇有四個(gè)主要方式。
無操作系統(tǒng)
許多簡(jiǎn)單的嵌入式系統(tǒng)不需要操作系統(tǒng)。該代碼通常始于設(shè)立堆棧指針和初始化幾個(gè)時(shí)鐘和外設(shè)寄存器。然后,該代碼進(jìn)入主循環(huán)(也稱為超級(jí)循環(huán)) ,以執(zhí)行產(chǎn)品的功能。編寫中斷服務(wù)程序( ISR)用以處理異步事件,以提供一些響應(yīng)而不是輪詢?cè)O(shè)備方式來進(jìn)行服務(wù)。 ISR的響應(yīng)通常是在0到10微秒的范圍。如果 處理器速度 足夠 快,以及超級(jí)循環(huán)是小而緊湊的,這是一個(gè)完全可行的選擇。然而,如果進(jìn)行更復(fù)雜的操作,如執(zhí)行控制循環(huán),提供圖形顯示服務(wù),使用文件系統(tǒng)或網(wǎng)絡(luò)堆棧( TCP / IP協(xié)議或其他),超級(jí)循環(huán)將無法正常工作。如果考慮一個(gè) 快速和 功能強(qiáng)大的 處理器, 如開放源 代碼LatticeMico32軟處理器, 應(yīng)該選擇一個(gè)操作系統(tǒng)。
自己編寫操作系統(tǒng)
對(duì)于一些特定需求,現(xiàn)有的解決方案無法滿足需要,或者現(xiàn)有的解決方案成本太高,通常就需要考慮自己編寫操作系統(tǒng)。自己編寫RTOS (實(shí)時(shí)操作系統(tǒng))通常不是一個(gè)好的選擇,因?yàn)榭偸菄?yán)重低估所需付出的努力。一個(gè)簡(jiǎn)單的“tasker”要寫幾天或幾周,但更艱巨的挑戰(zhàn)是需要對(duì)實(shí)現(xiàn)魯棒性商業(yè)產(chǎn)品的努力。例如,一個(gè)商業(yè)的RTOS ,如μC/OS-II可能包含超過10000行的代碼,已經(jīng)在各種各樣的產(chǎn)品中得到了現(xiàn)場(chǎng)驗(yàn)證,并可能已被認(rèn)證應(yīng)用于,如電子和醫(yī)療產(chǎn)品等。如果選擇你自己編寫,誰將確保長(zhǎng)期維護(hù),并且完成詳細(xì)的文檔?
從商業(yè)的觀點(diǎn)來看,自己編寫的RTOS不是一個(gè)好的選擇。
商業(yè)RTOS
實(shí)時(shí)操作系統(tǒng)是一個(gè)管理微控制器,微處理器或DSP時(shí)間的軟件。最重要的一個(gè)特點(diǎn)是它對(duì)實(shí)時(shí)事件的響應(yīng),通常不到25微秒。這種響應(yīng)通常是確定性,在某些情況下,甚至相當(dāng)穩(wěn)定。一個(gè)實(shí)時(shí)操作系統(tǒng)以應(yīng)用編程接口( API )的形式為應(yīng)用程序員提供了許多“服務(wù)”。當(dāng)選擇一個(gè)實(shí)時(shí)操作系統(tǒng)時(shí),從技術(shù)和業(yè)務(wù)問題方面考慮會(huì)有數(shù)十種選擇。
技術(shù)問題可以大致分類為:
* RTOS對(duì)應(yīng)用作出的響應(yīng)夠嗎?
* 實(shí)時(shí)操作系統(tǒng)提供了所需的功能嗎?大多數(shù)實(shí)時(shí)操作系統(tǒng)提供相同的基本功能:任務(wù)管理,時(shí)間管理,信號(hào)量,消息隊(duì)列,事件標(biāo)志等。
* RTOS可以實(shí)時(shí)用于不同的CPU (即代碼可以移植嗎)嗎 ?一個(gè) 實(shí)時(shí)操作系統(tǒng),如μC/OS-II已移植到超過45種不同CPU 架構(gòu), 所以在這種 情況下,可移植性不會(huì)成為問題,產(chǎn)品和其一部分的長(zhǎng)壽性是得到保證的。如果使用一個(gè)新的架構(gòu),移植 到一個(gè) CPU通常需要一兩個(gè)星期。
* 使用RTOS是否有足夠的ROM和RAM?根據(jù)所需的特性RTOS的空間可以減少嗎?例如,μC/OS-II是可以升級(jí)的,代碼 空間的要求在6千字節(jié)到24 千字節(jié)的之間,最低只需要500字節(jié)的RAM 。
從商業(yè)角度,事情并非那么容易解決。具體來說,嵌入式開發(fā)者需要從操作系統(tǒng)供應(yīng)商那里得到滿意答復(fù),了解價(jià)格結(jié)構(gòu),支持結(jié)構(gòu)和供應(yīng)商的聲譽(yù)和穩(wěn)定性。尋找一個(gè)ROTS操作系統(tǒng)或RTOS的供應(yīng)商時(shí),調(diào)查通常是一個(gè)好的開端。
當(dāng)系統(tǒng)響應(yīng)速度是最重要時(shí),如控制和監(jiān)測(cè)應(yīng)用程序,就會(huì)選擇商業(yè)的RTOS,因?yàn)樗鼈兒芤蕾囉谲浖膱?zhí)行功能。如果你可以選擇用硬件實(shí)現(xiàn)時(shí)間至關(guān)重要的功能,通常就不需要由RTOS提供嚴(yán)格的時(shí)間保證。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)fpga相關(guān)文章:fpga是什么
linux相關(guān)文章:linux教程
p2p機(jī)相關(guān)文章:p2p原理
評(píng)論