在bsp開發的早期階段,我們一般是clone乙個與目標平台最相近的的bsp,然後以此為基礎做修改。在實際開發過程中,還可能同時存在多種型號的產品。它們的硬體幾乎一樣,主要是外設不同,如lcd解析度、按鍵定義和gpio的使用等。這種情況下,一般可通過環境變數、巨集定義和條件編譯來區分不同的產品型號,乙份bsp對應幾種型號的產品。但如果外設的差別太大,使用這個方法反而會增加**維護的難度,單獨維護乙份,可能更為方便。clone bsp就是經常使用的一種方法。新建wince6.0的專案時同時選擇兩個bsp,然後根據需要有選擇的編譯。以上說的這些都是bsp開發中常見的方法。本文介紹另外一種技巧,lgh首創的,用了快一年了,感覺更方便,跟大家分享一下。
假設以deviceemulator的bsp為基礎,針對兩類產品建立兩份bsp,deviceemulator1和deviceemulator2。只需要在platform的目錄下,建立目錄deviceemulator1和deviceemulator2,並將deviceemulator的內容拷貝到這兩個目錄下,重新命名deviceemulator為deviceemulatorori。至此,準備工作就做完了。在新建專案之前,只需建立乙個目錄符號鏈結。例如需編譯deviceemulator1的系統時,在命令列視窗輸入"mklink /d deviceemulator deviceemulator1」。同樣,需要編譯deviceemulator2的系統時,在命令列視窗輸入"mklink /d deviceemulator deviceemulator2」。這種切換可以隨時進行,為了使用更方便,可以寫成批處理檔案,內容如下。
rmdir deviceemulator
/ q
mklink
/ d deviceemulator deviceemulator1
@echo off
echo.
&pause
mklink在windows 7中直接有支援。在winxp下,可以使用linkd,對應的批處理檔案的內容如下。
linkd deviceemulator deviceemulator1
@echo off
echo.
&pause
使用該方法後,乙個專案工程就可以編譯出兩個不同產品的wince作業系統映像。如果選擇的系統元件不一樣,我們也可以建立多個專案,分別編譯,非常靈活。這種方法的關鍵是在ntfs的分割槽中建立目錄符號鏈結,所以需要在ntfs的分割槽上用。
WinCE下多份BSP的維護技巧
在bsp開發的早期階段,我們一般是clone乙個與目標平台最相近的的bsp,然後以此為基礎做修改。在實際開發過程中,還可能同時存在多種型號的產品。它們的硬體幾乎一樣,主要是外設不同,如lcd解析度 按鍵定義和gpio的使用等。這種情況下,一般可通過環境變數 巨集定義和條件編譯來區分不同的產品型號,乙...
WinCE下,快速編譯驅動及BSP
wince下,快速編譯驅動及bsp 在wince下面,建立工程,然後編譯是需要花很長時間的。當我們第一編譯完工程以後,如果需要改我們的驅動或者bsp,我們是不需要重新編譯整個工程的 1.如果更改了driver,以wince6.0為例,我們可以在選單裡面選擇 build open release di...
WinCE下,快速編譯驅動及BSP
在wince下面,建立工程,然後編譯是需要花很長時間的。當我們第一編譯完工程以後,如果需要改我們的驅動或者bsp,我們是不需要重新編譯整個工程的 1.如果更改了driver,以wince6.0為例,我們可以在選單裡面選擇 build open release directory in build w...