<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 利用Xilinx Platform Studio工具套件,快速、便捷地生成 BSP

利用Xilinx Platform Studio工具套件,快速、便捷地生成 BSP

——
作者:Rick Moleres 時(shí)間:2007-02-06 來(lái)源:電子產(chǎn)品世界 收藏

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

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

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

圖 1 – 平臺 靈活性要求軟件 BSP 生成過(guò)程具有高效率 

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

Xilinx 設計流程和軟件 BSP 生成 

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

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

自動(dòng)生成的 BSP 可賦予設計者以下能力:
•    自動(dòng)創(chuàng )建與硬件設計完全匹配的 BSP
•    使用預認證的組件消除 BSP 設計錯誤
•    立即啟動(dòng)應用軟件開(kāi)發(fā),增加設計者的產(chǎn)量

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

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

在 Platform Studio 定義完具有  405 處理器的硬件系統后,只需遵循以下三個(gè)步驟即可生成用于 VxWorks 的 BSP: 
1. 使用軟件設置對話(huà)框(見(jiàn)圖 2)選擇要為系統使用的操作系統。Platform Studio 用戶(hù)可選擇 vxworks5_4 或 vxworks5_5 作為其目標操作系統。 

圖 2 – 設置選擇嵌入式操作系統

2. 選擇了操作系統后,可轉到資料庫/操作系統參數標簽(如圖 3 所示),根據定制硬件調整 Tornado BSP。您可以選擇系統中的任意 UART 器件作為標準 I/O 器件(標準輸入和標準輸出)。這將使該設備被用作 VxWorks 控制臺器件。

圖 3 – 配置具體操作系統的參數

您還可以選擇將哪些外設作為連接外設,將哪些器件緊密集成到 VxWorks 操作系統。例如,Xilinx 10/100 以太網(wǎng) MAC 可以集成到 VxWorks 增強型網(wǎng)絡(luò )驅動(dòng)(Enhanced
Network Driver 即 END)接口?;蛘?,不必將以太網(wǎng)器件連接到 END 接口,而從 VxWorks 應用程序直接訪(fǎng)問(wèn)它。 

3. 選擇“工具 > 生成資料庫”和 BSP 菜單選項,生成 Tornado BSP。生成的 BSP 與傳統的 Tornado BSP 相似,位于 ppc405_0/bsp_ppc405_0 下的 Platform Studio 項目目錄中(見(jiàn)圖 4)。

圖 4 – 生成的 BSP 目錄結構

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

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

Tornado BSP 完全獨立,并可以傳輸到其他目錄位置,如 BSP 的標準 Tornado 安裝目錄:target/config。

定制 BSP 詳細信息 

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

 

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

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

Xilinx 設備驅動(dòng)程序在 C 盤(pán)中執行并分布在數個(gè)源文件中,這點(diǎn)不同于傳統的、通常由單個(gè) C header 和執行文件組成的 VxWorks 驅動(dòng)程序。此外,對于設備驅動(dòng)程序,既有獨立于操作系統的執行,又有可選的依賴(lài)于操作系統的執行。
 
驅動(dòng)程序的操作系統獨立部分應同任何操作系統或處理器一起使用。它提供了一種應用程序接口 (API),能提取基礎硬件的功能。驅動(dòng)程序的操作系統附屬部分對驅動(dòng)程序進(jìn)行調整,使其得以在 VxWorks 之類(lèi)的操作系統下使用。例子有串行端口使用的 Serial IO 驅動(dòng)程序和以太網(wǎng)控制器使用的 END 驅動(dòng)程序。只有能被緊密集成到標準操作系統接口的驅動(dòng)程序才要求操作系統附屬驅動(dòng)程序。
 
