當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]為FPGA軟處理器選擇操作系統(tǒng)

在本文中,我們研究了選擇嵌入式操作系統(tǒng)的各種方案,并且針對嵌入式和實(shí)時操作系統(tǒng),討論一些選擇標(biāo)準(zhǔn),并強(qiáng)調(diào)由可編程邏輯解決方案引入的設(shè)計(jì)折衷。闡述了一個典型實(shí)例,這里我們以在萊迪思半導(dǎo)體公司的FPGA 上運(yùn)行的LatticeMico32軟處理器設(shè)計(jì)為例提供一個典型方案的討論。
 
  引言

  操作系統(tǒng)能夠提高可移植性,并提供多種經(jīng)過測試的抽象層,服務(wù)層和應(yīng)用模塊層以供選擇,從而加快產(chǎn)品上市時間并減少應(yīng)用程序出錯的可能性。然而,選擇一個嵌入式操作系統(tǒng)( OS )從來就不是一個簡單的過程,因?yàn)榧汕度胧杰浖姆绞竭x擇余地很大,你可以完全都由自己來編寫,或通過商業(yè)定制專門實(shí)時操作系統(tǒng),也可以直接購買通用操作系統(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)也需要與時俱進(jìn)以適應(yīng)這些新的開發(fā)方式。

  在本文中,我們研究了選擇嵌入式操作系統(tǒng)的各種方案,并且針對嵌入式和實(shí)時操作系統(tǒng),討論一些選擇標(biāo)準(zhǔn),并強(qiáng)調(diào)由可編程邏輯解決方案引入的設(shè)計(jì)折衷。闡述了一個典型實(shí)例,這里我們以在萊迪思半導(dǎo)體公司的FPGA 上運(yùn)行的LatticeMico32軟處理器設(shè)計(jì)為例提供一個典型方案的討論。

  傳統(tǒng)經(jīng)驗(yàn)

  根據(jù)傳統(tǒng)經(jīng)驗(yàn),一個操作系統(tǒng)的選擇有四個主要方式。

  無操作系統(tǒng)

  許多簡單的嵌入式系統(tǒng)不需要操作系統(tǒng)。該代碼通常始于設(shè)立堆棧指針和初始化幾個時鐘和外設(shè)寄存器。然后,該代碼進(jìn)入主循環(huán)(也稱為超級循環(huán)) ,以執(zhí)行產(chǎn)品的功能。編寫中斷服務(wù)程序( ISR)用以處理異步事件,以提供一些響應(yīng)而不是輪詢設(shè)備方式來進(jìn)行服務(wù)。 ISR的響應(yīng)通常是在0到10微秒的范圍。如果 處理器速度 足夠 快,以及超級循環(huán)是小而緊湊的,這是一個完全可行的選擇。然而,如果進(jìn)行更復(fù)雜的操作,如執(zhí)行控制循環(huán),提供圖形顯示服務(wù),使用文件系統(tǒng)或網(wǎng)絡(luò)堆棧( TCP / IP協(xié)議或其他),超級循環(huán)將無法正常工作。如果考慮一個 快速和 功能強(qiáng)大的 處理器, 如開放源 代碼LatticeMico32軟處理器, 應(yīng)該選擇一個操作系統(tǒng)。

  自己編寫操作系統(tǒng)

  對于一些特定需求,現(xiàn)有的解決方案無法滿足需要,或者現(xiàn)有的解決方案成本太高,通常就需要考慮自己編寫操作系統(tǒng)。自己編寫RTOS (實(shí)時操作系統(tǒng))通常不是一個好的選擇,因?yàn)榭偸菄?yán)重低估所需付出的努力。一個簡單的“tasker”要寫幾天或幾周,但更艱巨的挑戰(zhàn)是需要對實(shí)現(xiàn)魯棒性商業(yè)產(chǎn)品的努力。例如,一個商業(yè)的RTOS ,如μC/OS-II可能包含超過10000行的代碼,已經(jīng)在各種各樣的產(chǎn)品中得到了現(xiàn)場驗(yàn)證,并可能已被認(rèn)證應(yīng)用于,如電子和醫(yī)療產(chǎn)品等。如果選擇你自己編寫,誰將確保長期維護(hù),并且完成詳細(xì)的文檔?

  從商業(yè)的觀點(diǎn)來看,自己編寫的RTOS不是一個好的選擇。

  商業(yè)RTOS

  實(shí)時操作系統(tǒng)是一個管理微控制器,微處理器或DSP時間的軟件。最重要的一個特點(diǎn)是它對實(shí)時事件的響應(yīng),通常不到25微秒。這種響應(yīng)通常是確定性,在某些情況下,甚至相當(dāng)穩(wěn)定。一個實(shí)時操作系統(tǒng)以應(yīng)用編程接口( API )的形式為應(yīng)用程序員提供了許多“服務(wù)”。當(dāng)選擇一個實(shí)時操作系統(tǒng)時,從技術(shù)和業(yè)務(wù)問題方面考慮會有數(shù)十種選擇。

  技術(shù)問題可以大致分類為:

  * RTOS對應(yīng)用作出的響應(yīng)夠嗎?

  * 實(shí)時操作系統(tǒng)提供了所需的功能嗎?大多數(shù)實(shí)時操作系統(tǒng)提供相同的基本功能:任務(wù)管理,時間管理,信號量,消息隊(duì)列,事件標(biāo)志等。

  * RTOS可以實(shí)時用于不同的CPU (即代碼可以移植嗎)嗎 ?一個 實(shí)時操作系統(tǒng),如μC/OS-II已移植到超過45種不同CPU 架構(gòu), 所以在這種 情況下,可移植性不會成為問題,產(chǎn)品和其一部分的長壽性是得到保證的。如果使用一個新的架構(gòu),移植 到一個 CPU通常需要一兩個星期。

  * 使用RTOS是否有足夠的ROM和RAM?根據(jù)所需的特性RTOS的空間可以減少嗎?例如,μC/OS-II是可以升級的,代碼 空間的要求在6千字節(jié)到24 千字節(jié)的之間,最低只需要500字節(jié)的RAM 。

  從商業(yè)角度,事情并非那么容易解決。具體來說,嵌入式開發(fā)者需要從操作系統(tǒng)供應(yīng)商那里得到滿意答復(fù),了解價格結(jié)構(gòu),支持結(jié)構(gòu)和供應(yīng)商的聲譽(yù)和穩(wěn)定性。尋找一個ROTS操作系統(tǒng)或RTOS的供應(yīng)商時,調(diào)查通常是一個好的開端。

  當(dāng)系統(tǒng)響應(yīng)速度是最重要時,如控制和監(jiān)測應(yīng)用程序,就會選擇商業(yè)的RTOS,因?yàn)樗鼈兒芤蕾囉谲浖膱?zhí)行功能。如果你可以選擇用硬件實(shí)現(xiàn)時間至關(guān)重要的功能,通常就不需要由RTOS提供嚴(yán)格的時間保證。[!--empirenews.page--]UNIX操作系統(tǒng)

 

  在過去幾年中,嵌入式應(yīng)用中采用的32位處理器平臺的性能和功能得到了極大增強(qiáng)。今天,即使軟處理器,如LatticeMico32提供達(dá)到50至100 DMIPS的計(jì)算能力。隨著可用資源的性能和功能的增強(qiáng),提供豐富的功能集和抽象層的操作系統(tǒng)已成為一種可行的可選嵌入式解決方案。UNIX提供了非常豐富的編程環(huán)境,對多處理器的應(yīng)用有相當(dāng)?shù)囊?guī)模,以及在網(wǎng)絡(luò)的應(yīng)用方面擁有豐富的歷史。通過文件操作,它提供了一個統(tǒng)一的設(shè)備抽象層,使平臺之間的應(yīng)用可以快速移植。一些UNIX版本也可獲取開放源代碼授權(quán):Linux是最著名的變種,有非常龐大的用戶群體和許多嵌入式應(yīng)用(如WLAN路由器,打印機(jī),VoIP電話)。Linux系統(tǒng)甚至對不包括MMU (內(nèi)存管理單元)的處理器提供了有限的支持。各種BSD (伯克利軟件分發(fā))版本可能不太為人所知,但它們在許可證上限制較少。

  一些實(shí)時擴(kuò)展為Linux提供了在Linux執(zhí)行層的頂部(或者說,下面)的最佳的軟實(shí)時層。RT/ Linux、 RTAI和Xenomai是實(shí)時擴(kuò)展的例子。通過多種已知的API從其他的RTOS (在Xenomai,此功能被稱為“skins”),一些實(shí)時層輸出其功能 。

  Linux系統(tǒng)提供了豐富的應(yīng)用,可以很容易地集成到一個嵌入式應(yīng)用程序,如Web服務(wù)器,協(xié)議棧,數(shù)據(jù)庫引擎,圖形庫和網(wǎng)絡(luò)管理。這些功能可以添加到任何嵌入式應(yīng)用,而不需要“從草圖”開發(fā)。隨著Linux的先進(jìn)I/O子系統(tǒng)的出現(xiàn),和全面支持的非易失存儲技術(shù)(從閃存到SATA硬盤) ,甚至可以集成“大”的應(yīng)用(如在NAS應(yīng)用中,跟蹤照片的數(shù)據(jù)庫應(yīng)用)。

  廣泛使用的操作系統(tǒng)技術(shù),例如Linux,其中一個最大的好處是在互聯(lián)網(wǎng)上可獲取大量的可用信息,有許多專業(yè)設(shè)計(jì)公司可以提供專業(yè)服務(wù)。雖然源代碼的許可證是免費(fèi)的,Linux的復(fù)雜性和大小會壓垮許多用戶。在這種情況下,專門設(shè)計(jì)公司,如Theobroma Systems可提供專業(yè)支持,培訓(xùn)和總承包設(shè)計(jì)服務(wù)。重要的是要記住,“開放源代碼組織”并不能給你提供工業(yè)質(zhì)量的支持,只有有經(jīng)驗(yàn)的工程人員才行。

  使用FPGA解決方案時,有與大型操作系統(tǒng)如Linux相關(guān)的性能和響應(yīng)時間方面的問題,可以用硬件實(shí)現(xiàn)。在這種情況下,操作系統(tǒng)功能作為一種資源監(jiān)管,大部分關(guān)鍵時間工作用硬件來完成。這個方法的一個例子是在UART內(nèi)利用一個大的FIFO,以減少至操作系統(tǒng) 的中斷次數(shù)。當(dāng)然,此方法有一定的局限性和復(fù)雜性,但與一個專用的CPU芯片相比,有更多的靈活性。

  另一方案:使用可編程邏輯

  FPGA為系統(tǒng)設(shè)計(jì)者提供了一系列的權(quán)衡選擇,這是現(xiàn)有的ASIC/ASSP解決方案無法提供的。正如圖1所示 ,當(dāng)一個處理器集成至FPGA時,設(shè)計(jì)者可以各種方式實(shí)現(xiàn)功能例如:

  * 軟件控制硬件

  * 僅軟件

  * 軟件功能,控制或數(shù)據(jù)流,通過硬件加速(SW/HW)

