WinCE中BSP的Clone

來源:互聯網
上載者:User

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目錄下原始碼的時候採用的,而且不是什麼組件都可以複製的,如果組建不能被複製,你就需要自己手動去改了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.