WinCE中BSP的Clone

WinCE中BSP的Clone

 

談到WinCE的BSP Clone實際上就是BSP的複製,只不過是改變了一些BSP中的信息。在WinCE中,BSP的克隆應該很簡單,今天就做個簡單的介紹.

  我很少用到BSP的克隆,做WinCE也有幾年了,就用過幾次,最開始是爲了學習克隆了幾次,但沒有什麼實際用途。後來我在一家IC Design公司工作,公司開了一個新的ARM芯片,基於公司老的ARM提高了頻率,增加了一些新的模塊。這個時候我真正用到了BSP的克隆,基於公司老的ARM芯片的BSP,克隆一個BSP,然後在上面爲新的ARM芯片開發驅動和新的功能。

  所以,BSP的克隆應該算是BSP開發的第一步,在你什麼都沒有的時候,最好找一個和你的芯片以及平臺相近的已有的BSP包,進行克隆,然後再在上面開發新的BSP,這樣會節省時間。道理大家都明白,下面介紹一下:

  1. 基於WinCE6.0,首先打開VS2005,然後選擇”Tools”->”Platform Builder for CE 6.0”->”Clone BSP”以後,會彈出一個克隆BSP的窗口。

  2. 在彈出的窗口中,我們可以看到一些信息,在”Source BSP”中選擇目前WinCE系統中已經支持的BSP,選擇一個和你的平臺相近的BSP,也就是被克隆的BSP,在這裏我們選擇”Device Emulator: ARMV4I”。然後在”Name”輸入名字爲MyBSP,在”Description”中輸入This is my BSP。在”Platform Directory”中輸入MyBSP,這裏最好和上面的”Name”一致。”Vendor”輸入My,”Version”輸入1.0。應該是如下圖:

3. 最後點擊”Clone”就可以了,如果快的話,稍等幾秒就會完成。如果成功了,會彈出一個對話框告訴你BSP已經克隆成功。 

  比較簡單,BSP已經克隆完成。可以在”WINCE600Platform”下面看到一個MyBSP的文件夾,就是克隆出來的BSP。下面簡單介紹一些裏面的內容:

  sources.cmn:該文件是一個BSP的sources的總文件,它會作用於BSP中所有的sources文件,就是說在這裏面的設置會被用到BSP所有的sources文件中。

  MyBSP.bat:這是一個批處理文件,主要完成一些默認的環境變量的設置。他要和文件夾同名,在你以該BSP創建工程或者打開工程的時候,這個批處理會被自動運行.

  dirs:目錄文件,指明要被編譯的文件夾,一般都是指向src文件夾。

  cebasecesysgen.bat:該批處理會被cesysgen.bat調用,主要是設置一些WinCE系統相關的SYSGEN_xxx環境變量。該腳本沒有也無所謂,很多BSP中都沒有該腳本。

  CATALOG文件夾:該文件夾裏面包含了BSP的工程文件,名爲MyBSP.pbcxml。可以使用記事本直接編輯它,這裏要注意的是,他的名字要和文件夾名字一致,否則不能被識別出來。

  CESYSGEN文件夾:該文件夾中包含一個makefile文件,主要是根據環境變量的設置對代碼及配置文件進行過濾。

  FILES文件夾:該文件夾包含了BSP以及WinCE的配置文件,其中包括bib文件,註冊表文件,db文件等。

  SRC文件夾:就是BSP的源代碼文件夾,裏面包含了BSP的所有源代碼。其中應該包括”Bootloader”,”Drivers”,”Inc”,”OAL”和”Kitl”幾個文件夾。當然不同的BSP,名字可能略有差別。”Bootloader”是WinCE的bootloader,一般是指EBOOT了。”Drivers”中包含了BSP中所有的驅動。”Inc”是一個頭文件文件夾。”OAL”包含了WinCE中OAL部分的代碼。”Kitl”是實現基於網絡調試的Kilt的代碼。

 

致就介紹這些。上面說得挺多,其實就是介紹了一下BSP的克隆,以及BSP裏面都有些什麼東西。提到克隆,這裏在補充一下,在WinCE6.0中,不光是BSP可以克隆,WinCE中的一些組件也是可以克隆的。當我們創建了一個WinCE的工程以後,我們可以會使用一些WinCE的組建,但是我們想改一下他的源代碼,一般這些源代碼都是位於Public目錄下面的。更改Public目錄下的源代碼不是一個好的注意,首先你改Public目錄下的源代碼需要重新編譯Public目錄,這將用掉幾個小時的時間,其次如果微軟的補丁更新了你改的代碼,那你可能還需要重新修改。

  所以,在WinCE的工程中,如果你想更改Public目錄下的組件的源代碼,那麼克隆可能是一個更好的選擇,來介紹一下:

  1. 假如你已經有了一個工程,在你的工程裏面的”Catalog View”中,假如要克隆”Device Drivers”->”USB Function”->”USB Function Client”->”Mass Storage”這個模塊,你需要右擊,然後彈出如下的窗口:

2.然後選擇”Clone Catalog Item”,又會彈出一個窗口,如下:

 

3.選擇你要克隆的組件,然後點”OK”就可以了。成功以後,會彈出克隆成功的對話框。

  完成了上面的3個步驟,組件的克隆就已經完成,被克隆的組件會被自動的拷貝到你的工程的目錄下面,然後你在IDE環境中切換到”Solution Explorer”,你會在”Subprojects”下面看到你所克隆的組件,該組件現在已經作爲一個子工程存在了,而且代碼也已經拷貝到工程的目錄下面。

 

  最後囉嗦兩句,關於BSP的克隆應該比較簡單,但是有的時候也會出錯,一般出錯的原因可能是因爲被克隆的BSP有問題。關於組件的克隆,是在你需要修改Public目錄下源代碼的時候採用的,而且不是什麼組件都可以克隆的,如果組建不能被克隆,你就需要自己手動去改了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章