* 僅硬件,與CPU沒有直接的互動,但是硬件可與任何功能進(jìn)行交互。
 

 

  圖1 FPGA中的多種選擇[!--empirenews.page--]使用提供這些權(quán)衡的可編程邏輯解決方案,SoC設(shè)計(jì)者有控制結(jié)構(gòu)的多種選擇。相反,控制結(jié)構(gòu)的選擇涉及到如何實(shí)現(xiàn)所需的功能。

 

  一個簡單的便攜式媒體播放器示范了操作系統(tǒng)如何控制硬件,以及如何使用一個FPGA提供一系列改善硬件/軟件的權(quán)衡選擇。圖2從硬件的角度展示了播放器的功能。所需硬件的數(shù)量在很大程度上取決于所期望的系統(tǒng)響應(yīng)。有了RTOS,許多硬件模塊可以比在Linux應(yīng)用中簡單得多。總而言之,F(xiàn)PGA的可編程邏輯為任何操作系統(tǒng)提供硬件權(quán)衡選擇。

 

  圖2 從硬件角度觀察便攜式媒體播放器

  設(shè)計(jì)者在系統(tǒng)中用什么附加硬件,和如何用附加硬件有更多的靈活性,這可以從軟件的角度來觀察,如圖3所示。

  一個鍵盤掃描器或許可以作為RTOS任務(wù)來執(zhí)行,也作為硬件通過Linux任務(wù)來訪問。事實(shí)上,用硬件實(shí)現(xiàn)的鍵盤掃描器在系統(tǒng)中是隱藏的,因?yàn)樗话b在一個任務(wù)中。其優(yōu)點(diǎn)是大大減少了對操作系統(tǒng)的中斷。輕松地權(quán)衡添加硬件或者使用軟件為系統(tǒng)設(shè)計(jì)師帶來了一種新的靈活性。

 

  圖3 從軟件角度觀察相同的便攜式媒體播放器

  與FPGA相關(guān)的操作系統(tǒng)選擇

  基于FPGA的應(yīng)用引入了一個將時間緊迫任務(wù)用硬件實(shí)現(xiàn)的重要方法,使選擇操作系統(tǒng)在時間約束方面得到緩解,參見圖4。這張圖顯示了本文中討論過的各種選擇的響應(yīng)范圍。因?yàn)樗强删幊踢壿嫞現(xiàn)PGA為設(shè)計(jì)者提供了精細(xì)的增量控制執(zhí)行。因?yàn)樗怯布鼘?shí)時事件的響應(yīng)極快。如圖所示,該響應(yīng)可用于擴(kuò)大服務(wù)范圍,甚至更大的操作系統(tǒng)。

 

  圖4 響應(yīng)范圍

  結(jié)論

  用可編程邏輯的SoC平臺的設(shè)計(jì),如FPGA芯片里的LatticeMico32,給系統(tǒng)設(shè)計(jì)師提供了難得的機(jī)會,因?yàn)樗麄兛梢赃x擇自己喜歡的硬件支持和輕載功能。這使得系統(tǒng)設(shè)計(jì)師通過轉(zhuǎn)移軟件到FPGA中執(zhí)行數(shù)據(jù)路徑,來滿足時間上的限制。這一做法改變了對操作系統(tǒng)的標(biāo)準(zhǔn)選擇判據(jù),使得在實(shí)時操作系統(tǒng)和通用操作系統(tǒng)解決方案之間有更靈活的選擇。雖然商業(yè)實(shí)時操作系統(tǒng)在確定中斷響應(yīng)方面仍然有其優(yōu)勢,但通過使用FPGA中實(shí)現(xiàn)的減負(fù)引擎后,通用操作系統(tǒng)的解決方案(如Linux )可能成為適合于較大的應(yīng)用領(lǐng)域。“軟實(shí)時”的解決方案,如RT Linux或Xenomai,這時就顯得不那么理想了,因?yàn)槭褂脺p負(fù)引擎可以提供更好的響應(yīng)而沒有額外的工程費(fèi)用。


 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