-- 作者:wangxinxin
-- 發(fā)布時(shí)間:2010-12-1 9:11:44
-- arm技術(shù)VxWork BSP啟動(dòng)過(guò)程
開(kāi)發(fā)BSP主要的兩點(diǎn):
-
系統(tǒng)image的生成,image的種類(lèi),image的download下載過(guò)程,系統(tǒng)的啟動(dòng)順序和過(guò)程,調(diào)試環(huán)境的配置及遠(yuǎn)端調(diào)試的方式和方法,相應(yīng)BSP設(shè)置文件的修改(網(wǎng)絡(luò),串口..),BSP各文件的組成和作用.
-
要對(duì)系統(tǒng)底層驅(qū)動(dòng)清楚,也就是對(duì)CPU及相關(guān)的硬件有所了解.主要是32微處理器(上電啟動(dòng)過(guò)程, download image的方式方法,讀寫(xiě)ROM,地址空間分配,MMU,寄存器,中斷定義,..).參照硬件資料,多讀一些源碼會(huì)有所幫助.
Tornado 2 開(kāi)發(fā)調(diào)試環(huán)境協(xié)議框圖
主機(jī)開(kāi)發(fā)(Host Development System) 目標(biāo)機(jī)(Target System)
Tornado 工具
WTX協(xié)議通信<==========>
Editor Project
Shell Debugger Browser Windview
Target Server
|
Target Agent VxWorks Target Simulator
WDB協(xié)議通信 <==========>
Application VxWorks OS VxWorks Target (WDB)Agent
兩個(gè)主要兩個(gè)協(xié)議
WTX協(xié)議(Wind River Tool eXchange): 用于開(kāi)發(fā)機(jī)內(nèi)部Tornado工具與Target Server之間通信.
WDB協(xié)議(Wind DeBug): 用于主機(jī)Target Server與目標(biāo)機(jī)之間的通信.
一.基本概念
BSP定義:
Provides VxWorks with primary interface to hardware environment.
作用:
主要BSP主要文件目錄的組成及主要文件的作用:
這個(gè)目錄下的文件
是所有BSP文件共享的,不是特別需要不要更改里面的任何文件.
configAll.h:
缺省定義了所有VxWorks的設(shè)置.如果不用缺省的設(shè)置,可在BSP目錄下的config.h文件中用#define或#undef方式來(lái)更改設(shè)置.
bootInit.c:
在romInit.s后,完成Boot ROM的第二步初始化.程序從romInit.s中的romInit()跳到這個(gè)文件中的romStart().來(lái)執(zhí)行必要的解壓和ROM image的放置.
bootConfig.c: 完成Boot ROM image的初始化和控制.
usrConfig.c: VxWorks image的初始化代碼.
涉及系統(tǒng)核心的components,主要由target/config/All中usrConfig.c中函數(shù)調(diào)用
包含系統(tǒng)或硬件相關(guān)的BSP文件.
Makefile
一些命令行控制images的生成,參見(jiàn) BSP設(shè)置部分及生成下載
README
BSP發(fā)布紀(jì)錄,版本,總的文檔
config.h
包括所有涉及CPU主板的設(shè)置及定義(includes,definations),參見(jiàn) BSP設(shè)置文件及生成下載
configNet.h
網(wǎng)絡(luò)驅(qū)動(dòng)的主要設(shè)置文件,主要對(duì)END驅(qū)動(dòng)設(shè)置.
romInit.s
匯編語(yǔ)言文件,是VxWorks Boot ROM和ROM based image的入口,參見(jiàn) 系統(tǒng)啟動(dòng)部分
sysALib.s
匯編語(yǔ)言文件,程序員可以把自己的匯編函數(shù)放在這個(gè)文件里,在上層調(diào)用.VxWorks image的入口點(diǎn)_sysInit在這個(gè)文件里,是在RAM中執(zhí)行的第一個(gè)函數(shù).
sysLib.c
包含一些系統(tǒng)相關(guān)的函數(shù)例程,提供了一個(gè)board-level的接口,VxWorks和應(yīng)用程序可以以system-indepent的方式生成.這個(gè)文件還能包含目錄target/config/comps/src的驅(qū)動(dòng).
sysScsi.c
可選文件用于Scsi設(shè)備設(shè)置和初始化.
sysSerial.c
可選文件用于所有的串口設(shè)置和初始化.
bootrom.hex
ASIC文件包含VxWorks Boot ROM代碼
VxWorks
運(yùn)行在目標(biāo)機(jī)上,完整的,連結(jié)后的VxWorks二進(jìn)制文件.
VxWorks.sym
完全的,連結(jié)后帶有符號(hào)表的VxWorks二進(jìn)制文件
VxWorks.st
完全的,連結(jié)后,standalone,帶有符號(hào)表的VxWorks二進(jìn)制文件
-
BSP用"make"來(lái)編譯連接生成(Created),而不是用Tornado的工具.
-
BSP和應(yīng)用程序都可以在"make"或"tornade"上開(kāi)發(fā)(developed)
中斷控制interrupt controller,計(jì)時(shí)器timer(sys/aux),串口UART(serial),顯示屏LCD,鍵盤(pán)Keyboard(opt),觸摸屏touch-screen(opt).
前面三個(gè)是BSP的主要部分.
VxWorks Image的種類(lèi):
|