《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 利用XPS工具快速生成Virtex FPGA的板支持包

利用XPS工具快速生成Virtex FPGA的板支持包

2012-03-08
作者:Xilinx
關(guān)鍵詞: 開發(fā)工具 Virtex FPGA XPS Vxworks

        具有嵌入式處理器的 平臺 FPGA 為您提供前所未有的靈活性,、集成度和高性能。目前,,在單個可編程邏輯設(shè)備中開發(fā)極其復(fù)雜且高度定制化的嵌入式系統(tǒng)已成為可能,。

        隨著芯片性能的不斷增加,,如何使設(shè)計方法始終高效,、多產(chǎn),,成為人們面臨的主要挑戰(zhàn),。嵌入式系統(tǒng)開發(fā)的關(guān)鍵活動之一是開發(fā)板支持包 (BSP),。利用 BSP,,可以使嵌入式軟件應(yīng)用程序成功地初始化,并與連接到處理器的硬件資源進行通信,。典型的 BSP 組件包括引導(dǎo)代碼,、設(shè)備驅(qū)動程序代碼和初始化代碼。

        創(chuàng)建 BSP 是一個冗長而繁復(fù)的過程,,并且在微處理器復(fù)合體(處理器和相關(guān)的外設(shè))每次有所變更時都得再次進行,。對 FPGA 而言,迅速的設(shè)計循環(huán)加上平臺的靈活性,會使得管理 BSP 的任務(wù)更為艱巨(圖 1),。這一情況迫使人們尋找更有效地管理 BSP 的方法,。

        本文將描述 Xilinx 提供的一種創(chuàng)新解決方案,它可以簡化 RTOS BSP 的創(chuàng)建和管理,。我們選擇了 WindRiver VxWorks 流程來闡明這一概念,,但其蘊含的技術(shù)是通用的,同樣適用于支持 Xilinx® 處理器的所有其他操作系統(tǒng)解決方案,。

傳統(tǒng)嵌入式平臺

 

平臺 FPGA

 

 

 

OPB 仲裁器

低速外設(shè)

 

 

定制外設(shè)

PLB-OPB 橋接

 

 

不同于

 

PLB 仲裁器

 

 

 

存儲控制器

高速外設(shè)

 

固定外設(shè)

固定地址映射

固定 BSP

 

基于設(shè)計的外設(shè)

每個板都是獨特的定制產(chǎn)品

需要創(chuàng)建高效的定制 BSP

                                    圖 1 – 平臺 FPGA 靈活性要求軟件 BSP 生成過程具有高效率
Xilinx 設(shè)計流程和軟件 BSP 生成

        Xilinx 處理器的設(shè)計包含硬件平臺裝配流程和嵌入式軟件開發(fā)流程,。這些流程都通過 Xilinx Platform Studio (XPS) 工具加以管理,該工具屬于 Xilinx 嵌入式開發(fā)套件 (EDK) 的一部分,。

        設(shè)計通常始于在 XPS 中裝配與配置處理器及與其相連接的配件,。定義好硬件平臺后,就可以配置系統(tǒng)的軟件參數(shù)了,。

        Platform Studio 的一個主要特點是,,它可以根據(jù)您對處理器、外設(shè)和嵌入式操作系統(tǒng)的選擇和配置來定制 BSP,。系統(tǒng)通過硬件設(shè)計的疊代改變而發(fā)展,,同時,BSP 隨著平臺而發(fā)展,。

        自動生成的 BSP 可賦予嵌入式系統(tǒng)設(shè)計者以下能力: 

  •  自動創(chuàng)建與硬件設(shè)計完全匹配的 BSP
  • 使用預(yù)認證的組件消除 BSP 設(shè)計錯誤
  • 立即啟動應(yīng)用軟件開發(fā),增加設(shè)計者的產(chǎn)量

