波多在线播放_激情深爱五月_久久欧美精品_成人超碰_国产久_www.pixiv.moe


曙海教育集團論壇VxWorks專區(qū)VxWorks技術(shù)討論區(qū) → VxWorks在AT91RM9200上BSP設(shè)計方案


  共有8934人關(guān)注過本帖樹形打印

主題:VxWorks在AT91RM9200上BSP設(shè)計方案

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


加好友 發(fā)短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
VxWorks在AT91RM9200上BSP設(shè)計方案  發(fā)帖心情 Post By:2010-11-17 10:31:25

vxworks是美國wind river公司研發(fā)嵌入式實時操作方法系統(tǒng),具有高性能,可裁減性好等特性,能支持幾種微處理器(如powerpc,x85,arm,sparc);自問世對來,對其良好町靠性與卓越實時性被廣泛地使用于通信,航空,航天等高精尖技術(shù)信息及實時性條件極高領(lǐng)域中。bsp(board support package,板級支持包)用處是針對特殊硬件平臺,為操作方法系統(tǒng)內(nèi)核供應(yīng)操作方法接口,使操作方法系統(tǒng)能夠獨立于底層硬件。對上層使用屏蔽具體硬件,vxworks高可移植性就是通過bsp解決方案。at91rm9200是atmel公司生產(chǎn)一款arm9核IC,本文重點說明將vxworks移植到該IC過程中bsp定制過程。
1 bsp理念
  bsp通常是指針對具體硬件平臺,用戶所編寫運行源代碼與部分設(shè)備軟件驅(qū)動程序集合。它所解決方案功能包括初始化與軟件驅(qū)動部分設(shè)備。最基本bsp僅需支持處理器復(fù)位,初始化,軟件驅(qū)動串口與必要時鐘處理。bsp是相對于操作方法系統(tǒng)而言,不同操作方法系統(tǒng)對應(yīng)不同形式bsp,因此,在寫bsp時一定要按照條件操作方法系統(tǒng)對bsp定義形式來寫。在vxworks系統(tǒng)中,bsp是介于底層硬件環(huán)境與vxworks的間一個軟件接口,它主要功能是系統(tǒng)加電后初始化目標(biāo)機硬件與vxworks,并供應(yīng)部分硬件軟件驅(qū)動程序。bsp在vxworks系統(tǒng)中層次關(guān)系如圖1所示。
  bsp為各種板卡硬件功能供應(yīng)了統(tǒng)一軟件接口,包括硬件初始化,中斷捕捉與處理,硬件時鐘與定時器管理,內(nèi)存地址映射,對及內(nèi)存分配等。每個bsp還包括一個rom運行或其他運行機制。
2 vxworks引導(dǎo)過程
  在編寫bsp的前,首先要了解整個系統(tǒng)運行過程。vxworks映像由源代碼段,數(shù)據(jù)段與bss段3部分結(jié)合。vxwotks內(nèi)核能分為3種:可加載種類映像,romvxworks映像與rom駐留型映像。這3種種類映像組織是不一樣,因此運行過程有所差別。
  可加載映像包括vxworks與boot rom兩部分內(nèi)容,兩部分是獨立建立。首先,由系統(tǒng)引導(dǎo)源代碼把rom引導(dǎo)程序搬到ram_high_adrs。然后,rom引導(dǎo)程序開始啟動,將vxworks映像加載到ram_low_adrs,的后跳轉(zhuǎn)到vxworks映像裝入點。
  romvxworks映像在bsp初始化時,會把lmage完全搬到ram中執(zhí)行,包括源代碼段與數(shù)據(jù)段。在拷貝執(zhí)行完畢后,系統(tǒng)控制權(quán)轉(zhuǎn)移給ram中vxworks映像初始化源代碼。
  rom駐留型映像僅僅是將rom中vxworks映像數(shù)據(jù)段與bss段拷貝到ram中,完成后系統(tǒng)控制權(quán)轉(zhuǎn)移給rom/flash里vxworks映像初始化源代碼,源代碼段留在rom中并在rom中啟動。在rom中啟動vxworks映像主要足為了節(jié)省ram空間,帶來不利則是啟動速度慢。
  圖2與圖3分別是下載型與rom型vxworks映像初始化過程。
