久久99爰这里有精品国产-久久99这里只有精品国产-久久99中文字幕-久久99中文字幕久久-国产福利免费观看-国产福利免费视频

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.liujingjing.com.cn/bbs/index.asp)
--  VxWorks BSP開發(fā)  (http://www.liujingjing.com.cn/bbs/list.asp?boardid=37)
----  VxWorks BSP和啟動(dòng)過程  (http://www.liujingjing.com.cn/bbs/dispbbs.asp?boardid=37&id=1932)

--  作者:wangxinxin
--  發(fā)布時(shí)間:2010-12-1 9:33:10
--  VxWorks BSP和啟動(dòng)過程
一.BSP

1.定義:Board Support Package, Provides VxWorks with primary interface to hardware environment。

2.作用:

在通電后,初始化硬件;

支持VxWorks和硬件驅(qū)動(dòng)通信;

使hardware-dependent 和 hardware-independent在VxWorks系統(tǒng)中很好的結(jié)合;

二.開發(fā)BSP主要的兩點(diǎn):

系統(tǒng)image的生成,image的種類,image的download下載過程,系統(tǒng)的啟動(dòng)順序和過程,調(diào)試環(huán)境的配置及遠(yuǎn)端調(diào)試的方式和方法,相應(yīng)BSP設(shè)置文件的修改(網(wǎng)絡(luò),串口... ),BSP各文件的組成和作用。

要對系統(tǒng)底層驅(qū)動(dòng)清楚,也就是對CPU及相關(guān)的硬件有所了解.主要是32微處理器(上電啟動(dòng)過程, download image的方式方法,讀寫ROM,地址空間分配,MMU,寄存器,中斷定義,..).參照硬件資料,多讀一些源碼會(huì)有所幫助.



三.兩個(gè)主要兩個(gè)協(xié)議:

WTX協(xié)議(Wind River Tool eXchange): 用于開發(fā)機(jī)內(nèi)部Tornado工具與Target Server之間通信.

WDB協(xié)議(Wind DeBug): 用于主機(jī)Target Server與目標(biāo)機(jī)之間的通信.



四.主要BSP主要文件目錄的組成及主要文件的作用:

1.目錄target/config/All:

這個(gè)目錄下的文件是所有BSP文件共享的,不是特別需要不要更改里面的任何文件.

a. configAll.h:
缺省定義了所有VxWorks的設(shè)置.如果不用缺省的設(shè)置,可在BSP目錄下的config.h文件中用#define或#undef方式來更改設(shè)置.

b. bootInit.c:
在romInit.s后,完成Boot ROM的第二步初始化.程序從romInit.s中的romInit()跳到這個(gè)文件中的romStart().來執(zhí)行必要的解壓和ROM image的放置.

c. bootConfig.c: 完成Boot ROM image的初始化和控制.

d. usrConfig.c: VxWorks image的初始化代碼.



2.目錄target/config/comps/src:

涉及系統(tǒng)核心的components,主要由target/config/All中usrConfig.c中函數(shù)調(diào)用.



3.目錄target/config/bspname:

包含系統(tǒng)或硬件相關(guān)的BSP文件.

a. Makefile 一些命令行控制images的生成。

b. README BSP發(fā)布紀(jì)錄,版本,總的文檔

c. config.h 包括所有涉及CPU主板的設(shè)置及定義(includes,definations),參見 BSP設(shè)置文件及生成下載

d. configNet.h 網(wǎng)絡(luò)驅(qū)動(dòng)的主要設(shè)置文件,主要對END驅(qū)動(dòng)設(shè)置.

e. romInit.s 匯編語言文件,是VxWorks Boot ROM和ROM based image的入口,參見 系統(tǒng)啟動(dòng)部分

f. sysALib.s 匯編語言文件,程序員可以把自己的匯編函數(shù)放在這個(gè)文件里,在上層調(diào)用.VxWorks image的入口點(diǎn)_sysInit在這個(gè)文件里,是在RAM中執(zhí)行的第一個(gè)函數(shù).

g. sysLib.c 包含一些系統(tǒng)相關(guān)的函數(shù)例程,提供了一個(gè)board-level的接口,VxWorks和應(yīng)用程序可以以system-indepent的方式生成.這個(gè)文件還能包含目錄target/config/comps/src的驅(qū)動(dòng).

h. sysScsi.c 可選文件用于Scsi設(shè)備設(shè)置和初始化.

i. sysSerial.c 可選文件用于所有的串口設(shè)置和初始化.

j. bootrom.hex SIC文件包含VxWorks Boot ROM代碼

k. VxWorks 運(yùn)行在目標(biāo)機(jī)上,完整的,連結(jié)后的VxWorks二進(jìn)制文件.

l. VxWorks.sym 完全的,連結(jié)后帶有符號表的VxWorks二進(jìn)制文件

m. VxWorks.st 完全的,連結(jié)后,standalone,帶有符號表的VxWorks二進(jìn)制文件

注:

BSP用"make"來編譯連接生成(Created),而不是用Tornado的工具.

BSP和應(yīng)用程序都可以在"make"或"tornade"上開發(fā)(developed)

BSP被設(shè)置包括以下驅(qū)動(dòng):

中斷控制interrupt controller,計(jì)時(shí)器timer(sys/aux),串口UART(serial),顯示屏LCD,鍵盤Keyboard(opt),觸摸屏touch-screen(opt)。

一.VxWorks Image的種類:

BSP默認(rèn)的download VxWorks RAM image方式是從Ethernet. 串口電纜需要用來和開發(fā)板(COM1)通信,通過協(xié)議WDB.



可加載的映像( Loadable images) 可分為:
1.ROM-based images---compressed/uncompressed(只要一個(gè)映像)。

2.ROM-Resident images(BootRom + VxWorks Image 模式)。



BootRom中燒錄的映像:

VxWorks boot images---A VxWorks image designed to load another VxWorks images containing application code (often refer to as "boot code") ,"Burned" into ROM or loaded into Flash,Maybe execute in ROM/Flash (ROM-resident),Maybe execute out of RAM.



VxWorks映像(包含用戶程序) :

VxWorks images---A VxWorks image containing "end-user" code,

VxWorks映像又分為以下兩類:

1.Loadable VxWorks image--VxWorks images loaded by VxWorks boot image.

2.VxWorks ROM image--VxWorks image "burned" into ROM or loaded into Flash.May execute in Flash.



VxWorks Image文件類型的說明

1.Uploaded images(通過網(wǎng)口或串口下載到RAM):

vxWorks - basic Tornado, shell 和 symbol table 在主機(jī)端

vxWorks.st(文件很大)- 獨(dú)立的 image,包含shell和 symbol table在目標(biāo)板運(yùn)行

2.ROM based images(直接燒入ROM的VxWorks):

vxWorks_rom - Tornado in ROM,非壓縮, 在 RAM 中運(yùn)行

vxWorks.res_rom_nosym - Tornado in ROM, 非壓縮,在 ROM 中運(yùn)行

vxWorks.st_rom - Stand-alone in ROM, 壓縮, RAM 中運(yùn)行

vxWorks.res_rom - Stand-alone in ROM, 非壓縮, ROM 中運(yùn)行



VxWorks映像包含數(shù)據(jù)和程序段兩個(gè)部分

VxWorks images consist of:

1.Text segment---executable instruction.

2.Data segment---Initilized global and static varibles.





非BSP make文件中包括:

include $(TGT_DIR)/h/make/rules.library
include $(TGT_DIR)/h/make/defs.default(define default value for makefile)

...............

BSP make文件中包括: include $(TGT_DIR)/h/make/rules.bsp ...




一.系統(tǒng)啟動(dòng)順序

VxWorks image

分為在ROM中運(yùn)行和在RAM中運(yùn)行兩種.兩者啟動(dòng)順序的區(qū)別在于sysInit()函數(shù)的調(diào)用.該函數(shù)在RAM運(yùn)行的VxWorks中初始化RAM。



1.ROM中運(yùn)行的VxWorks :

VxWorks在ROM中運(yùn)行,即寫入ROM中的VxWorks是非壓縮的,不需要解壓,系統(tǒng)直接跳到ROM的首地址,運(yùn)行VxWorks.注意:ROM運(yùn)行的VxWorks并不支持所有的主扳,應(yīng)以主板手冊為準(zhǔn).

1.1執(zhí)行順序

romInit.s的romInit()-->bootInit.c的romStart()-->usrConfig.c中的usrInit()-->sysHwInit()-->usrKernelInit()-->KernelInit(usrRoot,...)

1.2優(yōu)點(diǎn)

VxWorks在ROM中運(yùn)行主要是為了節(jié)省RAM空間,以便應(yīng)用程序有更大的空間運(yùn)行.只把VxWorks image的data段復(fù)制到RAM的LOCAL_LOW_ADRS, text部分留在ROM并在ROM中執(zhí)行.

1.3缺點(diǎn)

ROM中運(yùn)行的VxWorks缺點(diǎn)是運(yùn)行速度慢.



2. RAM中運(yùn)行的VxWorks

VxWorks在RAM中運(yùn)行,即寫入ROM中的Boot或VxWorks Image是壓縮的,需要先解壓copy所有的text和data到RAM的LOCAL_LOW_ADRS中,下面sysInit()主要是初始化RAM用的,系統(tǒng)直接跳到RAM的首地址,運(yùn)行VxWorks。usrInit()前面不壓縮,即romInit(),romStart()不能壓縮.

2.1程序執(zhí)行順序

romInit.s中的romInit()-->bootInit.c中的romStart()-->sysaLib.s中的sysInit()-->usrConfig.c中的usrInit()-->sysHwInit()-->usrKernelInit()

-->KernelInit(usrRoot,...)



Boot或VxWorks image的text段或data段會(huì)從ROM復(fù)制到RAM,在RAM中運(yùn)行。其中usrRoot()是VxWorks啟動(dòng)的第一個(gè)任務(wù),由它來初始化 driver,network等描述: romInit.s first execute in flash,minal initiliz,then jump to romStart.romStart() 開始裝載和解壓image到RAM,sysaLib.s是在RAM中執(zhí)行的第一個(gè)函數(shù).



BootROM image

BootROM image 最少的系統(tǒng)初始化,主要用于啟動(dòng)裝載VxWorks image.一般有壓縮和不壓縮兩種形式,如bootrom和boot_uncmp.與VxWorks image的區(qū)別在于一個(gè)Bootrom調(diào)用bootConfig.c,而VxWorks調(diào)用usrConfig.c.



1.1程序執(zhí)行順序

romInit.s中的romInit()-->bootInit.c中的romStart()-->文件bootConfig.c中的usrInit()-->sysHwInit()-->usrKernelInit()

-->KernelInit(usrRoot,...)



其中 /target/config/all/bootConfig.c是Boot ROM設(shè)置模塊.用于通過網(wǎng)絡(luò)加載VxWorks image.

usrRoot()-->bootCmdLoop(void)命令行選擇,或autobooting

-->bootLoad(pLine, &entry)加載模塊到內(nèi)存(網(wǎng)絡(luò),TFFS,TSFS...)

-->netifAttach()-->go(entry)-->(entry)()從入口開始執(zhí)行,不返回.



1.2各個(gè)函數(shù)的主要作用

romInit() power up,disable interrupt,put boot type on the stack,clears caches.

romStart() load Image Segments into RAM.

usrInit() Interrupt lock out,save imformation about boot type,handle all the Initialization before the kernel is actually started,then starts the kernel execution to create an initial task usrRoot().This task completes the start up.

sysHwInit() Interrupt locked,Initializeshardware,registers,

activation kernel

KernelInit(usrRoot,...)

Initializes and starts the kernel.

Defines system memory partition.

Activates a task tUsrRoot to complete initalization.

Unlocks inierrupts.

Uses usrInit()stack.

usrRoot() 初始化內(nèi)存分區(qū)表(memory partition library)

初始化系統(tǒng)系統(tǒng)時(shí)鐘(system clock)

初始化輸入輸出系統(tǒng)(I/O system)----可選

Create devices----可選

設(shè)置網(wǎng)絡(luò)(Configure network)--------可選

激活WDB目標(biāo)通信(Activate WDB agent)---------可選

調(diào)用程序(Activate application)



VxWorks 在ROM中的情況

ROM 低地址位為沒有壓縮的romInit.s和romStart()在ROM的起始位置,系統(tǒng)power up后,從這個(gè)起始位開始執(zhí)行,即執(zhí)行romInit(),起始位置由硬件定義,一般為0x00000000。ROM 高地址位為壓縮的VxWorks Imgage

其中 RAM_LOW_ADRS, RAM_HIGH_ADRS 等一些地址在makefile 和BSP config.h中定義。

国产视频久久久| 麻豆午夜视频| 久久精品免视看国产明星| 在线观看成人网| 黄视频网站在线看| 午夜久久网| 九九久久国产精品大片| 欧美1区2区3区| 国产高清在线精品一区二区| 欧美一区二区三区在线观看| 日日爽天天| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久福利影视| 九九热国产视频| 天天色色网| 欧美大片毛片aaa免费看| 国产视频一区二区在线观看| 国产网站免费| 天天色色网| 成人免费观看的视频黄页| 久久成人综合网| 成人免费观看网欧美片| 国产国产人免费视频成69堂| 国产亚洲精品aaa大片| 亚洲 激情| 国产伦精品一区三区视频| 精品国产三级a∨在线观看| 91麻豆精品国产片在线观看| 久久精品道一区二区三区| 99久久视频| 91麻豆国产福利精品| 国产伦久视频免费观看 视频| 尤物视频网站在线| 欧美大片aaaa一级毛片| 成人免费网站久久久| 精品国产亚一区二区三区| 国产美女在线观看| 91麻豆精品国产综合久久久| 欧美激情伊人| 香蕉视频亚洲一级| 日韩在线观看网站| 久久国产一区二区| 亚洲女初尝黑人巨高清在线观看| 免费一级片在线观看| 99久久精品国产国产毛片| 一级女人毛片人一女人| 久久久久久久男人的天堂| 免费毛片基地| 久久国产精品永久免费网站| 亚洲女初尝黑人巨高清在线观看| 欧美a级大片| 99久久精品国产国产毛片| 国产伦精品一区三区视频| 麻豆系列 在线视频| 免费国产在线视频| 你懂的国产精品| 国产综合成人观看在线| 国产一区二区精品尤物| 999久久久免费精品国产牛牛| 久久精品店| 欧美一区二区三区性| 91麻豆精品国产高清在线| 国产一区二区精品| 韩国毛片基地| 国产一区二区精品在线观看| 一级女性全黄生活片免费| 久草免费资源| 午夜欧美成人久久久久久| 成人高清视频免费观看| 国产亚洲精品成人a在线| 香蕉视频一级| 国产精品1024在线永久免费| 夜夜操网| 成人影视在线观看| 国产成人精品一区二区视频| 国产极品白嫩美女在线观看看| 999久久久免费精品国产牛牛| 日本免费看视频| 精品久久久久久免费影院| 日韩一级黄色片| 欧美大片一区| 久久精品欧美一区二区| 国产一区二区精品| 欧美激情在线精品video| 四虎影视库| 久久精品成人一区二区三区| 精品视频免费观看| 日本特黄特色aaa大片免费| 二级片在线观看| 欧美大片一区| 你懂的国产精品| 国产网站在线| 精品国产三级a| 国产不卡福利| 国产a视频精品免费观看| 精品久久久久久中文字幕一区| 天天做人人爱夜夜爽2020毛片| 黄视频网站在线观看| 黄色免费三级| 91麻豆精品国产自产在线| 亚洲第一页色| 欧美激情一区二区三区视频 | 成人在免费观看视频国产| 欧美激情伊人| 欧美大片aaaa一级毛片| 国产不卡高清| 免费一级片在线| 精品视频在线看| 一级片片| 精品国产亚洲一区二区三区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩中文字幕一区| 午夜激情视频在线播放| 韩国三级香港三级日本三级| 成人影院一区二区三区| 久久国产精品永久免费网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产视频网站在线观看| 成人av在线播放| 一 级 黄 中国色 片| 国产网站在线| 国产国语在线播放视频| 免费国产在线观看不卡| 精品国产亚一区二区三区| 日韩一级黄色| 黄色免费三级| 久草免费资源| 国产一区二区精品尤物| 日韩在线观看视频免费| 四虎影视久久| 午夜在线亚洲| 欧美一区二区三区在线观看| 黄视频网站在线看| 久草免费资源| 久久99爰这里有精品国产| a级精品九九九大片免费看| 欧美爱爱网| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产伦精品一区二区三区无广告 | 成人免费观看视频| 日本在线www| 精品久久久久久免费影院| 黄视频网站在线免费观看| 99色播| 国产一区二区精品久| 精品毛片视频| 国产原创中文字幕| 免费的黄视频| 精品视频在线看 | 九九精品久久久久久久久| 国产高清在线精品一区二区| 精品国产三级a∨在线观看| 一本高清在线| 99热精品在线| 国产一区精品| 精品久久久久久中文字幕一区| 国产91丝袜高跟系列| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美18性精品| 黄视频网站在线看| 香蕉视频一级| 国产91精品一区| 日韩在线观看免费| 国产伦精品一区二区三区在线观看 | 999精品视频在线| 四虎影视久久久免费| 日日夜夜婷婷| 美国一区二区三区| 国产福利免费观看| 亚洲精品中文一区不卡| 日本免费乱人伦在线观看| 国产成人精品综合久久久| 精品在线观看一区| 天天做人人爱夜夜爽2020| 精品久久久久久免费影院| 欧美激情一区二区三区视频高清| 二级片在线观看| 午夜家庭影院| 欧美激情伊人| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩欧美一二三区| 韩国毛片| 亚欧成人乱码一区二区| 97视频免费在线观看| 精品毛片视频| 日本伦理黄色大片在线观看网站| 亚洲第一页色| 久久精品免视看国产明星| 成人免费一级纶理片| 99热视热频这里只有精品| 精品国产亚洲人成在线| 国产麻豆精品| 久久精品免视看国产明星| 日本特黄一级| 精品在线观看国产| 香蕉视频一级| 国产精品自拍一区| 精品视频在线看 | 一本高清在线| 国产不卡精品一区二区三区|