創(chuàng)建用于 WindRiver VxWorks 的 BSP

        Platform Studio 可生成用于 Xilinx Virtex™-II Pro 和 Virtex-4 FPGA 中的 PowerPC™ 405 處理器及其外設(shè)的定制 Tornado 2.0.x (VxWorks 5.4) 或 Tornado 2.2.x (VxWorks 5.5) BSP,。生成的 BSP 包含系統(tǒng)必需的所有支持軟件,,包括:引導(dǎo)代碼、設(shè)備驅(qū)動程序和 VxWorks 初始化,。

        在 Platform Studio 定義完具有 PowerPC 405 處理器的硬件系統(tǒng)后,,只需遵循以下三個步驟即可生成用于 VxWorks 的 BSP:

  • 使用軟件設(shè)置對話框(見圖 2)選擇要為系統(tǒng)使用的操作系統(tǒng)。Platform Studio 用戶可選擇 vxworks5_4 或 vxworks5_5 作為其目標操作系統(tǒng),。
  • 選擇了操作系統(tǒng)后,,可轉(zhuǎn)到資料庫/操作系統(tǒng)參數(shù)標簽(如圖 3 所示),根據(jù)定制硬件調(diào)整 Tornado BSP,。您可以選擇系統(tǒng)中的任意 UART 器件作為標準 I/O 器件(標準輸入和標準輸出),。這將使該設(shè)備被用作 VxWorks 控制臺器件。
    您還可以選擇將哪些外設(shè)作為連接外設(shè),,將哪些器件緊密集成到 VxWorks 操作系統(tǒng),。例如,Xilinx 10/100 以太網(wǎng) MAC 可以集成到 VxWorks 增強型網(wǎng)絡(luò)驅(qū)動(Enhanced Network Driver 即 END)接口,?;蛘撸槐貙⒁蕴W(wǎng)器件連接到 END 接口,而從 VxWorks 應(yīng)用程序直接訪問它,。
  • 選擇“工具 > 生成資料庫”和 BSP 菜單選項,,生成 Tornado BSP。生成的 BSP 與傳統(tǒng)的 Tornado BSP 相似,,位于 ppc405_0/bsp_ppc405_0 下的 Platform Studio 項目目錄中(見圖 4),。  

    圖 2 – 設(shè)置選擇嵌入式操作系統(tǒng)

    圖 3 – 配置具體操作系統(tǒng)的參數(shù)

 

圖 4 – 生成的 BSP 目錄結(jié)構(gòu)


        通過 Platform Studio 生成的 Tornado BSP 具有一個 Makefile 文件,如果希望使用 Diab 編譯器而不是 Gnu 編譯器,,可在命令行修改此文件,。

        Tornado BSP 完全獨立,并可以傳輸?shù)狡渌夸浳恢?,?BSP 的標準 Tornado 安裝目錄:target/config,。

定制 BSP 詳細信息

        由 XPS 生成的用于 VxWorks 的 BSP 與大多數(shù)其他 Tornado BSP 相似,只是 Xilinx 設(shè)備驅(qū)動程序代碼的位置有所不同,。與 Tornado 相關(guān)的現(xiàn)成的設(shè)備驅(qū)動程序代碼通常位于 Tornado 分布目錄的 target/src/drv 目錄中,,而由 Platform Studio 自動生成的 BSP 的設(shè)備驅(qū)動器代碼位于 BSP 目錄本身中。

圖 5 – Tornado 2.x 項目:VxWorks 標簽

        基于 FPGA 的嵌入系統(tǒng)之動態(tài)特性是造成此微小差別的原因,。因為基于 FPGA 的嵌入系統(tǒng)可以用新的或更改后的 IP 重新編程,,設(shè)備驅(qū)動程序可以改變,因此就需要對設(shè)備驅(qū)動程序源文件進行更為動態(tài)的放置,。表 4 為自動生成的 BSP 的目錄樹,。Xilinx 設(shè)備驅(qū)動程序放置在 BSP 子目錄 ppc405_0_drv_csp/xsrc 中。

        Xilinx 設(shè)備驅(qū)動程序在 C 盤中執(zhí)行并分布在數(shù)個源文件中,,這點不同于傳統(tǒng)的,、通常由單個 C header 和執(zhí)行文件組成的 VxWorks 驅(qū)動程序。此外,,對于設(shè)備驅(qū)動程序,,既有獨立于操作系統(tǒng)的執(zhí)行,又有可選的依賴于操作系統(tǒng)的執(zhí)行,。

        驅(qū)動程序的操作系統(tǒng)獨立部分應(yīng)同任何操作系統(tǒng)或處理器一起使用,。它提供了一種應(yīng)用程序接口 (API),能提取基礎(chǔ)硬件的功能,。驅(qū)動程序的操作系統(tǒng)附屬部分對驅(qū)動程序進行調(diào)整,,使其得以在 VxWorks 之類的操作系統(tǒng)下使用。例子有串行端口使用的 Serial IO 驅(qū)動程序和以太網(wǎng)控制器使用的 END 驅(qū)動程序,。只有能被緊密集成到標準操作系統(tǒng)接口的驅(qū)動程序才要求操作系統(tǒng)附屬驅(qū)動程序,。

        Xilinx 驅(qū)動程序源文件加入 VxWorks 映像構(gòu)件的方式同其他 BSP 文件加入的方式相同。針對每個驅(qū)動程序,,在 BSP 目錄中都有一個名為 ppc405_0_drv_.c 的文件,。此文件包括針對給定設(shè)備的驅(qū)動程序源文件 (*.c),,并自動由 BSP makefile 編譯。

        該過程與 VxWorks sysLib.c 針對 Wind River-supplied 驅(qū)動程序納入源文件的過程相似,。Xilinx 驅(qū)動程序文件不像其余驅(qū)動程序一樣單純納入 sysLib.c 的原因,,在于命名空間的沖突和可維護性問題。如果所有的 Xilinx 驅(qū)動程序文件都是單個編譯單元的一部分,,那么靜態(tài)功能和數(shù)據(jù)就不再處于保密狀態(tài)了,。這會對設(shè)備驅(qū)動程序產(chǎn)生限制,也會抵消其操作系統(tǒng)獨立性,。

 

