新聞中心

生成有效的板支持包

作者: 時(shí)間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

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

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

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

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

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

本文引用地址:http://m.butianyuan.cn/article/201706/348578.htm

平臺(tái)

OPB 仲裁器

低速外設(shè)

定制外設(shè)

PLB-OPB 橋接

不同于

PLB 仲裁器

存儲(chǔ)控制器

高速外設(shè)

固定外設(shè)

固定地址映射

固定 BSP

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

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

需要?jiǎng)?chuàng)建高效的定制 BSP

圖 1 – 平臺(tái) FPGA 靈活性要求軟件 BSP 生成過程具有高效率。

設(shè)計(jì)流程和軟件 BSP 生成

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

設(shè)計(jì)通常始于在 XPS 中裝配與配置處理器及與其相連接的配件。定義好硬件平臺(tái)后,就可以配置系統(tǒng)的軟件參數(shù)了。
Platform Studio 的一個(gè)主要特點(diǎn)是,它可以根據(jù)您對(duì)處理器、外設(shè)和嵌入式操作系統(tǒng)的選擇和配置來定制 BSP。系統(tǒng)通過硬件設(shè)計(jì)的疊代改變而發(fā)展,同時(shí),BSP 隨著平臺(tái)而發(fā)展。

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

  • 自動(dòng)創(chuàng)建與硬件設(shè)計(jì)完全匹配的 BSP
  • 使用預(yù)認(rèn)證的組件消除 BSP 設(shè)計(jì)錯(cuò)誤
  • 立即啟動(dòng)應(yīng)用軟件開發(fā),增加設(shè)計(jì)者的產(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ū)動(dòng)程序和 VxWorks 初始化。

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

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

注:ppc405_0 為硬件設(shè)計(jì)中 PowerPC 405 處理器的實(shí)例名。Platform Studio 用戶可指定其他實(shí)例名,此時(shí),BSP 的子目錄名稱會(huì)匹配處理器實(shí)例名。

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

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

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

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

Tornado BSP 完全獨(dú)立,并可以傳輸?shù)狡渌夸浳恢?,?BSP 的標(biāo)準(zhǔn) Tornado 安裝目錄:target/config。

定制 BSP 詳細(xì)信息

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

圖 5 – Tornado 2.x 項(xiàng)目:VxWorks 標(biāo)簽

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

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

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

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

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

表 6 – Tornado 2.x 項(xiàng)目:文件標(biāo)簽

與 Tornado IDE 集成

自動(dòng)生成的 BSP 被集成到 Tornado IDE(項(xiàng)目設(shè)備)。BSP 可從命令行使用 Tornado make 工具編譯,或從 Tornado Project 編譯。生成 BSP 后,只需在命令行鍵入 make vxWorks 來編譯可啟動(dòng)的 RAM 映像。這是假定此前已設(shè)置了 Tornado 環(huán)境(此設(shè)置可以在 Windows 操作平臺(tái)上在命令行使用 host/x86-win32/bin/torVars.bat 來完成)。如果您使用的是 Tornado Project 設(shè)備,可以在新生成的 BSP 的基礎(chǔ)上創(chuàng)建一個(gè)項(xiàng)目,然后使用通過 IDE 提供的構(gòu)件環(huán)境編譯此 BSP。
Tornado 2.2.x 不僅支持 gnu 編譯器,還支持 diab 編譯器。Platform Studio 創(chuàng)建的 Tornado BSP 有一個(gè) makefile,如果您想使用 diab 編譯器而不是 gnu 編譯器,則可以在命令行修改此 makefile。尋找稱為“工具”的生成變量,將值設(shè)置到“diab”而不是“gnu”。如果使用 Tornado Project 工具,項(xiàng)目最初創(chuàng)建時(shí),可選擇所需的編譯器。

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

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

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

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

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

結(jié)束語(yǔ)

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

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

Microprocessor Library Definition ()

