1.block0img.nb0是怎麼來的?
C:\WINCE500\PLATFORM\SMDK2416\Src\Bootloader\NBL2\makefile.inc(33):
!IF "$(BSP_SMDK2416_CFG)"=="1"
copy /b $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\nbl1.nb1 + $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\nbl1.nb2 + $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\nbl2.nb0 $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\block0img.nb0
copy $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\block0img.nb0 $(_FLATRELEASEDIR)\block0img.nb0
!ENDIF
2.NB1和NB2 到底是什麼東西?
是nand flash 啟動的stepstone 和eboot,合成一個block0img.nb0 用來做nand flash 啟動
3.IROM_SD_EBOOT.nb0怎麼來的?
是IROM_SD.nb0 和eboot.nb0 合成的,主要用來燒寫block0img.nb0 以及eboot.bin
stepldr_romimage:
!IF "$(BSP_IROM_MMC)" != "1"
!IF "$(NOLINK)" == ""
romimage $(ROMIMAGE_FLAGS) stepldr.bib
copy /y/b $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\eboot.nb0 + $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\IROM_SD.nb0 $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\IROM_SD_EBOOT.nb0
!IF "$(WINCEREL)"=="1"
copy $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\IROM_SD_EBOOT.* $(_FLATRELEASEDIR)
copy $(_PLATFORMROOT)\$(_TGTPLAT)\target\$(_TGTCPU)\$(WINCEDEBUG)\IROM_SD.* $(_FLATRELEASEDIR)
!ENDIF
!ENDIF
!ENDIF
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination [/A | /B]] source 指定要複製的檔案。 /A 表示一個 ASCII 文字檔。 /B 表示一個二進位檔案。 /D 允許解密要建立的目標檔案 destination 為新檔案指定目錄和/或檔案名稱。 /V 驗證新檔案寫入是否正確。 /N 複製帶有非 8dot3 名稱的檔案時, 儘可能使用短檔案名稱。 /Y 不使用確認是否要覆蓋現有目標檔案 的提示。 /-Y 使用確認是否要覆蓋現有目標檔案 的提示。 /Z 用可重新啟動模式複製已連網的檔案。/L 如果源是符號連結,請將連結複製 到目標而不是源連結指向的實際檔案。命令列開關 /Y 可以在 COPYCMD 環境變數中預先設定。這可能會被命令列上的 /-Y 替代。除非 COPY命令是在一個批處理指令碼中執行的,預設值應為在覆蓋時進行提示。
哎,不懂為什麼這個三星搞得這麼複雜幹啥,直接用IROM_SD_EBOOT.nb0一次燒寫完畢所有的不就得了。
現在還有一些記憶體不穩定,可以下載eboot.bin 這些但是不能下載NK.bin ,說check failed ,繼續追查原因。