為FPGA軟處理器選擇操作系統(tǒng)
在過去幾年中,嵌入式應用中采用的32位處理器平臺的性能和功能得到了極大增強。今天,即使軟處理器,如LatticeMico32提供達到50至100 DMIPS的計算能力。隨著可用資源的性能和功能的增強,提供豐富的功能集和抽象層的操作系統(tǒng)已成為一種可行的可選嵌入式解決方案。UNIX提供了非常豐富的編程環(huán)境,對多處理器的應用有相當?shù)囊?guī)模,以及在網(wǎng)絡的應用方面擁有豐富的歷史。通過文件操作,它提供了一個統(tǒng)一的設備抽象層,使平臺之間的應用可以快速移植。一些UNIX版本也可獲取開放源代碼授權(quán):Linux是最著名的變種,有非常龐大的用戶群體和許多嵌入式應用(如WLAN路由器,打印機,VoIP電話)。Linux系統(tǒng)甚至對不包括MMU (內(nèi)存管理單元)的處理器提供了有限的支持。各種BSD (伯克利軟件分發(fā))版本可能不太為人所知,但它們在許可證上限制較少。
一些實時擴展為Linux提供了在Linux執(zhí)行層的頂部(或者說,下面)的最佳的軟實時層。RT/ Linux、 RTAI和Xenomai是實時擴展的例子。通過多種已知的API從其他的RTOS (在Xenomai,此功能被稱為“skins”),一些實時層輸出其功能 。
Linux系統(tǒng)提供了豐富的應用,可以很容易地集成到一個嵌入式應用程序,如Web服務器,協(xié)議棧,數(shù)據(jù)庫引擎,圖形庫和網(wǎng)絡管理。這些功能可以添加到任何嵌入式應用,而不需要“從草圖”開發(fā)。隨著Linux的先進I/O子系統(tǒng)的出現(xiàn),和全面支持的非易失存儲技術(shù)(從閃存到SATA硬盤) ,甚至可以集成“大”的應用(如在NAS應用中,跟蹤照片的數(shù)據(jù)庫應用)。
廣泛使用的操作系統(tǒng)技術(shù),例如Linux,其中一個最大的好處是在互聯(lián)網(wǎng)上可獲取大量的可用信息,有許多專業(yè)設計公司可以提供專業(yè)服務。雖然源代碼的許可證是免費的,Linux的復雜性和大小會壓垮許多用戶。在這種情況下,專門設計公司,如Theobroma Systems可提供專業(yè)支持,培訓和總承包設計服務。重要的是要記住,“開放源代碼組織”并不能給你提供工業(yè)質(zhì)量的支持,只有有經(jīng)驗的工程人員才行。
使用FPGA解決方案時,有與大型操作系統(tǒng)如Linux相關的性能和響應時間方面的問題,可以用硬件實現(xiàn)。在這種情況下,操作系統(tǒng)功能作為一種資源監(jiān)管,大部分關鍵時間工作用硬件來完成。這個方法的一個例子是在UART內(nèi)利用一個大的FIFO,以減少至操作系統(tǒng) 的中斷次數(shù)。當然,此方法有一定的局限性和復雜性,但與一個專用的CPU芯片相比,有更多的靈活性。
另一方案:使用可編程邏輯
FPGA為系統(tǒng)設計者提供了一系列的權(quán)衡選擇,這是現(xiàn)有的ASIC/ASSP解決方案無法提供的。正如圖1所示 ,當一個處理器集成至FPGA時,設計者可以各種方式實現(xiàn)功能例如:
* 軟件控制硬件
* 僅軟件
* 軟件功能,控制或數(shù)據(jù)流,通過硬件加速(SW/HW)
* 僅硬件,與CPU沒有直接的互動,但是硬件可與任何功能進行交互。
圖1 FPGA中的多種選擇
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)fpga相關文章:fpga是什么
linux相關文章:linux教程
p2p機相關文章:p2p原理
評論