久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團論壇VxWorks專區VxWorks BSP開發 → VxWorks在AT91RM9200上的BSP設計


  共有8561人關注過本帖樹形打印

主題:VxWorks在AT91RM9200上的BSP設計

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
VxWorks在AT91RM9200上的BSP設計  發帖心情 Post By:2010-12-1 10:42:00

VxWorks是美國Wind River公司開發的嵌入式實時操作系統,具有高性能、可裁減性好等特點,能支持多種微處理器(如PowerPC、X85、ARM、SPARC);自問世以來,以其良好的町靠性和卓越的實時性被廣泛地應用于通信、航空、航天等高精尖技術及實時性要求極高的領域中。BSP(Board Support Package,板級支持包)的作用是針對特殊的硬件平臺,為操作系統內核提供操作接口,使操作系統能夠獨立于底層硬件。對上層應用屏蔽具體硬件,VxWorks的高可移植性就是通過BSP實現的。AT91RM9200是Atmel公司生產的一款ARM9核芯片,本文重點介紹將VxWorks移植到該芯片過程中BSP的定制過程。

1 BSP概念

BSP通常是指針對具體的硬件平臺,用戶所編寫的啟動代碼和部分設備驅動程序的集合。它所實現的功能包括初始化和驅動部分設備。最基本的BSP僅需要支持處理器復位、初始化、驅動串口和必要的時鐘處理。BSP是相對于操作系統而言的,不同的操作系統對應不同形式的BSP,因此,在寫BSP時一定要按照要求的操作系統對BSP的定義形式來寫。在VxWorks系統中,BSP是介于底層硬件環境和VxWorks之間的一個軟件接口,它的主要功能是系統加電后初始化目標機硬件和VxWorks,并提供部分硬件驅動程序。BSP在VxWorks系統中的層次關系如圖1所示。

圖片點擊可在新窗口打開查看

BSP為各種板卡的硬件功能提供了統一的軟件接口,包括硬件初始化、中斷的捕捉和處理、硬件時鐘和定時器管理、內存地址映射,以及內存分配等。每個BSP還包括一個ROM啟動或其他啟動機制。

2 VxWorks的引導過程

在編寫BSP之前,首先要了解整個系統的啟動過程。VxWorks的映像由代碼段、數據段和BSS段3部分組成。VxWotks內核可以分為3種:可加載類型映像、基于ROM的VxWorks映像和RoM駐留型映像。這3種類型的映像組織是不一樣的,因此啟動過程有所區別。

可加載映像包括VxWorks和Boot ROM兩部分內容,兩部分是獨立創建的。首先,由系統引導代碼把ROM引導程序搬到RAM_HIGH_ADRS。然后,ROM引導程序開始運行,將VxWorks映像加載到RAM_LOW_ADRS,之后跳轉到VxWorks映像裝入點。

基于ROM的VxWorks映像在BSP初始化時,會把lmage完全搬到RAM中執行,包括代碼段和數據段。在拷貝執行完畢后,系統控制權轉移給RAM中VxWorks映像的初始化代碼。

ROM駐留型映像只是將ROM中VxWorks映像的數據段和BSS段拷貝到RAM中,完成后系統控制權轉移給ROM/Flash里VxWorks映像的初始化代碼,代碼段留在ROM中并在ROM中運行。在ROM中運行的VxWorks映像主要足為了節省RAM空間,帶來的不利則是運行速度慢。

圖2和圖3分別是下載型和ROM型VxWorks映像的初始化流程。

圖片點擊可在新窗口打開查看

下面以ROM型VxWorks內核啟動流程為例,說明各文件的作用:

romlnit()保存啟動類型,屏蔽中斷;初始化內存和寄存器,屏蔽Cache;初始化CPU,將堆棧指針定位于被拷貝Boot ROM映像在RAM的地址;跳到romStart()。

roraStart()根據不同的映像類型將VxWorks映像的不同部分解壓縮<如果需要)并加載到RAM中。

usrInit() 對VxWorks映像的BSS段清零;調用intVecBaseSet()設置中斷矢量基地址表;調用excVecInit()初始化異常中斷矢量;調用sysHwInit()初始化系統硬件;調用usrKernelInit()初始化wind內核;調用kernellnit()啟動wind內核,啟動usrRoot()任務。

usrRoot()設置操作系統時鐘,創建設備,安裝驅動,調用sysHwInit2()安裝系統時鐘和輔助時鐘中斷以及串口等設備的中斷,初始化I/O、文件系統、調用應用程序。