Xilinx 驅動(dòng)程序源文件加入 VxWorks 映像構件的方式同其他 BSP 文件加入的方式相同。針對每個(gè)驅動(dòng)程序,在 BSP 目錄中都有一個(gè)名為 ppc405_0_drv_<driver_version>.c 的文件。此文件包括針對給定設備的驅動(dòng)程序源文件 (*.c),并自動(dòng)由 BSP makefile 編譯。 

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

 

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

與 Tornado IDE 集成 

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

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

文件 50ppc405_0.cdf 位于 BSP 目錄下,并在創(chuàng )建 BSP 的過(guò)程中加以更改。此文件將設備驅動(dòng)程序融入了 Tornado IDE 菜單系統。驅動(dòng)程序在“硬件 > 外圍設備”子文件夾處與 BSP 結合在一起。在其下面是單獨的設備驅動(dòng)程序文件夾。圖 5 顯示一個(gè)帶有 Xilinx 設備驅動(dòng)程序的菜單。
 
Tornado Project Facility 的“文件”標簽也會(huì )顯示用來(lái)將 Xilinx 設備驅動(dòng)程序與 Tornado 構建過(guò)程結合在一起的文件數量。這些文件由 Platform Studio 自動(dòng)創(chuàng )建,您只需要知道其存在就行了。圖 6 顯示一個(gè)驅動(dòng)程序構建文件的示例。
 
一些常用設備與操作系統緊密結合,而其他設備可通過(guò)直接使用設備驅動(dòng)程序從應用程序上訪(fǎng)問(wèn)。與 VxWorks 緊密結合的設備驅動(dòng)程序包括:
•    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 

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

結束語(yǔ) 

隨著(zhù)基于嵌入式處理器的 FPGA 日益受人喜愛(ài)并得到廣泛應用,能將硬件和軟件流程有效組織在一起的工具解決方案應運而生,對幫助設計者工作效率跟上芯片的進(jìn)展起到了關(guān)鍵作用。
 
Xilinx 用戶(hù)一直非常認可 Platform Studio 及其與 VxWorks 5.4 and 5.5. 的集成。Xilinx 將對 Wind River 流程的開(kāi)發(fā)予以不懈支持,此流程不久就會(huì )包括對 VxWorks 6.0 和  Workbench IDE 的支持。

Microprocessor Library Definition (MLD)

圖 7 – MLD 流程結構

啟用動(dòng)態(tài)和定制 BSP 生成的技術(shù)是以稱(chēng)為 Microprocessor Library Definition (MLD) 的 Xilinx 專(zhuān)有格式為基礎的。該格式向第三方供應商提供一個(gè)應用于 Xilinx Platform Studio 的插入接口,以啟動(dòng)定制庫和針對特定操作系統的 BSP 生成(查看圖 7)。MLD 接口由第三方公司為特定的流程編寫(xiě)的典型程序。它啟用了下列附加功能: 
•    啟用了定制設計規則檢查功能 
•    提供了為目標操作系統環(huán)境定制設備驅動(dòng)程序的功能 
•    提供了在針對操作系統工具鏈的格式和文件夾結構中定制創(chuàng )建 BSP 的功能 
•    提供了為所使用的硬件系統定制一個(gè) OS/kernel 的功能 

MLD 接口是一個(gè)已發(fā)布且得到公認的基于 ASCII 的標準。每個(gè)實(shí)時(shí)操作系統 (RTOS) 流程均具備各自獨特的 MLD 文件集。一個(gè) MLD 文件集包括以下兩個(gè)文件: 
•    一個(gè)數據定義 (.mld) 文件。該文件通過(guò) Platform Studio 設置的一組參數來(lái)定義資料庫或操作系統。這些參數值保存在 Platform Studio 內部數據庫中,在輸出數據期間供腳本文件使用。 
•    一個(gè) .tcl 腳本文件。此文件通過(guò) XPS 調用來(lái)創(chuàng )建定制 BSP。該文件包含一組可以訪(fǎng)問(wèn)整個(gè)數據庫的程序,因此可以按照流程要求撰寫(xiě)定制輸出格式。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>