利用Xilinx Platform Studio工具套件,快速、便捷地生成 BSP
具有嵌入式處理器的 平臺 FPGA 為您提供前所未有的靈活性、集成度和高性能。目前,在單個可編程邏輯設備中開發(fā)極其復雜且高度定制化的嵌入式系統(tǒng)已成為可能。
隨著芯片性能的不斷增加,如何使設計方法始終高效、多產,成為人們面臨的主要挑戰(zhàn)。嵌入式系統(tǒng)開發(fā)的關鍵活動之一是開發(fā)板支持包 (BSP)。利用 BSP,可以使嵌入式軟件應用程序成功地初始化,并與連接到處理器的硬件資源進行通信。典型的 BSP 組件包括引導代碼、設備驅動程序代碼和初始化代碼。
創(chuàng)建 BSP 是一個冗長而繁復的過程,并且在微處理器復合體(處理器和相關的外設)每次有所變更時都得再次進行。對 FPGA 而言,迅速的設計循環(huán)加上平臺的靈活性,會使得管理 BSP 的任務更為艱巨(圖 1)。這一情況迫使人們尋找更有效地管理 BSP 的方法。
圖 1 – 平臺 FPGA 靈活性要求軟件 BSP 生成過程具有高效率
本文將描述 Xilinx 提供的一種創(chuàng)新解決方案,它可以簡化 RTOS BSP 的創(chuàng)建和管理。我們選擇了 WindRiver VxWorks 流程來闡明這一概念,但其蘊含的技術是通用的,同樣適用于支持 Xilinx® 處理器的所有其他操作系統(tǒng)解決方案。
Xilinx 設計流程和軟件 BSP 生成
Xilinx 處理器的設計包含硬件平臺裝配流程和嵌入式軟件開發(fā)流程。這些流程都通過 Xilinx Platform Studio (XPS) 工具加以管理,該工具屬于 Xilinx 嵌入式開發(fā)套件 (EDK) 的一部分。
設計通常始于在 XPS 中裝配與配置處理器及與其相連接的配件。定義好硬件平臺后,就可以配置系統(tǒng)的軟件參數了。Platform Studio 的一個主要特點是,它可以根據您對處理器、外設和嵌入式操作系統(tǒng)的選擇和配置來定制 BSP。系統(tǒng)通過硬件設計的疊代改變而發(fā)展,同時,BSP 隨著平臺而發(fā)展。
自動生成的 BSP 可賦予嵌入式系統(tǒng)設計者以下能力:
• 自動創(chuàng)建與硬件設計完全匹配的 BSP
• 使用預認證的組件消除 BSP 設計錯誤
• 立即啟動應用軟件開發(fā),增加設計者的產量
創(chuàng)建用于 WindRiver VxWorks 的 BSP
Platform Studio 可生成用于 Xilinx Virtex™-II Pro 和 Virtex-4 FPGA 中的 PowerPC™ 405 處理器及其外設的定制 Tornado 2.0.x (VxWorks 5.4) 或 Tornado 2.2.x (VxWorks 5.5) BSP。生成的 BSP 包含系統(tǒng)必需的所有支持軟件,包括:引導代碼、設備驅動程序和 VxWorks 初始化。
在 Platform Studio 定義完具有 PowerPC 405 處理器的硬件系統(tǒng)后,只需遵循以下三個步驟即可生成用于 VxWorks 的 BSP:
1. 使用軟件設置對話框(見圖 2)選擇要為系統(tǒng)使用的操作系統(tǒng)。Platform Studio 用戶可選擇 vxworks5_4 或 vxworks5_5 作為其目標操作系統(tǒng)。
圖 2 – 設置選擇嵌入式操作系統(tǒng)
2. 選擇了操作系統(tǒng)后,可轉到資料庫/操作系統(tǒng)參數標簽(如圖 3 所示),根據定制硬件調整 Tornado BSP。您可以選擇系統(tǒng)中的任意 UART 器件作為標準 I/O 器件(標準輸入和標準輸出)。這將使該設備被用作 VxWorks 控制臺器件。
圖 3 – 配置具體操作系統(tǒng)的參數
您還可以選擇將哪些外設作為連接外設,將哪些器件緊密集成到 VxWorks 操作系統(tǒng)。例如,Xilinx 10/100 以太網 MAC 可以集成到 VxWorks 增強型網絡驅動(Enhanced
Network Driver 即 END)接口?;蛘撸槐貙⒁蕴W器件連接到 END 接口,而從 VxWorks 應用程序直接訪問它。
3. 選擇“工具 > 生成資料庫”和 BSP 菜單選項,生成 Tornado BSP。生成的 BSP 與傳統(tǒng)的 Tornado BSP 相似,位于 ppc405_0/bsp_ppc405_0 下的 Platform Studio 項目目錄中(見圖 4)。
圖 4 – 生成的 BSP 目錄結構
注:ppc405_0 為硬件設計中 PowerPC 405 處理器的實例名。Platform Studio 用戶可指定其他實例名,此時,BSP 的子目錄名稱會匹配處理器實例名。
通過 Platform Studio 生成的 Tornado BSP 具有一個 Makefile 文件,如果希望使用 Diab 編譯器而不是 Gnu 編譯器,可在命令行修改此文件。
Tornado BSP 完全獨立,并可以傳輸到其他目錄位置,如 BSP 的標準 Tornado 安裝目錄:target/config。
定制 BSP 詳細信息
由 XPS 生成的用于 VxWorks 的 BSP 與大多數其他 Tornado BSP 相似,只是 Xilinx 設備驅動程序代碼的位置有所不同。與 Tornado 相關的現(xiàn)成的設備驅動程序代碼通常位于 Tornado 分布目錄的 target/src/drv 目錄中,而由 Platform Studio 自動生成的 BSP 的設備驅動器代碼位于 BSP 目錄本身中。
圖 5 – Tornado 2.x 項目:VxWorks 標簽
基于 FPGA 的嵌入系統(tǒng)之動態(tài)特性是造成此微小差別的原因。因為基于 FPGA 的嵌入系統(tǒng)可以用新的或更改后的 IP 重新編程,設備驅動程序可以改變,因此就需要對設備驅動程序源文件進行更為動態(tài)的放置。表 4 為自動生成的 BSP 的目錄樹。Xilinx 設備驅動程序放置在 BSP 子目錄 ppc405_0_drv_csp/xsrc 中。
Xilinx 設備驅動程序在 C 盤中執(zhí)行并分布在數個源文件中,這點不同于傳統(tǒng)的、通常由單個 C header 和執(zhí)行文件組成的 VxWorks 驅動程序。此外,對于設備驅動程序,既有獨立于操作系統(tǒng)的執(zhí)行,又有可選的依賴于操作系統(tǒng)的執(zhí)行。
驅動程序的操作系統(tǒng)獨立部分應同任何操作系統(tǒng)或處理器一起使用。它提供了一種應用程序接口 (API),能提取基礎硬件的功能。驅動程序的操作系統(tǒng)附屬部分對驅動程序進行調整,使其得以在 VxWorks 之類的操作系統(tǒng)下使用。例子有串行端口使用的 Serial IO 驅動程序和以太網控制器使用的 END 驅動程序。只有能被緊密集成到標準操作系統(tǒng)接口的驅動程序才要求操作系統(tǒng)附屬驅動程序。
Xilinx 驅動程序源文件加入 VxWorks 映像構件的方式同其他 BSP 文件加入的方式相同。針對每個驅動程序,在 BSP 目錄中都有一個名為 ppc405_0_drv_<driver_version>.c 的文件。此文件包括針對給定設備的驅動程序源文件 (*.c),并自動由 BSP makefile 編譯。
該過程與 VxWorks sysLib.c 針對 Wind River-supplied 驅動程序納入源文件的過程相似。Xilinx 驅動程序文件不像其余驅動程序一樣單純納入 sysLib.c 的原因,在于命名空間的沖突和可維護性問題。如果所有的 Xilinx 驅動程序文件都是單個編譯單元的一部分,那么靜態(tài)功能和數據就不再處于保密狀態(tài)了。這會對設備驅動程序產生限制,也會抵消其操作系統(tǒng)獨立性。
表 6 – Tornado 2.x 項目:文件標簽
與 Tornado IDE 集成
自動生成的 BSP 被集成到 Tornado IDE(項目設備)。BSP 可從命令行使用 Tornado make 工具編譯,或從 Tornado Project 編譯。生成 BSP 后,只需在命令行鍵入 make vxWorks 來編譯可啟動的 RAM 映像。這是假定此前已設置了 Tornado 環(huán)境(此設置可以在 Windows 操作平臺上在命令行使用 host/x86-win32/bin/torVars.bat 來完成)。如果您使用的是 Tornado Project 設備,可以在新生成的 BSP 的基礎上創(chuàng)建一個項目,然后使用通過 IDE 提供的構件環(huán)境編譯此 BSP。
Tornado 2.2.x 不僅支持 gnu 編譯器,還支持 diab 編譯器。Platform Studio 創(chuàng)建的 Tornado BSP 有一個 makefile,如果您想使用 diab 編譯器而不是 gnu 編譯器,則可以在命令行修改此 makefile。尋找稱為“工具”的生成變量,將值設置到“diab”而不是“gnu”。如果使用 Tornado Project 工具,項目最初創(chuàng)建時,可選擇所需的編譯器。
文件 50ppc405_0.cdf 位于 BSP 目錄下,并在創(chuàng)建 BSP 的過程中加以更改。此文件將設備驅動程序融入了 Tornado IDE 菜單系統(tǒng)。驅動程序在“硬件 > 外圍設備”子文件夾處與 BSP 結合在一起。在其下面是單獨的設備驅動程序文件夾。圖 5 顯示一個帶有 Xilinx 設備驅動程序的菜單。
Tornado Project Facility 的“文件”標簽也會顯示用來將 Xilinx 設備驅動程序與 Tornado 構建過程結合在一起的文件數量。這些文件由 Platform Studio 自動創(chuàng)建,您只需要知道其存在就行了。圖 6 顯示一個驅動程序構建文件的示例。
一些常用設備與操作系統(tǒng)緊密結合,而其他設備可通過直接使用設備驅動程序從應用程序上訪問。與 VxWorks 緊密結合的設備驅動程序包括:
• 10/100 以太網 MAC
• 10/100 以太網 Lite MAC
• 1 Gigabit 以太網 MAC
• 16550/16450 UART
• UART Lite
• 中斷控制器
• System ACE™ 技術
• PCIe
所有其他設備及相關的設備驅動程序并未緊密集成到 VxWorks 接口,而只是與其松散集成。對這些設備的訪問可通過從用戶應用程序直接訪問相關設備驅動程序來進行。
結束語
隨著基于嵌入式處理器的 FPGA 日益受人喜愛并得到廣泛應用,能將硬件和軟件流程有效組織在一起的工具解決方案應運而生,對幫助設計者工作效率跟上芯片的進展起到了關鍵作用。
Xilinx 用戶一直非常認可 Platform Studio 及其與 VxWorks 5.4 and 5.5. 的集成。Xilinx 將對 Wind River 流程的開發(fā)予以不懈支持,此流程不久就會包括對 VxWorks 6.0 和 Workbench IDE 的支持。
Microprocessor Library Definition (MLD)
圖 7 – MLD 流程結構
啟用動態(tài)和定制 BSP 生成的技術是以稱為 Microprocessor Library Definition (MLD) 的 Xilinx 專有格式為基礎的。該格式向第三方供應商提供一個應用于 Xilinx Platform Studio 的插入接口,以啟動定制庫和針對特定操作系統(tǒng)的 BSP 生成(查看圖 7)。MLD 接口由第三方公司為特定的流程編寫的典型程序。它啟用了下列附加功能:
• 啟用了定制設計規(guī)則檢查功能
• 提供了為目標操作系統(tǒng)環(huán)境定制設備驅動程序的功能
• 提供了在針對操作系統(tǒng)工具鏈的格式和文件夾結構中定制創(chuàng)建 BSP 的功能
• 提供了為所使用的硬件系統(tǒng)定制一個 OS/kernel 的功能
MLD 接口是一個已發(fā)布且得到公認的基于 ASCII 的標準。每個實時操作系統(tǒng) (RTOS) 流程均具備各自獨特的 MLD 文件集。一個 MLD 文件集包括以下兩個文件:
• 一個數據定義 (.mld) 文件。該文件通過 Platform Studio 設置的一組參數來定義資料庫或操作系統(tǒng)。這些參數值保存在 Platform Studio 內部數據庫中,在輸出數據期間供腳本文件使用。
• 一個 .tcl 腳本文件。此文件通過 XPS 調用來創(chuàng)建定制 BSP。該文件包含一組可以訪問整個數據庫的程序,因此可以按照流程要求撰寫定制輸出格式。
評論