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