下面臨rom型vxworks內(nèi)核運行過程為例,說明各文件用處:
  romlnit()保存運行種類,屏蔽中斷;初始化內(nèi)存與寄存器,屏蔽cache;初始化cpu,將堆棧指針定位于被拷貝boot rom映像在ram地址;跳到romstart()。
  rorastart()根據(jù)不同映像種類將vxworks映像不同部分解壓縮<如果需)并加載到ram中。
  usrinit() 對vxworks映像bss段清零;調(diào)用intvecbaseset()設(shè)置中斷矢量基地址表;調(diào)用excvecinit()初始化異常中斷矢量;調(diào)用syshwinit()初始化系統(tǒng)硬件;調(diào)用usrkernelinit()初始化wind內(nèi)核;調(diào)用kernellnit()運行wind內(nèi)核,運行usrroot()任務(wù)。
  usrroot()設(shè)置操作方法系統(tǒng)時鐘,建立設(shè)備,安裝軟件驅(qū)動,調(diào)用syshwinit2()安裝系統(tǒng)時鐘與輔助時鐘中斷對及串口等設(shè)備中斷,初始化i/o,文件系統(tǒng),調(diào)用應(yīng)用程序軟件。
3 vxworks在at91rm9200上bsp設(shè)計方案
3.1 at91rm9200介紹
  at91rm9200片上資源包括:arm920t處理器棱,16kb內(nèi)部sram與128kb內(nèi)部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內(nèi)核是arm920t,所對bsp文件主要在vxworks編澤環(huán)境tornado目錄target/config/all與target/config/integrator920t文件夾里。其中,a11文件夾里文件對于絕大多數(shù)bsp都是共用,普通來說不需修改,特別是“configall.h”;integrator920t文件夾里文件就是所要編寫bsp文件,這些文件往往及系統(tǒng)硬件密切關(guān)聯(lián)。
3.2.1 修改makeflie
  makefile文件定義編譯與鏈接整個bsp規(guī)則,如編譯工具選擇,編譯選項與包含文件路徑等;控制生成vxworks映像文件種類,同時含有存儲區(qū)大小資料,對于存儲區(qū)大小資料改動必須及config.h對應(yīng)改動同步。有些型號參數(shù)需在該文件中定義,如處理器種類,編譯工具,目標(biāo)地址等。下面說明一些須修改型號參數(shù)與地址:
3.2.2 修改config.h
  config.h文件包含了所有頭文件與及cpu關(guān)聯(lián)特殊定義。vxworks內(nèi)核組件設(shè)置由config.h文件定義。config.h中主要修改內(nèi)容有定義引導(dǎo)行與修改地址。
(1)定義引導(dǎo)行
  其中,mac(o,0)為at91rm9200IC中emac設(shè)備;host為主機名;vxworks為要下載文件名;h為主機ip地址;e為目標(biāo)板ip地址;u為用戶名;pw為密碼;tn為目標(biāo)板名稱。
(2)修改地址
  該文件中地址定義,如rom_text_adrs,rom_size,ram_low_adr,sram_high_size等要及makefik文件中關(guān)聯(lián)定義一致。本設(shè)計方案中源代碼段存儲在連接armIC外部片選cso上flash里面,基地址為oxl0000000,因此.定義如下:
  vxworks缺省設(shè)置由configall.h來確定。普通來說,缺省設(shè)置設(shè)置及自行研發(fā)硬件系統(tǒng)設(shè)置不同,用戶可通過cotlfig.h來改變?nèi)笔≡O(shè)置。用戶須查看configall.h,并在config.h中將不需軟硬件設(shè)置與初始化去掉。例如,缺省設(shè)置中普通包含浮點處理器,而at9lrm9200中沒有浮點寄存器,因此就要刪掉關(guān)聯(lián)設(shè)置。
