VxWorks移植到AT91RM9200的BSP定制過程
下面以ROM型VxWorks內核啟動流程為例,說明各文件的作用:
romlnit()保存啟動類型,屏蔽中斷;初始化內存和寄存器,屏蔽Cache;初始化CPU,將堆棧指針定位于被拷貝Boot ROM映像在RAM的地址;跳到romStart()。
roraStart()根據(jù)不同的映像類型將VxWorks映像的不同部分解壓縮
3 VxWorks在AT91RM9200上的BSP設計
3.1 AT91RM9200簡介
AT91RM9200的片上資源包括:ARM920T處理器棱、16KB的內部SRAM和128KB的內部ROM存儲器;支持SDRAM、SRAM、Burst Flash和CompactFlash、SmartMedia以及NANDFlash的無縫連接;16KB的數(shù)據(jù)Cache,16KB的指令Cache,完全可編程的外部總線接口EBI,4個32位的PIO控制器可以達到122個可編程I/O引腳(每個都有輸入控制、可中斷及開路的輸出能力);帶有8個優(yōu)先級、可單獨屏蔽中斷源的先進中斷控制器、6組硬件定時器、4個通用同步/異步收發(fā)器USART。
3.2 BSP中幾個重要文件的修改
由于AT91RM9200的內核是ARM920T,所以BSP文件主要在VxWorks編澤環(huán)境Tornado的目錄target/config/all和target/config/integrator920t文件夾里。其中,a11文件夾里的文件對于絕大多數(shù)BSP都是共用的,一般來說不需要修改,特別是“configAll.h”;integrator920t文件夾里的文件就是所要編寫的BSP文件,這些文件往往與系統(tǒng)硬件密切相關。
3.2.1 修改Makeflie
Makefile文件定義編譯和鏈接整個BSP的規(guī)則,如編譯工具的選擇、編譯選項和包含文件路徑等;控制生成VxWorks映像文件的類型,同時含有存儲區(qū)大小的信息,對于存儲區(qū)大小信息的改動必須與Config.h的對應改動同步。有些參數(shù)需在該文件中定義,如處理器類型、編譯工具、目標地址等。下面介紹一些須修改的參數(shù)和地址:
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,因此.定義如下:
評論