欧美自拍小视频_国产片在线免费观看_中文字幕啪啪_成人av高清在线_欧美一区二区视频免费观看_亚洲国产激情

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.rfoamep.cn/bbs/index.asp)
--  VxWorks技術(shù)討論區(qū)  (http://www.rfoamep.cn/bbs/list.asp?boardid=11)
----  VxWorks在AT91RM9200上BSP設(shè)計(jì)方案  (http://www.rfoamep.cn/bbs/dispbbs.asp?boardid=11&id=1415)

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

主站蜘蛛池模板: 国产人妻鲁鲁一区二区 | 国产99对白在线播放 | 国产高潮刺激叫喊视频 | 亚洲日韩乱码中文无码蜜桃臀 | 亚洲乱码一二三四区国产 | 2021国内精品久久久久影院 | 久久久久久久久免费影院 | 无码国内精品人妻少妇蜜桃视频 | 亚洲精品无amm毛片 亚洲精品无播放器在线播放 | 国产成人精品一区二区三区视频 | 人人爽人人爽人人爽 | 精品国产综合区久久久久99 | 日韩精品中文字幕视频一区 | 18末成年禁止进入免费观看 | 国内精品综合九九久久精品 | 国产9 9在线 | 免费 | 丝袜a∨在线一区二区三区不卡 | 超97在线观看精品国产 | 一级黄色片看看 | 欧美另类tv| 日本中国内射bbxx | 在线 欧美 中文 亚洲 精品 | 亚洲精品无码日韩国产不卡av | 美女视频一区二区 | 国产亚洲精品一区二区三区 | 国产三级大片 | 宝贝把腿张开我要添你下边动态图 | 日韩国产精品亚洲а∨天堂免 | 9i9精品国产免费久久 | 国产精品免费视频播放 | 九九热在线观看 | 国产又爽又黄又无遮挡的激情视频 | 乱码午夜-极国产极内射 | 91艹逼| 少妇一区二区三区四区芒果tv | 精品午夜福利在线观看 | 国产精品视频一区二区三区w | 欧洲成人全免费视频网站 | 亚洲日本在线免费观看 | 熟女精品视频一区二区三区 | 香蕉成人伊视频在线观看 |