3.2.3 修改integrator920t.c
  該文件中設(shè)置所有非可選,及at91rm9200IC關(guān)聯(lián)資料,如各硬件關(guān)聯(lián)寄存器地址定義,設(shè)備寄存器中對應(yīng)位定義,各硬件中斷矢量與中斷優(yōu)先級定義,dbug與usart控制,網(wǎng)口定義,系統(tǒng)時鐘與輔助時鐘型號參數(shù)設(shè)置等。vxworks所要運用目標(biāo)板包含設(shè)備軟件驅(qū)動程序頭文什應(yīng)當(dāng)包含在該文件開始。該文件中各項宏定義均是at91rm9200IC,并根據(jù)具體條件定義。例如,電源管理控制器中用到兩個鎖相環(huán)plla與pllb,對它們部分型號參數(shù)設(shè)定源代碼如下:
3 2.4 修改rornlnit.s
  該文件包含引導(dǎo)rom與romvxworks映像入口初始化匯編源代碼。入口點為rominit()函數(shù),是系統(tǒng)加電運行后首先執(zhí)行源代碼。主要功能是:保存運行種類,使處理器復(fù)位;初始化flash與sdram;設(shè)置mmu到已知狀態(tài);指令cache使能;初始化mmu控制寄存器(指令32位,數(shù)據(jù)32位,寫緩沖使能);開漏寫緩沖,并且使指令與數(shù)據(jù)cache都兀效;通過設(shè)置cpsrirq禁止位,fir禁止位與先進中斷控制器aic中中斷禁止寄存器來屏蔽中斷,跳轉(zhuǎn)到bootinit.c中rom-start(),同時傳遞運行種類。其中,中斷屏蔽源代碼如下:
  在調(diào)試這段源代碼時,由于串口與網(wǎng)口都沒有運行,因此僅僅能通過點燈程序來跟蹤程序執(zhí)行情況,設(shè)置不同led亮來顯示程序執(zhí)行到哪一步。例如,如果要并行輸入/輸出口c32位中第15位亮,則能編程代碼為;
  在編寫本文件時,需注意地方是:不要在該文件里進行過多初始化操作方法,大部分硬件初始化操作方法在syslib.c文件中syshwinit()函數(shù)中進行。
3.2.5 修改syslib c
  syslib.c是bsp初始化核心源代碼。在這個文件中,必須復(fù)位所有硬件,使其處于初始化狀態(tài),保證后面開中斷后不會產(chǎn)生假中斷。這個文件包含了由目標(biāo)機體系構(gòu)造決定,及系統(tǒng)關(guān)于c程序。這些c程序供應(yīng)板級接口。這些接口,vxworks與應(yīng)用程序軟件構(gòu)造及系統(tǒng)無關(guān)。該文件功能包括:定義了rram,sram,rom,外部片選IC物理地址與虛擬地址;定義中斷優(yōu)先級寄存器中各個位對應(yīng)優(yōu)先級;調(diào)用syshwinit()初始化串口與網(wǎng)口,安裝irq/svc中斷堆棧分配程序;總線中斷功能等。本文件中有兩個顯要函數(shù):syshwinit()與syshwinit2()。syshwinit()源代碼如下:
  syshwinit2()用來連接系統(tǒng)中斷,安裝isr,進行其他設(shè)置。它在初始化系統(tǒng)時鐘時,由sysclkconnect()調(diào)用,主要用來初始化中斷庫與中斷軟件驅(qū)動,安裝系統(tǒng)時鐘與輔助時鐘中斷對及串口等設(shè)備中斷。
4 編譯生成映像
  系統(tǒng)定制完成后,有兩種編譯方法:一種是在tornado下進行編譯,生成映像文件;另一種是直接用make工具編譯,但要寫好腳本文件。裝載到目標(biāo)板中vxworks映像取決于運用下載方法,其中主要包括對下多種:
  ①vxworks。這是ram映像,vxworks需通過目標(biāo)板上引導(dǎo)程序從串口或網(wǎng)口把它下載到目標(biāo)板ram中啟動。在tornado研發(fā)環(huán)境下,這是一個默認(rèn)選項,主要用在調(diào)試階段。運用宿主機上windsh工具與符號表。
 、趘xworks.st。這也是ram映像,需通過引導(dǎo)rom把vxworks映像下載到目標(biāo)機內(nèi)存中才能執(zhí)行。該對象文件內(nèi)置符號表。
 、踲xworks_rom。這是一個非壓縮,rom映像。在這個對象文件執(zhí)行前,先把自己拷貝到目標(biāo)機ram中。這種種類映像通常在運行階段速度相比較慢,因為源代碼在rom中執(zhí)行,但執(zhí)行階段比rom駐留型映像要快。
  ④vxworks.st_rom。這是rom壓縮vxworks映像。它在執(zhí)行前先把自己解壓并拷貝到目標(biāo)機ram中執(zhí)行。
 、輛xworks.res_rom。這是rom駐留型非壓縮vxworks映像。它在執(zhí)行前把數(shù)據(jù)段拷貝到目標(biāo)機ram中。這種種類映像在運行階段相比較快,但在目標(biāo)機上執(zhí)行速度比rom種類映像慢(因為cpu訪問rom比訪問ram要慢)。通常在ram空間相比較小目標(biāo)機上運用這種種類映像。
