為FPGA軟處理器選擇操作系統(tǒng)
在過去幾年中,嵌入式應(yīng)用中采用的32位處理器平臺的性能和功能得到了極大增強(qiáng)。今天,即使軟處理器,如LatticeMico32提供達(dá)到50至100 DMIPS的計算能力。隨著可用資源的性能和功能的增強(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ā))版本可能不太為人所知,但它們在許可證上限制較少。
一些實時擴(kuò)展為Linux提供了在Linux執(zhí)行層的頂部(或者說,下面)的最佳的軟實時層。RT/ Linux、 RTAI和Xenomai是實時擴(kuò)展的例子。通過多種已知的API從其他的RTOS (在Xenomai,此功能被稱為“skins”),一些實時層輸出其功能 。
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è)計公司可以提供專業(yè)服務(wù)。雖然源代碼的許可證是免費的,Linux的復(fù)雜性和大小會壓垮許多用戶。在這種情況下,專門設(shè)計公司,如Theobroma Systems可提供專業(yè)支持,培訓(xùn)和總承包設(shè)計服務(wù)。重要的是要記住,“開放源代碼組織”并不能給你提供工業(yè)質(zhì)量的支持,只有有經(jīng)驗的工程人員才行。
使用FPGA解決方案時,有與大型操作系統(tǒng)如Linux相關(guān)的性能和響應(yīng)時間方面的問題,可以用硬件實現(xiàn)。在這種情況下,操作系統(tǒng)功能作為一種資源監(jiān)管,大部分關(guān)鍵時間工作用硬件來完成。這個方法的一個例子是在UART內(nèi)利用一個大的FIFO,以減少至操作系統(tǒng) 的中斷次數(shù)。當(dāng)然,此方法有一定的局限性和復(fù)雜性,但與一個專用的CPU芯片相比,有更多的靈活性。
另一方案:使用可編程邏輯
FPGA為系統(tǒng)設(shè)計者提供了一系列的權(quán)衡選擇,這是現(xiàn)有的ASIC/ASSP解決方案無法提供的。正如圖1所示 ,當(dāng)一個處理器集成至FPGA時,設(shè)計者可以各種方式實現(xiàn)功能例如:
* 軟件控制硬件
* 僅軟件
* 軟件功能,控制或數(shù)據(jù)流,通過硬件加速(SW/HW)
* 僅硬件,與CPU沒有直接的互動,但是硬件可與任何功能進(jìn)行交互。
圖1 FPGA中的多種選擇
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)fpga相關(guān)文章:fpga是什么
linux相關(guān)文章:linux教程
p2p機(jī)相關(guān)文章:p2p原理
評論