新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > WinCE 5.0邊做邊學(xué)(二)

WinCE 5.0邊做邊學(xué)(二)

作者: 時(shí)間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

--Implementation塊,用來描述此組件在編譯時(shí)需要的各種信息,每個(gè)CEC文件中也可以有多個(gè)此信息塊,它是 ComponentType塊的一部分,其中的BSPPlatformDir,Children,OptionalChildren,DefaultDrivers,ExcludeWhenSet,FeatureVariable,ImplSize等條目的具體含義可以在PB的幫助文檔中找到,在此不一一細(xì)述。

--BuildMethod塊,描述了編譯的方法,也是ComponentType塊的一部分,為了加深對上一次編譯階段的理解,我們詳細(xì)說一下此塊中Step和Action兩個(gè)條目。

Step用來說明編譯此組件將要在哪一步中進(jìn)行,對照上一次的內(nèi)容,它的取值為:CESYSGEN,BSP,BUILDREL,MAKEIMG。所以如果你自己開發(fā)了OAL或驅(qū)動之類的組件,你就需要自己決定讓PB在什么階段來編譯它,就要在CEC中通過Step來描述。其實(shí)在具體的編譯過程中,上述的每一階段又有PRE和POST兩個(gè)子階段,也就是說對于每個(gè)階段其實(shí)都有三步,即PRECESYSGEN,CESYSGEN,POSTCESYSGEN,PREBSP,BSP,POSTBSP……一般不用具體到這樣詳細(xì)的程度。

Action則描述了組件編譯的行為,有效的行為與編譯階段的對應(yīng)關(guān)系如下表所示:

ActionCESYSGENBSPBUILDRELMAKEIMG
#BUILD(DIR,...)NoYesNoNo
#BUILD(SOURCES)NoYesNoNo
#BUILD(MAK,...)NoYesNoNo
#CUSTOM(...,...)NoYesYesNo
#COPY(...,...)YesNoYesNo
#ENV(...,...)NoYesNoYes
#SRCCODE(...)NoNoNoNo

這些Action的意義如下:

--#BUILD():使用DIRS文件或SOURCES文件或MAKE文件來調(diào)用build.exe,在完全編譯平臺的時(shí)候被使用;

--#CUSTOM():在編譯的時(shí)候運(yùn)行批處理文件或可執(zhí)行文件;

--#COPY():從一個(gè)位置復(fù)制文件到另一個(gè)位置;

--#ENV():設(shè)置環(huán)境變量;

--#SRCCODE():指定了包含源程序文件的文件夾,只在編譯所選組件時(shí)應(yīng)用。

對于以上每個(gè)條目的具體用法可以參閱PB的幫助文檔。為了獲得感性認(rèn)識,我們最好用記事本打開幾個(gè)CEC文件來看一下。比如打開serial.cec看看串口驅(qū)動組件的實(shí)現(xiàn)方法等。

以上我們了解了CEC文件,我們再來解決后面的問題,即假設(shè)我從別的供應(yīng)商處拿到了一個(gè)設(shè)備的驅(qū)動程序,它帶了CEC文件,那么我要如何把這個(gè)組件加入到PB的組件包中呢?這個(gè)問題其實(shí)很簡單,只要在PB的File菜單下使用Manage Catalog Items命令即可。在這個(gè)彈出的對話框中的內(nèi)容和使用方法就不用我說了吧。

再來解決下一個(gè)問題,我要如何為我開發(fā)的組件編寫CEC文件呢?這個(gè)也好辦,在Tools菜單下使用CEC Editor命令即可,如果不會寫,可以先打開一個(gè)現(xiàn)有的CEC文件看看是如何組織的,然后再仿照它來寫自己的就可以了,別忘了寫完后要保存哦,同時(shí)也要注意GUID的問題。

此次內(nèi)容的最后,我們再來看一下BSP。什么是BSP呢,其實(shí)就是為某一種開發(fā)板實(shí)現(xiàn)了設(shè)備驅(qū)動的軟件包,它包含了源程序文件,二進(jìn)制文件等,還有OAL適配層,Bootloader和其他有關(guān)的配置文件。比如CE5的評估版就帶了x86的BSP,AMD的BSP和Emulator的BSP。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