經過以前的學習,我們已經掌握了生成ce的過程及編譯的幾個階段,這次我們再來了解一下platform builder中為我們提供的元件包的管理方式以及如何管理自己的元件。
在platform builder(以下簡稱
pb)中的右側有乙個"catalog"視窗,其中列出了所有可供使用的元件,我們可以看到其內容是非常之多的,現在的疑問就產生了,pb是如何管理這些組的呢?如果我有乙個新裝置的
驅動元件要如何才能放到這個元件包視窗中呢?如果我開發了乙個裝置驅動以供其他人使用那我要如何才能發布我的驅動呢?下面,我們就來解決這些問題。
在pb中,這些元件的管理都是能過一種元件檔案(.cec檔案)來實現的。在ce4中,系統自帶的cec檔案都位於pb的安裝資料夾下的cec資料夾,我們可以在那裡很容易的找到它們,但是在ce5中,它的位置變了,你可以在wince500/public/common/oak/catalog/cec下找到他們。
如果你開發了oal,裝置驅動或其他元件,你就可以能過cec檔案來把它們加入到pb中。通過在pb環境中匯入cec檔案,其他的平台開發人員就可以使用這些元件了。cec檔案是用來描述元件資訊的文字檔案,它包括了一些塊的列表,主要包括以下四種資訊塊:
--cecinfo塊,用來描述此cec檔案的資訊,每個cec檔案只能含有乙個此資訊塊,從中你可以看到該cec的名稱、guid、版本、**商和簡要描述。
--componenttype塊,它描述了最高端別的元件型別,在乙個cec檔案中可以有多個此資訊塊,它通過group,requiredcemodules,excludewhenset,maxresolvedimplsallowed等條目來描述此元件所在的組,需要的ce元件,排除的元件及允許在乙個ce平台中存在的數量等資訊。
--implementation塊,用來描述此元件在編譯時需要的各種資訊,每個cec檔案中也可以有多個此資訊塊,它是 componenttype塊的一部分,其中的bspplatformdir,children,optionalchildren,defaultdrivers,excludewhenset,featurevariable,implsize等條目的具體含義可以在pb的幫助文件中找到,在此不一一細述。
--buildmethod塊,描述了編譯的方法,也是componenttype塊的一部分,為了加深對上一次編譯階段的理解,我們詳細說一下此塊中step和action兩個條目。
step用來說明編譯此元件將要在哪一步中進行,對照上一次的內容,它的取值為:cesysgen,bsp,buildrel,makeimg。所以如果你自己開發了oal或驅動之類的元件,你就需要自己決定讓pb在什麼階段來編譯它,就要在cec中通過step來描述。其實在具體的編譯過程中,上述的每一階段又有pre和post兩個子階段,也就是說對於每個階段其實都有三步,即precesysgen,cesysgen,postcesysgen,prebsp,bsp,postbsp……一般不用具體到這樣詳細的程度。
action則描述了元件編譯的行為,有效的行為與編譯階段的對應關係如下表所示:
action
cesysgen
bspbuildrel
makeimg
#build(dir,...)
noyes
nono
#build(sources)
noyes
nono
#build(mak,...)
noyes
nono
#custom(...,...)
noyes
yesno
#copy(...,...)
yesno
yesno
#env(...,...)
noyes
noyes
#srccode(...)
nono
nono
這些action的意義如下:
--#build():使用dirs檔案或sources檔案或make檔案來呼叫build.exe,在完全編譯平台的時候被使用;
--#custom():在編譯的時候執行批處理檔案或可執行檔案;
--#copy():從乙個位置複製檔案到另乙個位置;
--#env():設定環境變數;
--#srccode():指定了包含源程式檔案的資料夾,只在編譯所選元件時應用。
對於以上每個條目的具體用法可以參閱pb的幫助文件。為了獲得感性認識,我們最好用記事本開啟幾個cec檔案來看一下。比如開啟serial.cec看看串列埠驅動元件的實現方法等。
以上我們了解了cec檔案,我們再來解決後面的問題,即假設我從別的**商處拿到了乙個裝置的驅動程式,它帶了cec檔案,那麼我要如何把這個元件加入到pb的元件包中呢?這個問題其實很簡單,只要在pb的file選單下使用"manage catalog items"命令即可。在這個彈出的對話方塊中的內容和使用方法就不用我說了吧。
再來解決下乙個問題,我要如何為我開發的元件編寫cec檔案呢?這個也好辦,在tools選單下使用"cec editor"命令即可,如果不會寫,可以先開啟乙個現有的cec檔案看看是如何組織的,然後再仿照它來寫自己的就可以了,別忘了寫完後要儲存哦,同時也要注意guid的問題。
此次內容的最後,我們再來看一下bsp。什麼是bsp呢,其實就是為某一種開發板實現了裝置驅動的軟體包,它包含了源程式檔案,二進位制檔案等,還有oal適配層,bootloader和其他有關的配置檔案。比如ce5的評估版就帶了x86的bsp,amd的bsp和emulator的bsp。
通常對bsp的操作都在bsp嚮導中進行,它位於platform選單中,利用它可以新建自己的bsp,複製現存的bsp,修改現存的bsp或建立全域性的驅動程式。如果你準備好了bsp所需要的那些東西就可以用它來生成你的bsp了,它會選擇必須的ce核心元件。
好了,已經寫了不少了,唉,寫這東西真是費時啊,不說了,希望我們能一起獲得更多的知識。
WinCE配置檔案詳解之(二) CEC檔案
cec檔案詳解 經過以前的學習,我們已經掌握了生成ce的過程及編譯的幾個階段,這次我們再來了解一下platform builder中為我們提供的元件包的管理方式以及如何管理自己的元件。在platform builder 以下簡稱pb 中的右側有乙個 catalog 視窗,其中列出了所有可供使用的元件...
HDMI 介面及CEC訊號
hdmi介面 hdmi high definition inte ce 傳輸介面,可以實現數字音訊,視屏格式的高畫質傳輸。目前已經支援高達4k,甚至8k解析度的影象傳輸。hdmi視屏和音訊訊號傳輸通道採用了的 s time minimized differential signal 最小化差分訊號傳...
mysql檔案詳解 MySQL日誌檔案詳解
概述 日誌檔案是mysql資料庫的重要組成部分。mysql有幾種不同的日誌檔案,通常包括錯誤日誌檔案,二進位制日誌,通用日誌,慢查詢日誌,等等。這些日誌可以幫助我們定位mysqld內部發生的事件,資料庫效能故障,記錄資料的變更歷史,使用者恢復資料庫等等。本文主要描述mysql的各種日誌檔案。1.錯誤...