啟用動(dòng)態(tài)和定制 BSP 生成的技術(shù)是以稱為 Microprocessor Library Definition () 的 Xilinx 專有格式為基礎(chǔ)的。該格式向第三方供應(yīng)商提供一個(gè)應(yīng)用于 Xilinx Platform Studio 的插入接口,以啟動(dòng)定制庫(kù)和針對(duì)特定操作系統(tǒng)的 BSP 生成(查看圖 7)。 接口由第三方公司為特定的流程編寫的典型程序。它啟用了下列附加功能:

  • 啟用了定制設(shè)計(jì)規(guī)則檢查功能
  • 提供了為目標(biāo)操作系統(tǒng)環(huán)境定制設(shè)備驅(qū)動(dòng)程序的功能
  • 提供了在針對(duì)操作系統(tǒng)工具鏈的格式和文件夾結(jié)構(gòu)中定制創(chuàng)建 BSP 的功能
  • 提供了為所使用的硬件系統(tǒng)定制一個(gè) OS/kernel 的功能

MLD 接口是一個(gè)已發(fā)布且得到公認(rèn)的基于 ASCII 的標(biāo)準(zhǔn)。每個(gè)實(shí)時(shí)操作系統(tǒng) (RTOS) 流程均具備各自獨(dú)特的 MLD 文件集。一個(gè) MLD 文件集包括以下兩個(gè)文件:

  • 一個(gè)數(shù)據(jù)定義 (.mld) 文件。該文件通過 Platform Studio 設(shè)置的一組參數(shù)來定義資料庫(kù)或操作系統(tǒng)。這些參數(shù)值保存在 Platform Studio 內(nèi)部數(shù)據(jù)庫(kù)中,在輸出數(shù)據(jù)期間供腳本文件使用。
  • 一個(gè) .tcl 腳本文件。此文件通過 XPS 調(diào)用來創(chuàng)建定制 BSP。該文件包含一組可以訪問整個(gè)數(shù)據(jù)庫(kù)的程序,因此可以按照流程要求撰寫定制輸出格式。

HW 設(shè)計(jì)

操作系統(tǒng)選擇

MLD 文件

.MLD .TCL

XPS

HW 網(wǎng)表

RTOS BSP

轉(zhuǎn)到 ISE

轉(zhuǎn)到 RTOS IDE

圖 7 – MLD 流程結(jié)構(gòu)

文檔對(duì) MLD 語(yǔ)法進(jìn)行了詳述(請(qǐng)通過 www.xilinx.com/cn/ise/embedded/ psf_rm.pdf查閱“平臺(tái)規(guī)范格式參考手冊(cè)”)。您還可以在位于 sw/lib/bsp 下的 安裝指南中查看 MLD 示例。

一旦為特定 RTOS 流程創(chuàng)建了 MLD 文件,就需要將這些文件安裝到特定路徑中,以便 Xilinx Platform Studio 在下一次調(diào)用 RTOS 時(shí)能找到它們。XPS 對(duì)話框中的特定 RTOS 菜單選擇此時(shí)會(huì)變?yōu)榛钴S狀態(tài) (Project > SW Platform Settings > Software Platform > OS)。

目前,可以在 XPS 中使用以下合作伙伴的 MLD 文件:

  • Wind River (VxWorks 5.4, 5.5)(包括于 Xilinx Platform Studio 中)
  • MontaVista (Linux)(包括在 Xilinx Platform Studio 中)
  • Mentor Accelerated Technologies (Nucleus)(可通過 www.xilinx.com/cn/ise/embedded/mld/ 下載)
  • GreenHills Software (Integrity)(可通過 www.xilinx.com/cn/ise/embedded/mld/ 下載)
  • Micrium (µc/OS-II)(可通過 www.xilinx.com/cn/ise/embedded/mld/ 下載)
  • µcLinux(可通過 www.xilinx.com/cn/ise/embedded/mld/ 下載)。

作者:Rick Moleres 軟件 IP 經(jīng)理 Xilinx, Inc. @xilinx.com">rick.moleres@xilinx.com

Milan Saini 技術(shù)營(yíng)銷經(jīng)理 Xilinx, Inc. @xilinx.com">milan.saini@xilinx.com



關(guān)鍵詞: Xilinx BSP Mac FPGA EDK UART MLD

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