cec檔案詳解
經過以前的學習,我們已經掌握了生成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 bsp buildrel makeimg
#build(dir,...) no yes no no
#build(sources) no yes no no
#build(mak,...) no yes no no
#custom(...,...) no yes yes no
#copy(...,...) yes no yes no
#env(...,...) no yes no yes
#srccode(...) no no no no
這些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核心元件。
Nginx配置檔案解析之二
這一部分,我們看看nginx怎樣來組織http block,server block和location location的。首先設定乙個ngx http conf ctx t結構,即ctx。在分析這個結構中成員的作用時,先來看這樣乙個結構 各個module可以根據需要設定這些函式指標。這些函式有他們...
二 nginx配置檔案詳解
定義nginx執行的使用者和使用者組 user www www nginx程序數,建議設定為等於cpu總核心數。worker processes 4 cpu親和力配置,讓不同的程序使用不同的cpu worker cpu affinity 0001 0010 0100 1000 全域性錯誤日誌定義型別...
(二)詳解nginx配置檔案
nginx的配置檔案組成部分 注意 user nginx nginx 啟動nginx工作程序的使用者和組 worker processes number auto 啟動nginx工作程序的數量 worker cpu affinity 00000001 00000010 00000100 000010...