WinCE 5.0邊做邊學(4)

來源:互聯網
上載者:User
作者: 文斌
首頁: 文斌程式網 http://www.wenbinweb.com

    經過以前的學習,我們已經掌握了產生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核心組件。
    好了,已經寫了不少了,唉,寫這東西真是費時啊,不說了,希望我們能一起獲得更多的知識。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.