RT1052 BootLoader總結_后續Bin合並


RT1052 BootLoader總結2(Bin合並)

在上一篇博客中介紹了BootLoader的app的配置,那么生成Bin文件以后呢,怎么跟BootLoader合並?下面介紹

 

一. 兩種BIN文件的產生

1.1生產用Bin文件

生產用Bin文件包括BootLoaderApp兩部分合成

工程目錄:

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則填充0XFF0x7FFF;后面緊跟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,

即分別是0x000000020x00D40010

 

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):

0x4500x460分別設置為:0x000000020x00000010

 

 

 

 

 

需要在一鍵式燒錄后,先scan,然后改寫0x400,0x450,0x460,如圖再燒錄一次burn !

 

燒錄了fuse啟動,依舊可以運行非加密imageRT不是根據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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM