以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- VxWorks BSP開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=37) ---- Tornado BSP Developer's Kit for VxWorks User's Guide (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=37&id=1939) |
-- 作者:wangxinxin -- 發布時間:2010-12-1 10:40:30 -- Tornado BSP Developer's Kit for VxWorks User's Guide 1 簡介VxWorks的一個優勢就是它為應用代碼提供了高度的架構和硬件獨立性。這種可移植性得益于VxWorks的模塊化設計, 而這種模塊化設計將所有硬件相關的功能函數分離到了一套稱為板級支持包(BSP)的庫中。BSP庫為所有開發板的硬件相關功能提供了一個一致的接口。 這些功能包括硬件初始化, 中斷處理, 中斷產生, 硬時鐘和Timer管理, 本地和總線內存空間的映射, 以及內存尺寸控制等等。 總的來說, 有如下幾種類型的VxWorks移植: A. 宿主移植: 將Tornado和VxWorks的開發能力移植到一個以前不支持的宿主機上。 B. 架構移植: 將VxWorks 和Tornado 調試器移植到一個以前不支持的目標處理器或架構上。 C. 板級移植: 將VxWorks 移植到一個新的目標板上, 在此之前應該已經有了宿主移植和架構移植。 D. 升級pre-Tornado BSPs 使之工作于Tornado 平臺。 E. 移植一個可選的部件。 宿主移植和架構移植需要訪問全部的VxWorks源代碼, 超出了本文的范圍。 板級移植是我們要討論的重點, 板級移植只需要訪問VxWorks中硬件相關的那部分源代碼(BSP)和調試器。 多年以來, 風河公司(Wind River)能夠提供給客戶各種BSP, 然而, 隨著許多新的CPU板的大批流行, 尤其是許多客戶自己設計的CPU板的大量出現, 使得風河已經不能夠跟上市場對于新的BSP的需求。 本書就是為了解決這個問題, 本書旨在幫住你創建、測試新的BSP、部件和項目。 移植VxWorks到一個新的板子上是一件非常有挑戰性的工作, 尤其是只有在移植完成后那些VxWorks開發工具才能夠被使用的時候。根據本書的策略可以使移植變得簡單一點。本書提供了移植策略和系統元件如何相互作用的詳細描述, 本書也包括了基于Tornado2.0來創建和發布部件或項目所需要的 技術信息。 本書所涉及的BSP 工具集與Tornado 2.0 或更高版本兼容, 升級早期的BSP 使之工作于Tornado 2.0 是相當容易的, 參考A。升級一個BSP到Tornado 下。 1.1 Tornado 2.0 的新特性介紹:SCSI 1 廢止: 對于SCSI-1 驅動和庫的支持已經被廢止, 雖然這些庫仍然被包括在Tornado2.0 中,但是它們已經被列為廢除并且不會被包括在將來的版本中。 宏 TYCO5_2被刪除:TYCO5_2這個宏不再被支持, 客戶應當使用Tornado 2.0 下的SIO驅動 。 BSP封裝被變更: 參考10。2 BSP封裝, P???頁以獲得更詳細的關于封裝要求的描述。 參考O。BSP產品內容以獲得一個典型產品內容的的快速總結。 文檔: 所有的在線文檔現在是以HTML格式提供, 在系統中包含了一個稱為refgen的工具,用來從現存的nroff輸入產生HTML頁。 VxWorks網絡協議棧:VxWorks網絡協議棧是Tornado 1.0.1 用戶的可選部件, 現在是唯一被Winriver 支持的協議棧。 所有的BSP現在都使用為VxWorks網絡協議棧而修改的驅動程序。 VxWorks網絡協議棧是基于BSD 44 協議棧的。在BSP中 BSD44 和 END 驅動都可被使用。END驅動是BSP的缺省驅動。 新的驅動: 許多新的END網絡驅動已經被加入到驅動產品中來以便使盡可能多的產品擁有至少一個可用的END 驅動。 集成的模擬器: Tornado 2.0包括一個集成的模擬器, 它允許開發人員在硬件環境就續以前就能夠開始應用的開發。 集成的WindView:Tornado 2.0包括一個集成的WindView 工具, 用來檢查運行時的行為, 參考 <<WindView User’s Guide>> 來了解更多關于WindView的特性。 VTS 測試更新: VTS(驗證測試套件)有了微小的升級以便使它能夠正確地工作于target shell 的新的虛擬輸入輸出特性。 SCSI 測試套件: SCSI性能測試套件在以前的移植工具中被忽略了, 現在可用。 ROM_WARM_ADRS 這個新宏被引入到BSP模板和一些BSP中, 它代表進入到boot ROM 代碼的熱啟動入口, 它被用來去除基于不同CPU家族所手工計算出來的入口地址。 正常情況下, ROM_WARM_ADRS是基于一個來自于ROM_TEXT_ADRS的偏移, 例如: #define ROM_WARM_ADRS (ROM_TEXT_ADRS + 8) 新的SIO IOCTLs: 新的SIO IOCTL 代碼用來支持modem控制線路。 IOCTLs 例如SIO_OPEN和SIO_HUP當設備被打開和關閉時通知驅動程序。 而SIO_HW_OPTS_SET 和SIO_HW_OPTS_GET允許用戶管理字符長度、奇偶、停止位和modem 控制線路。 可選位 CLOCAL 禁止了modem 控制線路在驅動程序中的使用, 為了保持向后兼容性, CLOCAL選項在Wind River BSP中默認是選擇的。 Target.txt 文件被刪除: 文本格式的target.nr 文件(為Windows 宿主用戶而產生)已經被刪除了, 目前UNIX 和WINDOWS平臺均使用瀏覽器來閱讀HTML格式的文檔。 宿主工具refgen取得nroff的輸入并且產生HTML的輸出。 1.2 進行BSP開發的一些先決條件:首先, 你應當有底層C和匯編語言的知識, 熟悉設備驅動, 熟悉中斷, 最好具有同硬件接口的軟件開發經驗, 另外, 你應當熟悉Tornado開發工具或者至少已經讀過了Tornado用戶指南。最后, 你應當有一個基于你的目標系統上所用的CPU的參考BSP, 這可以節省你的大量時間。 你也應當有一個適用于你的項目架構的模板BSP,以及模板驅動程序, 大部分客戶購買一個或多個設備驅動程序的源代碼。 |