RT1052 BootLoader總結2(Bin合並)
在上一篇博客中介紹了BootLoader的app的配置,那么生成Bin文件以后呢,怎么跟BootLoader合並?下面介紹
一. 兩種BIN文件的產生
1.1生產用Bin文件
生產用Bin文件包括BootLoader和App兩部分合成
工程目錄:
bootloader:\bootloader\mdk。----產生bootloader.bin文件。
App: \project\mdk。 --------產生UpgradeV001.bin文件(采用升級功能配置)。
生成文件需要在工程改動的地方:appmain.c中修改版本號
static const char pcbWareVersion[DEVINFOLENGTHMAX] = "MB_P003 "; ///<硬件版本號數組
static const char progVersion[DEVINFOLENGTHMAX] = "PROGV001"; ///<軟件版本號數組
static const char bootVersion[DEVINFOLENGTHMAX] = "BOOTV001"; ///<boot版本號數組
DCD.bin文件產生:
首先從bootloader.bin提取DCD.bin (offset 0x1030 - 0x1443)文件保存到電腦。
合成供加密生產用bin文件步驟:
bootloader.bin和Upgrade.bin兩個文件使用16進制編輯工具(HxDx64.exe)合到一起。
注意_bootloader.bin若不足0x7FFF則填充0XFF到0x7FFF;后面緊跟Upgrade.bin。 然后,將前0x1FFF數據刪除,保存,
此時的Bin文件才能提供給NXP-MCUBootUtility.exe加密,燒錄。
本方法適用於生產。
加密后和加密前,img的組成分別如下圖:
升級用BIN文件
Upgrade.bin,采用升級功能配置的工程產生,不需要額外修改,可以直接當做升級文件。啟動地址是0x60008000。
加密升級文件binV001步驟
bootloader只能接收事先加密好的Upgrade,因此你需要事先將Upgrade做一次加密,可利用\NXP-MCUBootUtility\tools\image_enc\win\image_enc.exe這個命令行工具,也可以直接用NXP-MCUBootUtility,菜單欄進入Tools/Option,選擇Master mode。
然后選擇你的Upgrade.bin(注意是裸binary,不要任何頭,binary起始就是SP, PC),
【Advanced Key Settings】里加密參數與前一封郵件里設置一致,然后分別點擊【Generate Unsigned bootable image】和【Encrypt Bootable Image】按鈕,結束之后找到\NXP-MCUBootUtility\gen\bootable_image\App_unsigned_bee_encrypted.bin文件,
該文件里偏移0x8000之后的數據即是你要的加密好的app數據,扣出來用即可。
五.需要注意的問題
5.0注意:目前測試是必須在燒錄板子的過程中產生sb文件。
5.1加密燒錄后還不能順利啟動,啟動還需要置位一個boot cfg pin,如果是RT105x,應該是GPIO_B0_05,將這個pin拉高,然后POR復位。此方法不方便采用,可以參考下面的方法。
5.2加密燒錄后還不能順利啟動,不采用5.1方法,還有燒錄fuse的方法可以替代。置位Boot cfg pin一般是在產品調試階段使用。
設置fuses兩個: 0x450[1]和0x460[23:22][20][18][4] 設置為1,
即分別是0x00000002和0x00D40010。
x460[18] 1-SDP READ_REGISTER is disabled
0x460[17] 1 - No serial download support
補充:
0x460[23:22] 11 - No debug mode
0x460 1 - JTAG is disabled
研發階段的設置(不禁止串口下載模式和JTAG):
0x450和0x460分別設置為:0x00000002和0x00000010
需要在一鍵式燒錄后,先scan,然后改寫0x400,0x450,0x460,如圖再燒錄一次burn !
燒錄了fuse啟動,依舊可以運行非加密image,RT不是根據fuse來判斷image是否加密,而是根據Flash里的bootable image是否含有EKIB, EPRDB來判斷的。
5.3 BOOT_MODE[1:0] pin不受fuse值影響,並且設置只在POR后生效。
5.4軟件目錄\NXP-MCUBootUtility\tools\image_enc\win\下面需要image_enc.exe,否則不能燒錄。
技術交流請加wei18124528727