在WINCE做MULTIBIN+XIP方式的启动映像文件时,往往需要分两步走:第一步、生成映像文件;第二步、修改ce.bib然后再romimage一次,以前的做法是手动修改极不方便,后来在网上找到了一些办法并整合到一起就能够做到一步到位。
1、做一个批处理放在BSP的Files/premake目录下供PB调用,文件内容如下:
- echo.
- echo%_TGTPLAT%-preriprocessing...
- echo.
- if"%IMGMULTIXIP%"=="1"cd%_TARGETPLATROOT%/Files/premake
- if"%IMGMULTIXIP%"=="1"copy%_FLATRELEASEDIR%/ce.bib%_TARGETPLATROOT%/Files/premake
- if"%IMGMULTIXIP%"=="1"copyce.bibce_orig.bib
- if"%IMGMULTIXIP%"=="1"oembibhelpermultibin.txtce_orig.bibce.bib
- if"%IMGMULTIXIP%"=="1"copyce.bib%_FLATRELEASEDIR%
- if"%IMGMULTIXIP%"=="1"cd%_FLATRELEASEDIR%
- if"%IMGMULTIXIP%"=="1"romimagece.bib
2、oembibhelper.vbs脚本的内容如下:
-
-
-
-
-
-
-
-
-
-
-
-
- PublicFunctionSplitEx(InputText,Delimiter)
-
-
-
-
-
-
- DimstrReplacedText
- DimintIndex
-
-
- strReplacedText=Trim(Replace(InputText,vbTab,""))
-
-
- DoWhileInStr(strReplacedText,"")
- strReplacedText=Replace(strReplacedText,"","")
- Loop
-
-
-
- IfLen(Delimiter)=0Then
- SplitEx=Split(strReplacedText)
- Else
- SplitEx=Split(strReplacedText,Delimiter)
- EndIf
- EndFunction
- PrivateFunctionLoadConfigFile(Filename)
- ConstForReading=1,ForWriting=2,ForAppending=8
- DimLCArray()
- LoopVal=0
- Setfs=CreateObject("Scripting.FileSystemObject")
- Seta=fs.OpenTextFile(Filename,ForReading,False)
- DoWhileNota.AtEndOfStream
- FileLine=a.ReadLine()
- ifLeft(FileLine,1)=";"Then
-
- Else
- SubStrings=SplitEx(FileLine,"")
- IfUBound(SubStrings)=1Then
- ReDimPreserveLCArray(LoopVal)
- LCArray(LoopVal)=SubStrings
- LoopVal=LoopVal+1
-
- EndIf
- a.Close
- LoadConfigFile=LCArray
- EndFunction
- PrivateFunctionCalcRegionString(InString,ConfigArrayElement)
- CalcRegionString=InString
- ForLoopVal=1ToUBound(ConfigArrayElement)
- IfLeft(ConfigArrayElement(LoopVal),1)="@"Then
- CalcRegionString=Right(ConfigArrayElement(LoopVal),Len(ConfigArrayElement(LoopVal))-1)
- Next
- PrivateFunctionFindReplaceStrings(SubStrings,ConfigArray,StringToReplace,ReplaceString)
- FindReplaceStrings=False
- LoopVal=0
- ForLoopVal=0ToUBound(ConfigArray)
- IfSubStrings(0)=ConfigArray(LoopVal)(0)Then
- IfUBound(SubStrings)=2Then
- TypeString=CalcRegionString("",ConfigArray(LoopVal))
- StringToReplace=SubStrings(1)
- ReplaceString=SubStrings(2)+""+TypeString
- FindReplaceStrings=True
- IfUBound(SubStrings)=3Then
- TypeString=CalcRegionString(SubStrings(3),ConfigArray(LoopVal))
- StringToReplace=SubStrings(2)
- ReplaceString=TypeString
- FindReplaceStrings=True
-
-
- SetArgs=Wscript.Arguments
- ifArgs.count<>3then
- Wscript.Echo"Error:InvalidNumberofarguments"
- Wscript.Echo""
- Wscript.Echo"Usage:cscriptbibhelper.vbsconfigfileinbibfileoutbibfile"
- Wscript.Quit
- Endif
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|