BSP 系統的設計與實現分析論文

BSP 系統的設計與實現分析論文

  1 BSP 系統設計的意義

  前置機通訊板使用ARM 微處理器,透過兩路乙太網口利用安全通訊協議實現與聯鎖機的通訊,透過兩路CAN 匯流排實現與電子執行單元的通訊,提供8 個LED 燈位來實時顯示各種工作狀態,利用上電初始化時讀取背板地址來動態設定兩通道的IP 地址,並能夠以主備方式工作。

  2 系統的設計與實現

  2.1 VxWorks 系統的主要效能特點

  VxWorks 系統所需要的儲存空間最小要8KB(ROM),具有極好的可伸縮性;支援中斷驅動的優先順序搶佔式排程和時間片輪轉排程,並具有確定的、快速的上下文切換能力;支援訊號燈、訊息佇列、管道、訊號和套接字等程序間通訊和互斥手段;支援諸如Ring、buffer、linklist 等共享記憶體技術;確定的微秒級的中斷響應時間;支援使用於多種物理介質的TCP/IP 協議簇和幾乎所有常用的基於TCP/IP 的應用層協議;快速靈活的I/O 系統;支援多種檔案系統。

  2.2 BSP 開發流程

  BSP 的開發需要一個與目標板硬體環境相近的參考BSP 和相關程式碼模板,從而本文中的`目標板是在公司已有的聯鎖機三取二主機板的BSP 基礎上,進行的二次開發。開發環境的建立,主要是以目標板BSP 檔案為模版在Tornado 安裝的target config 目錄下建立使用者BSP 目錄bspname,把Tornado target config 下檔案和BSP模版檔案複製到該目錄下。根據目標板的不同功能對配置檔案、暫存器和引腳、記憶體地址對映、makefile 檔案和相關驅動程式等進行配置和修改。根據具體需要在命令列環境下利用Makefile 建立各種映象,也可以在Tornado 整合環境下Build 選單中選擇Build Boot Rom來建立各種型別的Boot Rom 映象。

  3 映象和驅動程式除錯

  初級階段,主要指bootrom 的除錯。bootrom 的開發是VxWorks BSP 開發的起點,目標機沒有提供任何服務,使用ADS 中的AXD 工具,透過JTAG 口將編譯好的bootrom 檔案載入到目標機中。在串列埠初始化後可以使用串列埠向電腦列印相關資訊,觀察bootrom 的執行狀態。高階階段,主要是指最小系統除錯完畢後。這時串列埠驅動完成,在程式中除錯相關函式可以輕鬆實現控制檯串列埠的資訊答應,並且串列埠可以作為開發主機與目標機之間的WDB 通道通訊,WDB 連線上後就可以使用Tornado開發環境中提供的工具進行除錯。

  3.1 除錯環境

  開發主機作業系統為Windows XP,BSP 應用程式設計基於VxWorks 嵌入式實時作業系統,並在Tornado 整合開發環境下開發除錯。開發主機與目標板之間透過ARMmulti-ICE 模擬器連線,開發主機利用該模擬器除錯用於目標板的bootrom_uncmp 映象和VxWorks 映象。為了更好的除錯,需要檢視目標板BSP 的執行過程等資訊,然而本目標板不具備VGA 介面,只能透過其自帶的串列埠來輸出除錯資訊。目標板透過自帶的串列埠接9 針串列埠線與工控機(本設計中的開發主機只帶有1 個串列埠)的COM1 相連,在工控機上利用超級終端來輸出列印資訊。在串列埠除錯成功後,開始除錯網口,目標板利用網口來啟動VxWorks,這時目標板需要從開發主機上的TFTP來下載VxWorks。目標板映象bootrom_uncmp 和VxWorks除錯成功後,便可去掉開發主機與目標板之間的ARMmulti-ICE 模擬器,接上J-link 燒寫工具,開發主機利用該工具把bootrom_uncmp.bin 燒寫到目標板的ROM中。

  3.2 target server 的配置以及J-link 燒寫工具為了能夠實現正常連線,需要對target server 作相應的配置。並用J-link 把bootrom_cmp.bin 映象燒到ROM 中。

  3.3 超級終端

  由於目標板硬體上沒有VGA 介面,為了便於除錯BSP 映象和相關硬體驅動程式,用USART 下的Debug 口來輸出除錯資訊。

  3.4 其它除錯

  透過網路裝置來啟動VxWorks 系統時,需要透過TFTP 來下載bootrom_cmp 映象和VxWorks映象。在DebugMode 下,用串列埠、網口、TrueFFS 均能成功啟動VxWorks後,便可改動啟動模式為內部啟動,即在BOOT Mode 下編譯BSP,並重新生成boot image 映象和VxWorks 映象。

  3.5 驅動程式的除錯

  Debug Mode 和Boot Mode 都能正常啟動後,說明映象是正確的。這時需要除錯CAN 控制器SJA1000 的傳送、接收功能,LED 燈光的設定和顯示,動態電路的切換,背板地址的讀取,網路地址的自動判定,模式開關的讀取。

  4 結論

  在本次設計,本人參閱了大量的文獻資料,瞭解了VxWorks 實時嵌入式作業系統中板卡支援包BSP 的概念和作用,熟悉了ARM CPU 結構,掌握了基於ARM 平臺的VxWorks 作業系統BSP 開發的技術難點和重點,完成了VxWorks 作業系統在ARM9 晶片AT91RM9200 上的BSP 設計與除錯,實現了CAN 控制器SJA1000 的驅動、0~9檔的模式開關選擇、LED 狀態燈的讀取和控制、主備切換的動態電路以及板卡背板地址和網路地址的讀取。

  參考文獻

  [1] 李勇.基於ARM9 的VxWorks BSP 的設計與實現[D].湖南:湖南大學,2009.

最近訪問