从makeimg.out文件看PB打包过程(作者:wogoyixikexie@gliet)
2009-2-2
以前不知道这个NK是如何生成的,后来在wince板块上singlerace前辈提示了一下,现在我找makeimg.out来看看。
makeimg: Change directory to C:\WINCE500.
makeimg: run command: cmd /C C:\WINCE500\public\common\oak\misc\pbpremakeimg
Generating PBWorkspace Custom makeimg build step batch Files to C:\WINCE500\PBWorkspaces\ARMSYS2440\WINCE500\smdk2440a_ARMV4I\oak
Done Generating PBWorkspace Custom makeimg build step batch Files
makeimg: Check for C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\PreMakeImg.bat to run.
makeimg: Found localization settings.
...........................................................
makeimg: Check for C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\PreFmergeBib.bat to run.
makeimg: run command: fmerge -bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\ce.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\config.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\common.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\dcom.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\gdiex.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\ie.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\script.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\servers.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\shellsdk.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\shell.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\wceshellfe.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\wceappsfe.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\viewers.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\directx.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\datasync.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\netcf.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\SQLCE.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\NETCFV2.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\SQLMOBILE.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\project.bib C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\platform.bib
fmerge for Windows CE (Release) (Built on Jan 29 2004 17:34:26)
makeimg: Check for C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\PostFmergeBib.bat to run.
makeimg: Check for C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\PreFmergeReg.bat to run.
makeimg: run command: fmerge -reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\reginit.ini C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\common.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\dcom.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\gdiex.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\ie.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\script.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\servers.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\shell.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\wceshellfe.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\wceappsfe.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\viewers.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\directx.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\datasync.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\netcf.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\SQLCE.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\NETCFV2.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\SQLMOBILE.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\project.reg C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\postproc\platform.reg
fmerge for Windows CE (Release) (Built on Jan 29 2004 17:34:26)
makeimg: Check for C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\PostFmergeReg.bat to run.
makeimg: run command: regcomp C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\reginit.ini C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release
regcomp: Got LOCALE=0804, using CodePage=936
regcomp: Delete non-existent value [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers] "DefaultClientDriver" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent] "Version" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/bmp] "CLSID" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/gif] "CLSID" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg] "CLSID" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/pjpeg] "CLSID" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/plain] "CLSID" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/x-xbitmap] "CLSID" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\.gif] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\.jpg] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\.jpeg] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\.bmp] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\http] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\https] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\ftp] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\urlfile\Shell\Open\Command] "Default" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\CLSID\{521FB373-7654-49F2-BDB1-0C6E6660714F}\Pins\Output] "ConnectsToPin" in system registry
regcomp: Overwriting existing value [HKEY_CLASSES_ROOT\.wav] "Default" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power] "BattPowerOff" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\Comm\Irsir1\Parms] "Port" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\Comm\Irsir1\Parms] "TransceiverType" in system registry
regcomp: Deleting existing value [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers] "DefaultClientDriver" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class] "idVendor" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class] "Manufacturer" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class] "idProduct" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class] "Product" in system registry
regcomp: Overwriting existing value [HKEY_CURRENT_USER\ControlPanel\Comm] "Cnct" in system registry
regcomp: Overwriting existing value [HKEY_CURRENT_USER\ControlPanel\Backlight] "ACTimeout" in system registry
regcomp: Overwriting existing value [HKEY_CURRENT_USER\ControlPanel\Backlight] "BatteryTimeout" in system registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\System\StorageManager\FATFS] "Flags" in boot registry
regcomp: Overwriting existing value [HKEY_LOCAL_MACHINE\System\StorageManager\FATFS] "Flags" in system registry
regcomp: InitRegistry Finished (9551 lines).
regcomp: Writing registry in hive format
regcomp: writing registry hive (C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\default.hv)...
regcomp: writing registry hive (C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\boot.hv)...
regcomp: writing registry hive (C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\user.hv)...
regcomp: Done.
————————以上可以看出这个打包是通过一系列的批处理文件来完成的,这些细节我们不需要理会,知道流程即可。
makeimg: Performing localization since C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\prevlc.txt doesn't exist or contains locale different from 0804.
makeimg: Localizing files listed in C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\common.loc
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\coredll.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\coredll.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\commctrl.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\commctrl.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\msim.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\msim.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\commdlg.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\commdlg.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\crypt32.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\crypt32.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\prnerr.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\prnerr.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\rnaapp.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\rnaapp.exe
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\connmc.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\connmc.exe
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\netui.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\netui.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\netmui.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\netmui.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\unimodem.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\unimodem.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\tapi.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\tapi.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\btsvc.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\btsvc.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\softkb.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\softkb.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\gwes.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\gwes.exe
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\waveapi.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\waveapi.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\fatutil.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\fatutil.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\filesys.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\filesys.exe
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\coredll.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\coredll.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\gwes.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\gwes.exe
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\commctrl.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\commctrl.dll
makeimg: Localizing files listed in C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\ie.loc
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\shdoclc.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\shdoclc.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\shlwapi.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\shlwapi.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\ieceext.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\ieceext.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\wininet.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\wininet.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\inetcpl.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\inetcpl.cpl
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\urlmon.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\urlmon.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\mlang.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\mlang.dll
——这就是生成DLL的过程!(以前找死都找不到)
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\peghelp.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\peghelp.exe
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\webview.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\webview.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\browser.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\browser.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\msscript.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\msscript.dll
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\control.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\control.exe
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\cplmain.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\cplmain.cpl
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\connpnl.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\connpnl.cpl
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\intlp.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\intlp.cpl
makeimg: run command: res2exe -r -c C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\0804\stguip.res C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\stguip.cpl
——以上是控制面板相关的东西。
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\kern.exe to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\nk.exe for debugger
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\tfat.dll to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\fatfsd.dll for debugger
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\com_card.dll to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\serial.dll for debugger
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\systemcpl.cpl to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\system.cpl for debugger
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\KbdS3C2440Us.dll to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\kbdmouse.dll for debugger
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\s3c2440a_touch.dll to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\touch.dll for debugger
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\pcc_serv16.dll to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\pcc_serv.dll for debugger
Copying C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\pcc_pcm.dll to C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\pcmcia.dll for debugger
————for Debugger?为什么要这么做,我没有选Debugger啊
Module coredll.dll at offset 01ffe000 data, 03f71000 code
Module devmgr.dll at offset 01ffc000 data, 03f61000 code
Module regenum.dll at offset 01ffa000 data, 03f51000 code
Module busenum.dll at offset 01ff8000 data, 03f41000 code
Module pm.dll at offset 01ff6000 data, 03f31000 code
Module irsir.dll at offset 01ff4000 data, 03f21000 code
Module notify.dll at offset 01ff2000 data, 03f11000 code
Module fatfsd.dll at offset 01ff0000 data, 03ef1000 code
Module diskcache.dll at offset 01fee000 data, 03ee1000 code
Module fatutil.dll at offset 01fec000 data, 03ed1000 code
Module zlib.dll at offset 01fea000 data, 03ec1000 code
Module commctrl.dll at offset 01fe8000 data, 03e51000 code
Module commdlg.dll at offset 01fe6000 data, 03e31000 code
Module softkb.dll at offset 01fe4000 data, 03e21000 code
Module msim.dll at offset 01fde000 data, 03e01000 code
Module prnport.dll at offset 01fdc000 data, 03df1000 code
Module prnerr.dll at offset 01fda000 data, 03de1000 code
Module binfs.dll at offset 01fd7000 data, 03dd1000 code
Module fsdmgr.dll at offset 01fd5000 data, 03db1000 code
Module mspart.dll at offset 01fd3000 data, 03da1000 code
Module waveapi.dll at offset 01fd1000 data, 03d81000 code
Module audevman.dll at offset 01fcf000 data, 03d71000 code
Module ceddk.dll at offset 01fcd000 data, 03d61000 code
Module netui.dll at offset 01fc5000 data, 03d21000 code
Module ethman.dll at offset 01fc3000 data, 03d11000 code
Module ppp.dll at offset 01fc1000 data, 03cf1000 code
Module asyncmac.dll at offset 01fbf000 data, 03ce1000 code
Module pptp.dll at offset 01fbd000 data, 03cc1000 code
Module cxport.dll at offset 01fba000 data, 03cb1000 code
Module ircomm.dll at offset 01fb8000 data, 03ca1000 code
Module iphlpapi.dll at offset 01fb6000 data, 03c91000 code
Module winsock.dll at offset 01fb4000 data, 03c81000 code
Module ws2.dll at offset 01fb2000 data, 03c71000 code
Module ws2instl.dll at offset 01fb0000 data, 03c61000 code
Module wspm.dll at offset 01fae000 data, 03c51000 code
Module nspm.dll at offset 01fac000 data, 03c41000 code
Module ssllsp.dll at offset 01faa000 data, 03c31000 code
Module secur32.dll at offset 01fa8000 data, 03c21000 code
Module schannel.dll at offset 01fa6000 data, 03c01000 code
Module ntlmssp.dll at offset 01fa4000 data, 03bf1000 code
Module credsvc.dll at offset 01fa2000 data, 03be1000 code
Module credprov.dll at offset 01fa0000 data, 03bd1000 code
Module spnego.dll at offset 01f9e000 data, 03bc1000 code
Module afd.dll at offset 01f9c000 data, 03ba1000 code
Module ndis.dll at offset 01f9a000 data, 03b71000 code
Module ndisuio.dll at offset 01f98000 data, 03b61000 code
Module ndispwr.dll at offset 01f96000 data, 03b51000 code
Module autoras.dll at offset 01f94000 data, 03b41000 code
Module wzcsvc.dll at offset 01f92000 data, 03b21000 code
Module wzcsapi.dll at offset 01f90000 data, 03b11000 code
Module eapol.dll at offset 01f8e000 data, 03b01000 code
Module eap.dll at offset 01f8c000 data, 03af1000 code
Module eapchap.dll at offset 01f8a000 data, 03ae1000 code
Module eaptls.dll at offset 01f88000 data, 03ad1000 code
Module wlclient.dll at offset 01f86000 data, 03ab1000 code
Module dhcp.dll at offset 01f84000 data, 03aa1000 code
Module tcpip6.dll at offset 01f7b000 data, 03a51000 code
Module dhcpv6l.dll at offset 01f79000 data, 03a41000 code
Module ipv6hlp.dll at offset 01f76000 data, 03a31000 code
Module tcpstk.dll at offset 01f6d000 data, 039d1000 code
Module irdastk.dll at offset 01f6b000 data, 039b1000 code
Module tapi.dll at offset 01f69000 data, 03991000 code
Module unimodem.dll at offset 01f67000 data, 03981000 code
Module redir.dll at offset 01f65000 data, 03951000 code
Module netbios.dll at offset 01f63000 data, 03941000 code
Module crypt32.dll at offset 01f60000 data, 038f1000 code
Module msasn1.dll at offset 01f5e000 data, 038e1000 code
Module serial.dll at offset 01f5c000 data, 038d1000 code
Module sdbus.dll at offset 01f5a000 data, 038c1000 code
Module sdhc.dll at offset 01f58000 data, 038b1000 code
Module sdmemory.dll at offset 01f56000 data, 038a1000 code
Module usbd.dll at offset 01f54000 data, 03891000 code
Module usbhid.dll at offset 01f52000 data, 03881000 code
Module usbmsc.dll at offset 01f50000 data, 03871000 code
Module usbdisk6.dll at offset 01f4e000 data, 03861000 code
Module serialusbfn.dll at offset 01f4c000 data, 03851000 code
Module hidparse.dll at offset 01f4a000 data, 03841000 code
Module kbdhid.dll at offset 01f48000 data, 03831000 code
Module conshid.dll at offset 01f46000 data, 03821000 code
Module MouHid.dll at offset 01f44000 data, 03811000 code
Module mmtimer.dll at offset 01f42000 data, 03801000 code
Module btd.dll at offset 01f40000 data, 037b1000 code
Module btdrt.dll at offset 01f3e000 data, 037a1000 code
Module wendyser.dll at offset 01f3c000 data, 03791000 code
Module wcestreambt.dll at offset 01f3a000 data, 03781000 code
Module sio950.dll at offset 01f38000 data, 03771000 code
Module bthusb.dll at offset 01f36000 data, 03761000 code
Module bthsdio.dll at offset 01f34000 data, 03751000 code
Module bthuniv.dll at offset 01f32000 data, 03741000 code
Module bthuart.dll at offset 01f30000 data, 03731000 code
Module bthamb.dll at offset 01f2e000 data, 03721000 code
Module bthsc.dll at offset 01f2c000 data, 03711000 code
Module serial_smdk2440.dll at offset 01e93000 data, 02d31000 code
Module battdrvr.dll at offset 01e91000 data, 02d21000 code
Module nleddrvr.dll at offset 01e8f000 data, 02d11000 code
Module cs8900.dll at offset 01e8d000 data, 02d01000 code
Module backlight.dll at offset 01e8b000 data, 02cf1000 code
Module advbacklight.dll at offset 01e89000 data, 02ce1000 code
Module i2c.dll at offset 01e87000 data, 02cd1000 code
Module camera.dll at offset 01e85000 data, 02cc1000 code
Module atapi.dll at offset 01e83000 data, 02cb1000 code
Module mscoree1_0.dll at offset 01df1000
Found pTOC at 0000220c————这个在nk.bin文件中非常有用,是实现multibin的关键
No imports for nk.exe
No imports for coredll.dll
No imports for mfcce400i.dll
No imports for shdoclc.dll
No imports for system.cpl
Processing NK
——————————————————————————————————————————————————————
这个offset ...data...code和bin文件格式相关,在MSDN有些简单的说明。
MODULES Section
Module Section Start Length psize vsize Filler
---------------------- -------- --------- ------- ------- ------- ------
nk.exe .text 80201000 319488 317440 317044 o32_rva=00001000
nk.exe .pdata 8024f000 12288 8704 8344 o32_rva=00078000
coredll.dll .text 80252000 495616 493056 492868 o32_rva=00001000
coredll.dll .rsrc 802cb000 28672 25600 25436 o32_rva=00082000
filesys.exe .text 802d2000 221184 218112 217848 o32_rva=00001000
filesys.exe .rsrc 80308000 4096 512 136 o32_rva=00044000
gwes.exe .text 80309000 700416 700416 700156 o32_rva=00001000
gwes.exe .rsrc 803b4000 36864 34304 34220 o32_rva=000b8000
device.exe .text 803bd000 4096 512 252 o32_rva=00001000
device.exe .pdata 803be000 4096 512 8 o32_rva=00003000
devmgr.dll .text 803bf000 32768 31232 31055 o32_rva=00001000
regenum.dll .text 803c7000 4096 3584 3187 o32_rva=00001000
regenum.dll .pdata 803c8000 4096 512 56 o32_rva=00003000
busenum.dll .text 803c9000 12288 9216 9149 o32_rva=00001000
pm.dll .text 803cc000 32768 32768 32552 o32_rva=00001000
irsir.dll .text 803d4000 12288 11776 11352 o32_rva=00001000
——text段时程序代码段,在AT91库中是表示程序段的大小,它是由编译器在编译连接时自动计算的,当你在连接定位文件中将该符号放置在代码段后,那么该符号表示的值就是代码段的大小,编译连接时,该符号所表示的值会自动代入源程序中。
data包含静态初始化的数据,所以有初值得全局变量和static变量在data区。段的起始位置也是由连接定位文件所确定,大小在编译连接时自动分配,它和你的程序大小没有关系,但和程序使用的全局变量,常数数量相关。
RVA相对虚地址(Relative Virtual Addresses) 在 PE 格式中,有很多不同的区块需要定位,但是不可以指明一个绝对位置,所以 PE 里使用了 RVA。RVA 是一个相对于 Base address (基底位置) 的值,例如一个 PE 被载入到 0x400000,这个 PE 有一个区块的RVA 是 0x1000,那么这个区块在内存的实际位置便是 0x401000
——————————————————————————————————————————————————————
nk.exe E32 805dbf84 112 FILLER
nk.exe O32 803f8fa0 96 FILLER
coredll.dll E32 80403f84 112 FILLER
coredll.dll O32 80471f9c 96 FILLER
filesys.exe E32 8056bf70 112 FILLER
filesys.exe O32 80521f98 96 FILLER
——这个E32 O32 是怎么回事?
——————————————————————————————————————————————————————
FILES Section
Raw Compr Location Filler File
13531 3067 804dd3dc FILLER ceconfig.h
611530 611530 81065724 wince.nls
22542 4085 80c28008 FILLER initobj.dat
36864 4686 810fabf0 boot.hv
286720 70913 810fbe40 default.hv
49152 8299 8110d344 user.hv
7285 2213 80757544 FILLER initdb.ini
134 134 80de9f3c FILLER close.2bp
134 134 80757dec FILLER ok.2bp
1030 598 80942534 FILLER stdsm.2bp
838 456 8094278c FILLER viewsm.2bp
2038 702 80942954 FILLER stdsm.bmp
1654 518 80942c14 FILLER viewsm.bmp
170960 92941 8110f3b0 rsaenh.dll
8542 5460 81125ec0 sysroots.p7b
128844 128844 81127414 tahoma.ttf
10500400 10500400 81146b60 simsun.ttc
3584 838 8094a51c FILLER netmui.dll
69 69 80757e74 FILLER appdata.ini
144 144 80757ebc FILLER desktopdirectory.ini
69 69 80757f4c FILLER favorites.ini
69 69 80757f94 FILLER fonts.ini
69 69 80942e1c FILLER mydocuments.ini
69 69 80942e64 FILLER programfiles.ini
69 69 80942eac FILLER programs.ini
69 69 80942ef4 FILLER recent.ini
69 69 80942f3c FILLER startup.ini
24 24 80715fe8 FILLER explore.lnk
7702 1895 8094a864 FILLER windowsce.bmp
23 23 8073dfe8 FILLER control.lnk
30 30 807c9fe0 FILLER iexplore.lnk
454 362 80d89514 FILLER blank.htm
1486 912 80d89680 FILLER default.htm
1614 1614 80c67504 FILLER homelogo.gif
1513 1038 80d89a10 FILLER copy.htm
20 20 80514fd8 FILLER copyrt.lnk
66354 22706 81b4a490 ctpnl.htm
21 21 803b3fe8 FILLER ctpnlhlp.lnk
19422 7492 81b4fd44 rnetw.htm
21 21 80de3fd8 FILLER rnetwhlp.lnk
38171 14285 81b51a88 wince.htm
21 21 8063ffe4 FILLER wincehlp.lnk
30 30 8055ffd8 FILLER mstschlp.lnk
238 192 80d89e20 FILLER batchg.2bp
190 190 80d89ee0 FILLER batlow.2bp
246 174 80c67b54 FILLER bvlow.2bp
406 208 80c67c04 FILLER delete.2bp
630 328 80c67cd4 FILLER dialcnct.2bp
630 276 80c67e1c FILLER drtcnct.2bp
246 184 80c67f30 FILLER mainlow.2bp
246 188 80909504 FILLER mvlow.2bp
246 186 809095c0 FILLER srcnt.2bp
360 134 8090967c FILLER wgripper.2bp
739 502 80909704 FILLER copyrts.txt
3116 1862 80af84f8 FILLER asterisk.wav
..................................................................
——哈哈,把这些文件打包进去
——————————————————————————————————————————————————————
MODULES Section
Module Section Start Length psize vsize Filler
---------------------- -------- --------- ------- ------- ------- ------
nk.exe FileName 806a7ff8 7 FILLER
coredll.dll FileName 80c5bff0 12 FILLER
filesys.exe FileName 8049eff0 12 FILLER
gwes.exe FileName 80514fec 9 FILLER
device.exe FileName 804e0ff4 11 FILLER
devmgr.dll FileName 80c61ff4 11 FILLER
regenum.dll FileName 80f46ff0 12 FILLER
busenum.dll FileName 80de3ff0 12 FILLER
pm.dll FileName 8050dff8 7 FILLER
irsir.dll FileName 80ac6fec 10 FILLER
notify.dll FileName 8082dff0 11 FILLER
fatfsd.dll FileName 808d3ff4 11 FILLER
diskcache.dll FileName 80ae3fe4 14 FILLER
fatutil.dll FileName 80c26ff4 12 FILLER
zlib.dll FileName 80ae3ff4 9 FILLER
commctrl.dll FileName 80c65fe8 13 FILLER
commdlg.dll FileName 80a60ff4 12 FILLER
softkb.dll FileName 803d6ff4 11 FILLER
msim.dll FileName 80475fe0 9 FILLER
connmc.exe FileName 80475fec 11 FILLER
rnaapp.exe FileName 8102dfec 11 FILLER
prnport.dll FileName 80512fe4 12 FILLER
prnerr.dll FileName 80512ff0 11 FILLER
binfs.dll FileName 80500fe8 10 FILLER
..............................................................
——把这些DLL打包进去。start已经是虚拟地址了,这个PB的编译器和ADS的确很大不同,最后再总结,也希望高人指点。
_________________________________________________________________________________
Unfilled ROM holes (address, length):
803be008 4088 80ef4008 4088 804ad010 4080 806a8010 4080
80cb0010 4080 80dea010 4080 80cb4010 4080 80ef6010 4080
80eea014 4076 80fa0028 4056 8075c028 4056 80f71030 4048
8075e038 4040 803c8038 4040 80c66040 4032 80f4e048 4024
804ab048 4024 80c5f054 4012 80ee8058 4008 8056c058 4008
80faf064 3996 80ecb068 3992 807c8070 3984 80dfc070 3984
807cd078 3976 80472080 3968 80c5c080 3968 80ef2084 3964
80760088 3960 80308088 3960 807ca088 3960 805ae090 3952
80aeb090 3952 80f99098 3944 80251098 3944 80c62098 3944
80f9e098 3944 809a10a0 3936 805320a0 3936 804a20a0 3936
807bf0a8 3928 80f220a8 3928 805b00ac 3924 807c50b8 3912
........................................................................................................................
——这些是补零的?
——————————————————————————————————————————————————————
Writing C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\NK.bin
Table of contents 81d897e8 00002104 ( 8452)
Writing ROM signature and TOC pointer at 80200040
Kernel data copy section 80c58ca4 00000010 ( 16)
ROM Header 81d89794 00000054 ( 84)
First DLL code Address: 02cb0000
Last DLL code Address: 04000000
First DLL Address: 01df01e8
Last DLL Address: 02000000
Physical Start Address: 80200000——怎么搞的,这明显是虚拟地址,怎么能说是物理地址呢?
Physical End Address: 81d8b8ec
Start RAM: 82300000——这个和config.bib的配置有关
Start of free RAM: 82329000
End of RAM: 84100000
Number of Modules: 181
Number of Copy Sections: 1
Copy Section Offset: 80c58ca4
Kernel Flags: 00000002
FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
CPU Type: 01c2h
Miscellaneous Flags: 0002h
Extensions Pointer: 80202210
Total ROM size: 01b8b8ec ( 28883180)
Starting ip: 80212db0
Raw files size: 00eb7cb8
Compressed files size: 00d33fa3
Compacting bin file...——这个bin文件是由nb0文件压缩而来?看下面不是啊
Writing rom file...
Start 80200000 Len 00000004
Start 80200040 Len 00000008
Start 80200048 Len 00000004
Start 80201000 Len 0004d674
Start 8024e674 Len 00002a24
Start 80252000 Len 00078544
.................................................
Start 81c2771c Len 00162078
Start 81d89794 Len 00000054
Start 81d897e8 Len 00002104
Creating rom file C:\WINCE500\PBWorkspaces\ARMSYS2440\RelDir\smdk2440a_ARMV4I_Release\NK.nb0
Done!
——这个nk.nb0文件的生成还在NK.bin文件生成之后!
疑惑:
从上面可以知道,这个Nk文件加入的地址信息是虚拟地址的,这是由于wince操作系统的缘故,难怪在NK启动函数中会有如此怪异的写法,和优龙的bootloader(ADS开发环境开发)的NK启动函数有很大不同。这个东西是我郁闷了好久,原来在加载的过程中这个地址信息是有指示作用的。