<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > VxWorks移植到AT91RM9200的BSP定制過(guò)程

VxWorks移植到AT91RM9200的BSP定制過(guò)程

作者: 時(shí)間:2010-12-14 來(lái)源:網(wǎng)絡(luò ) 收藏


3.2.5 修改sysLib c

sysLib.c是初始化的核心代碼。在這個(gè)文件中,必須復位所有的硬件,使其處于初始化狀態(tài),保證后面開(kāi)中斷后不會(huì )產(chǎn)生假中斷。這個(gè)文件包含了由目標機體系結構決定的、與系統有關(guān)的C程序。這些C程序提供板級接口?;谶@些接口,和應用程序的構造與系統無(wú)關(guān)。該文件的功能包括:定義了RRAM、SRAM、ROM、外部片選芯片的物理地址和虛擬地址;定義中斷優(yōu)先級寄存器中各個(gè)位對應的優(yōu)先級;調用sysHwInit()初始化串口和網(wǎng)口,安裝IRQ/SVC中斷堆棧分配程序;總線(xiàn)中斷功能等。本文件中有兩個(gè)重要的函數:sysHwInit()和sysHwInit2()。sysHwInit()的代碼如下:


sysHwInit2()用來(lái)連接系統中斷,安裝ISR,進(jìn)行其他配置。它在初始化系統時(shí)鐘時(shí),由sysClkConnect()調用,主要用來(lái)初始化中斷庫和中斷驅動(dòng),安裝系統時(shí)鐘和輔助時(shí)鐘的中斷以及串口等設備的中斷。

4 編譯生成映像

系統完成后,有兩種編譯方式:一種是在Tornado下進(jìn)行編譯,生成映像文件;另一種是直接用Make工具編譯,但要寫(xiě)好腳本文件。裝載到目標板中的映像取決于使用的下載方式,其中主要包括以下幾種:

。這是基于RAM的映像,VxWorks需要通過(guò)目標板上的引導程序從串口或網(wǎng)口把它下載到目標板的RAM中運行。在Tornado開(kāi)發(fā)環(huán)境下,這是一個(gè)默認選項,主要用在調試階段。使用宿主機上的WindSh工具和符號表。
②VxWorks.st。這也是基于RAM的映像,需要通過(guò)引導ROM把VxWorks映像下載到目標機內存中才能執行。該對象文件內置符號表。
③VxWorkS_rom。這是一個(gè)非壓縮、基于ROM的映像。在這個(gè)對象文件執行前,先把自己拷貝到目標機RAM中。這種類(lèi)型的映像通常在啟動(dòng)階段速度比較慢,因為代碼在ROM中執行,但執行階段比ROM駐留型的映像要快。
④VxWorks.st_rom。這是基于ROM壓縮的VxWorks映像。它在執行前先把自己解壓并拷貝到目標機RAM中執行。
⑤VxWorks.res_rom。這是ROM駐留型的非壓縮VxWorks的映像。它在執行前把數據段拷貝到目標機RAM中。這種類(lèi)型的映像在啟動(dòng)階段比較快,但在目標機上執行的速度比基于ROM類(lèi)型的映像慢(因為CPU訪(fǎng)問(wèn)ROM比訪(fǎng)問(wèn)RAM要慢)。通常在RAM空間比較小的目標機上使用這種類(lèi)型的映像。

5 需要注意的問(wèn)題

首先,應該避免在romInit.s中進(jìn)行過(guò)多的初始化操作。該史件中只是進(jìn)行必要的最小硬件初始化,大部分硬件的初始化都是在sysHwInit()中完成的。另外,romTnit.s中的代碼不應當被其他模塊或函數調用。

其次,應該避免sysAlib.s中工作太少。開(kāi)發(fā)人員通常錯誤地認為在romInit.s里初始化過(guò)的設備不需要在sysAlib.s中重新初始化。實(shí)際上,VxWorks映像并不認為它是由引導映像程序引導的,因此,它必須重新設置和初始化所有它自己需要使用的設備。sysInit()是該文件中最主要的一個(gè)函數,也是第一個(gè)函數。該例程中很多工作與romInit()是相同的,目的是保證內核映像在運行與冷啟動(dòng)時(shí),軟硬件環(huán)境高度一致。

最后,對特定的BSF。驅動(dòng)程序的修改,只能在特定的目錄下。此設計中目錄為target/config/integra-tor920t,不要直接在target/src/drv以及target/h/drv中修改。只有風(fēng)河公司的源程序才能存放在這些目錄下。

6 結論

本文在介紹BSP的概念、作用和vxWorks映像分類(lèi)以及系統啟動(dòng)流程的基礎上,以Atmel公司生產(chǎn)的ARM9處理器為例,重點(diǎn)介紹了VxWorks的BSP設計中需要修改的幾個(gè)重要文件,最后提出了需要注意的問(wèn)題。盡管目標板硬件不同,BSP的實(shí)現也不盡相同,但基本思想是一樣的。本設計對各類(lèi)開(kāi)發(fā)板的系統和后續的應用程序開(kāi)發(fā)有一定的參考價(jià)值。

本文引用地址:http://dyxdggzs.com/article/151196.htm

上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>