5 需注意難題
  首先,應(yīng)該避免在rominit.s中進行過多初始化操作方法。該史件中僅僅是進行必要最小硬件初始化,大部分硬件初始化都是在syshwinit()中完成。另外,romtnit.s中源代碼不應(yīng)當(dāng)被其他模塊或函數(shù)調(diào)用。
  其次,應(yīng)該避免sysalib.s中工作太少。bsp研發(fā)人員通常錯誤地認(rèn)為在rominit.s里初始化過設(shè)備不需在sysalib.s中從新初始化。實際上,vxworks映像并不認(rèn)為它是由引導(dǎo)映像程序引導(dǎo),因此,它必須從新設(shè)置與初始化所有它自己需運用設(shè)備。sysinit()是該文件中最主要一個函數(shù),也是第一個函數(shù)。該例程中很多工作及rominit()是相同,目是保證內(nèi)核映像在啟動及冷運行時,軟硬件環(huán)境高度一致。
  最后,對特定bsf。軟件驅(qū)動程序修改,僅僅能在特定bsp目錄下。此設(shè)計方案中目錄為target/config/integra-tor920t,不要直接在target/src/drv對及target/h/drv中修改。僅僅有風(fēng)河公司源程序才能存放在這些目錄下。
6 結(jié)論
  本文在說明bsp理念,用處與vxworks映像類別對及系統(tǒng)運行過程基礎(chǔ)上,對atmel公司生產(chǎn)arm9處理器at91rm9200為例,重點說明了vxworksbsp設(shè)計方案中需修改幾個顯要文件,最后提出了需注意難題。盡管目標(biāo)板硬件不同,bsp解決方案也不盡相同,但基本思想是一樣。本設(shè)計方案對各類研發(fā)板系統(tǒng)移植與后續(xù)應(yīng)用程序軟件研發(fā)有一定參考價值

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

返回版面帖子列表

VxWorks在AT91RM9200上BSP設(shè)計方案








簽名
主站蜘蛛池模板: 精品a级片 | 亚洲AV国产成人精品区三上 | 欧美日韩在线看 | 老司机福利在线视频 | 国产不卡一区 | 久久国产婷婷国产香蕉 | 免费看一区二区三区 | 亚洲 欧美 自拍偷拍 | 99精品国产免费观看视频 | 国产亚洲一区二区三区在线观看 | 久久天天拍天天爱天天躁 | 免费在线国产视频 | 日本xxww视频免费 | 久久黄色大片 | 成人资源在线观看 | 国产精品18hdxxxⅹ在线 | 2017无毒的黄网网址 | 亚洲成人黄色在线 | 亚洲人成在线播放 | 精品一区久久 | 91在线视频观看 | 久久综合亚洲 | 欧美福利视频一区二区三区 | 久久久久毛片成人精品 | 成人免费在线视频观看 | 日韩在线视频一区 | 在线a人片免费观看国产 | 日本国产最新一区二区三区 | 91精品一区二区三区久久久久久 | 精品欧美一区二区三区久久久 | 国产精品热 | 精品三级国产精品经典三 | 免费播放欧美一级特黄 | 日韩视频在线精品视频免费观看 | 国产成人18黄禁网站免费观看 | 韩国美女丝袜一区二区 | 国产在线一区二区三区 | 黄色毛片免费看 | 国产美女精品 | 麻豆精品一区二区 | 波多野吉衣 免费一区 |