3 VxWorks在AT91RM9200上的BSP設計

3.1 AT91RM9200簡介

AT91RM9200的片上資源包括:ARM920T處理器棱、16KB的內部SRAM和128KB的內部ROM存儲器;支持SDRAM、SRAM、Burst Flash和CompactFlash、SmartMedia以及NANDFlash的無縫連接;16KB的數據Cache,16KB的指令Cache,完全可編程的外部總線接口EBI,4個32位的PIO控制器可以達到122個可編程I/O引腳(每個都有輸入控制、可中斷及開路的輸出能力);帶有8個優先級、可單獨屏蔽中斷源的先進中斷控制器、6組硬件定時器、4個通用同步/異步收發器USART。

3.2 BSP中幾個重要文件的修改

由于AT91RM9200的內核是ARM920T,所以BSP文件主要在VxWorks編澤環境Tornado的目錄target/config/all和target/config/integrator920t文件夾里。其中,a11文件夾里的文件對于絕大多數BSP都是共用的,一般來說不需要修改,特別是“configAll.h”;integrator920t文件夾里的文件就是所要編寫的BSP文件,這些文件往往與系統硬件密切相關。

3.2.1 修改Makeflie

Makefile文件定義編譯和鏈接整個BSP的規則,如編譯工具的選擇、編譯選項和包含文件路徑等;控制生成VxWorks映像文件的類型,同時含有存儲區大小的信息,對于存儲區大小信息的改動必須與Config.h的對應改動同步。有些參數需在該文件中定義,如處理器類型、編譯工具、目標地址等。下面介紹一些須修改的參數和地址:

圖片點擊可在新窗口打開查看

3.2.2 修改Config.h

Config.h文件包含了所有頭文件和與CPU相關的特殊定義。VxWorks內核組件的配置由Config.h文件定義。Config.h中的主要修改內容有定義引導行和修改地址。

(1)定義引導行

圖片點擊可在新窗口打開查看

其中,mac(O,0)為AT91RM9200芯片中的EMAC設備;host為主機名;VxWorks為要下載的文件名;h為主機IP地址;e為目標板IP地址;u為用戶名;pw為密碼;tn為目標板名稱。

(2)修改地址

該文件中的地址定義,如ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADR、SRAM_HIGH_SIZE等要與Makefik文件中的相關定義一致。本設計中代碼段存儲在連接ARM芯片外部片選CSO上的Flash里面,基地址為Oxl0000000,因此.定義如下:

圖片點擊可在新窗口打開查看

VxWorks的缺省配置由configAll.h來確定。一般來說,缺省配置的設置與自行開發的硬件系統的配置不同,用戶可通過Cotlfig.h來改變缺省配置。用戶須查看configAll.h,并在Config.h中將不需要的軟硬件配置和初始化去掉。例如,缺省配置中一般包含浮點處理器,而AT9lRM9200中沒有浮點寄存器,因此就要刪掉相關配置。

支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

VxWorks在AT91RM9200上的BSP設計








簽名
主站蜘蛛池模板: 美女张开腿让我桶 | 日本aaaa特级毛片 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 久久视频精品36线视频在线观看 | 天海翼精品久久中文字幕 | 高清欧美日本视频免费观看 | 最新国产三级在线不卡视频 | 九色91 | 99视频有精品视频免费观看 | 欧美一区二区视频 | 九九精品在线视频 | 在线观看成年视频 | 五月色婷婷琪琪综合伊人 | 久久精品视频3 | 伊人久热这里只有精品视频99 | 精品在线视频免费观看 | 风流慈禧一级毛片在线播放 | 久久99这里只有精品国产 | 欧美aaaa在线观看视频免费 | 欧美在线视频一区二区 | 亚洲一区二区精品 | 国产精品免费大片一区二区 | 91久久香蕉国产线看 | 日本三级香港三级网站 | 久久精品视屏 | 成人毛片免费观看视频大全 | 全部孕妇毛片 | 成人免费一区二区三区在线观看 | 一级片免费的 | 91欧美精品 | 日本一区二区三区四区无限 | a级成人毛片免费视频高清 a级高清观看视频在线看 | 免费的特黄特色大片在线观看 | 亚洲巨乳自拍在线视频 | 国产精品一级片 | 67194午夜 | 免费一区二区三区视频狠狠 | 国产美女精品三级在线观看 | 草草视频免费观看 | 亚洲国产精品乱码在线观看97 | 成人在线免费小视频 |