手把手學(xué)習(xí)WinCE 5.0(二)
--Implementation塊,用來描述此組件在編譯時需要的各種信息,每個CEC文件中也可以有多個此信息塊,它是 ComponentType塊的一部分,其中的BSPPlatformDir,Children,OptionalChildren,DefaultDrivers,ExcludeWhenSet,FeatureVariable,ImplSize等條目的具體含義可以在PB的幫助文檔中找到,在此不一一細(xì)述。
本文引用地址:http://2s4d.com/article/245962.htm--BuildMethod塊,描述了編譯的方法,也是ComponentType塊的一部分,為了加深對上一次編譯階段的理解,我們詳細(xì)說一下此塊中Step和Action兩個條目。
Step用來說明編譯此組件將要在哪一步中進(jìn)行,對照上一次的內(nèi)容,它的取值為:CESYSGEN,BSP,BUILDREL,MAKEIMG。所以如果你自己開發(fā)了OAL或驅(qū)動之類的組件,你就需要自己決定讓PB在什么階段來編譯它,就要在CEC中通過Step來描述。其實在具體的編譯過程中,上述的每一階段又有PRE和POST兩個子階段,也就是說對于每個階段其實都有三步,即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,在完全編譯平臺的時候被使用;
--#CUSTOM():在編譯的時候運行批處理文件或可執(zhí)行文件;
--#COPY():從一個位置復(fù)制文件到另一個位置;
--#ENV():設(shè)置環(huán)境變量;
--#SRCCODE():指定了包含源程序文件的文件夾,只在編譯所選組件時應(yīng)用。
對于以上每個條目的具體用法可以參閱PB的幫助文檔。為了獲得感性認(rèn)識,我們最好用記事本打開幾個CEC文件來看一下。比如打開serial.cec看看串口驅(qū)動組件的實現(xiàn)方法等。
以上我們了解了CEC文件,我們再來解決后面的問題,即假設(shè)我從別的供應(yīng)商處拿到了一個設(shè)備的驅(qū)動程序,它帶了CEC文件,那么我要如何把這個組件加入到PB的組件包中呢?這個問題其實很簡單,只要在PB的File菜單下使用"Manage Catalog Items"命令即可。在這個彈出的對話框中的內(nèi)容和使用方法就不用我說了吧。
再來解決下一個問題,我要如何為我開發(fā)的組件編寫CEC文件呢?這個也好辦,在Tools菜單下使用"CEC Editor"命令即可,如果不會寫,可以先打開一個現(xiàn)有的CEC文件看看是如何組織的,然后再仿照它來寫自己的就可以了,別忘了寫完后要保存哦,同時也要注意GUID的問題。
此次內(nèi)容的最后,我們再來看一下BSP。什么是BSP呢,其實就是為某一種開發(fā)板實現(xiàn)了設(shè)備驅(qū)動的軟件包,它包含了源程序文件,二進(jìn)制文件等,還有OAL適配層,Bootloader和其他有關(guān)的配置文件。比如CE5的評估版就帶了x86的BSP,AMD的BSP和Emulator的BSP。
通常對BSP的操作都在BSP向?qū)е羞M(jìn)行,它位于Platform菜單中,利用它可以新建自己的BSP,復(fù)制現(xiàn)存的BSP,修改現(xiàn)存的BSP或創(chuàng)建全局的驅(qū)動程序。如果你準(zhǔn)備好了BSP所需要的那些東西就可以用它來生成你的BSP了,它會選擇必須的CE內(nèi)核組件。
好了,已經(jīng)寫了不少了,唉,寫這東西真是費時啊,不說了,希望我們能一起獲得更多的知識。
c++相關(guān)文章:c++教程
評論