表 6 – Tornado 2.x 項目:文件標簽

與 Tornado IDE 集成

        自動生成的 BSP 被集成到 Tornado IDE(項目設(shè)備),。BSP 可從命令行使用 Tornado make 工具編譯,或從 Tornado Project 編譯,。生成 BSP 后,,只需在命令行鍵入 make vxWorks 來編譯可啟動的 RAM 映像。這是假定此前已設(shè)置了 Tornado 環(huán)境(此設(shè)置可以在 Windows 操作平臺上在命令行使用 host/x86-win32/bin/torVars.bat 來完成),。如果您使用的是 Tornado Project 設(shè)備,,可以在新生成的 BSP 的基礎(chǔ)上創(chuàng)建一個項目,然后使用通過 IDE 提供的構(gòu)件環(huán)境編譯此 BSP,。

        Tornado 2.2.x 不僅支持 gnu 編譯器,,還支持 diab 編譯器。Platform Studio 創(chuàng)建的 Tornado BSP 有一個 makefile,,如果您想使用 diab 編譯器而不是 gnu 編譯器,,則可以在命令行修改此 makefile。尋找稱為“工具”的生成變量,,將值設(shè)置到“diab”而不是“gnu”,。如果使用 Tornado Project 工具,項目最初創(chuàng)建時,,可選擇所需的編譯器。

        文件 50ppc405_0.cdf 位于 BSP 目錄下,,并在創(chuàng)建 BSP 的過程中加以更改,。此文件將設(shè)備驅(qū)動程序融入了 Tornado IDE 菜單系統(tǒng)。驅(qū)動程序在“硬件 > 外圍設(shè)備”子文件夾處與 BSP 結(jié)合在一起,。在其下面是單獨的設(shè)備驅(qū)動程序文件夾,。圖 5 顯示一個帶有 Xilinx 設(shè)備驅(qū)動程序的菜單。

        Tornado Project Facility 的“文件”標簽也會顯示用來將 Xilinx 設(shè)備驅(qū)動程序與 Tornado 構(gòu)建過程結(jié)合在一起的文件數(shù)量,。這些文件由 Platform Studio 自動創(chuàng)建,,您只需要知道其存在就行了。圖 6 顯示一個驅(qū)動程序構(gòu)建文件的示例,。

        一些常用設(shè)備與操作系統(tǒng)緊密結(jié)合,,而其他設(shè)備可通過直接使用設(shè)備驅(qū)動程序從應(yīng)用程序上訪問。與 VxWorks 緊密結(jié)合的設(shè)備驅(qū)動程序包括:

 

  • 10/100 以太網(wǎng) MAC
  • 10/100 以太網(wǎng) Lite MAC
  • 1 Gigabit 以太網(wǎng) MAC 
  •  16550/16450 UART 
  •  UART Lite
  • 中斷控制器
  • System ACE™ 技術(shù)
  • PCIe

        所有其他設(shè)備及相關(guān)的設(shè)備驅(qū)動程序并未緊密集成到 VxWorks 接口,而只是與其松散集成,。對這些設(shè)備的訪問可通過從用戶應(yīng)用程序直接訪問相關(guān)設(shè)備驅(qū)動程序來進行,。

結(jié)束語

        隨著基于嵌入式處理器的 FPGA 日益受人喜愛并得到廣泛應(yīng)用,能將硬件和軟件流程有效組織在一起的工具解決方案應(yīng)運而生,,對幫助設(shè)計者工作效率跟上芯片的進展起到了關(guān)鍵作用,。

        Xilinx 用戶一直非常認可 Platform Studio 及其與 VxWorks 5.4 and 5.5. 的集成。Xilinx 將對 Wind River 流程的開發(fā)予以不懈支持,,此流程不久就會包括對 VxWorks 6.0 和 Workbench IDE 的支持,。

        作者: Rick Moleres 軟件IP經(jīng)理 [email protected]

                      Milan Saini 技術(shù)行銷經(jīng)理 [email protected] 賽靈思公司

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。