日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WinCE6.0的批量编译

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WinCE6.0的批量编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
《 WinCE下多份BSP的維護技巧》中曾介紹了維護不同項目BSP的方法,可以很方便的使用同一解決方案,在多個BSP中任意切換,編譯出不同項目對應的IMAGE。即便對于同一項目來說,有時也需要編譯不同IMAGE,即同一份BSP、同一個解決方案,編譯出不同版本IMAGE。而這一般通過修改環境變量、宏定義和條件編譯的方式實現。

隨著項目的推進,現在發布版本時,須編譯出4個不同IMAGE,對應于不同的分辨率、不同主板及MCU。之前都是手動修改BAT文件中的定義,然后Rebuild Current BSP and Subprojects。最近一段時間,改動較多,出版本也很頻繁,越來越覺得手動修改編譯太麻煩,于是基于命令行編譯的方式實現了自動批量編譯的功能。

首先創建一個批處理文件BuildAll.bat,內容如下。這里編譯出4個版本的內核,A00、B01、H01和A01,也可以很方便的加入更多類型。

@echo off
echo Build All
echo (A00)%date% %time%
start /wait .\A00.bat

echo (B01)%date% %time%
start /wait .\B01.bat

echo (H01)%date% %time%
start /wait .\H01.bat

echo (A01)%date% %time%
start /wait .\A01.bat

echo (END)%date% %time%
pause

A00.bat的內容如下。首先設置KernelCode為A00,然后調用setenv.bat,最后執行“blddemo -c -qbsp”。

set KernelCode=A00
call .\setenv.bat
call blddemo -c -qbsp
exit

B01.bat的內容如下。基本與A00.bat一致,僅僅修改了KernelCode的定義,修改為B01。

set KernelCode=B01
call .\setenv.bat
call blddemo -c -qbsp
exit

setenv.bat的內容如下。這里前三個定義與平臺有關,分辨是BSP、解決方案的名稱。

set __PLATFORMNAME__=Magellan
set __PROJECTNAME__=TCC89XX
set PBCONFIG=MAGELLAN Baseboards Release
set _WINCEROOT=C:\WINCE600
set WINCEDEBUG=retail
set CPU=ARMV4I
set PBWORKSPACEROOT=%_WINCEROOT%\OSDesigns\%__PROJECTNAME__%\%__PROJECTNAME__%
set _FLATRELEASEDIR=%_WINCEROOT%\OSDesigns\%__PROJECTNAME__%\%__PROJECTNAME__%\RelDir\%__PLATFORMNAME__%_%CPU%_Release\
set PATH=%PATH%;C:\Windows\system32;C:\Windows;C:\Program Files\Microsoft Platform Builder\6.00\cepb\IdeVS
set _PROJECTROOT=%PBWORKSPACEROOT%\WINCE600\%__PLATFORMNAME__%_%CPU%
set PBWORKSPACE=%_WINCEROOT%\OSDesigns\%__PROJECTNAME__%\%__PROJECTNAME__%\%__PROJECTNAME__%.pbxml
set WINCE_BAT=%_WINCEROOT%\Public\Common\Oak\misc\wince.bat
set PBXMLUTILS="C:\Program Files\Microsoft Platform Builder\6.00\cepb\IdeVS\pbxmlutils.exe"
call %WINCE_BAT% %CPU% %__PROJECTNAME__% %__PLATFORMNAME__%
%PBXMLUTILS% /getbuildenv > %_TARGETPLATROOT%\AutoBuild%__PROJECTNAME__%.bat
call %_TARGETPLATROOT%\AutoBuild%__PROJECTNAME__%.bat

如果修改了BSP或者子項目的代碼,只需要執行BuildAll.bat即可很方便的得到4個IMAGE。

如果修改了Catalog中的組件選擇,需要Clean Sysgen時,如何處理呢?創建一個RebuildAll.bat,內容如下。第一個執行的是A00C.bat。

@echo off
echo Rebuild All
echo (A00)%date% %time%
start /wait .\A00C.bat

echo (B01)%date% %time%
start /wait .\B01.bat

echo (H01)%date% %time%
start /wait .\H01.bat

echo (A01)%date% %time%
start /wait .\A01.bat

echo (END)%date% %time%
pause

A00C.bat的內容如下。與A00.bat的區別是,它調用blddemo clean -q,以執行Clean Sysgen。后續幾個只需Rebuild Current BSP and Subprojects

set KernelCode=A00
call .\setenv.bat
call blddemo clean -q
exit

BSP中Magellan.bat的部分內容如下。這里根據KernelCode,分別定義LCD及其他一些相關類型。

if not DEFINED KernelCode set KernelCode=A01

if "%KernelCode%"=="A00" set LCD_TYPE_HSD070=1

if "%KernelCode%"=="A01" set LCD_TYPE_HSD070=1
if "%KernelCode%"=="A01" set BSP_MALI_3D=

if "%KernelCode%"=="H00" set LCD_TYPE_BYD700=1

if "%KernelCode%"=="H01" set LCD_TYPE_BYD700=1
if "%KernelCode%"=="H01" set BSP_MALI_3D=
if "%KernelCode%"=="H01" set CMMB_PAUSE_ENABLE=1

if "%KernelCode%"=="B00" set LCD_TYPE_HSD070=1
if "%KernelCode%"=="B00" set CONNECT_SMD_DIRECTLY=1
if "%KernelCode%"=="B00" set VOLUME_LOUD=1

if "%KernelCode%"=="B01" set LCD_TYPE_HSD070=1
if "%KernelCode%"=="B01" set CONNECT_SMD_DIRECTLY=1
if "%KernelCode%"=="B01" set BSP_MALI_3D=
if "%KernelCode%"=="B01" set VOLUME_LOUD=1 Platform.reg中相關代碼如下,在注冊表中定義了內核類型。 [HKEY_LOCAL_MACHINE\SOFTWARE\VERSION]
"KernelCode"="$(KernelCode)" ;內核尾綴 A00 編譯設置

最后,很重要的一點就是編譯得到的BOOT和NK,需要自動拷貝到特定目錄下,否則就是長江后浪推前浪了。 而這個工作在postromimage.bat中指定,如下。

copy tcboot.rom G:\車機89OS\"%KernelCode%"\tcboot.rom
copy nk.rom G:\車機89OS\"%KernelCode%"\nk.rom

批量編譯的截圖如下,編譯一個IMAGE大概4分鐘左右,四個項目共16分鐘。

批量重新編譯的截圖如下,第一個Clean Sysgen大概20分鐘,后續一個4分鐘,共半個小時多一點。


實現了自動批量編譯,再出版本時確實方便多了。

http://www.cnblogs.com/we-hjb/archive/2011/12/18/2292727.html

總結

以上是生活随笔為你收集整理的WinCE6.0的批量编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。