STM32合并燒錄IAP+APP 通過查找相關資料?
有以下幾種合并方法
第一種直接將二進制文件用記事本合并
而要合并的就是就將IAP最后的一行刪除,然后將APP程序追加在后面。
(修改前)
把APP的.hex 全部內容拷貝復制到 剛才刪掉結束語句的 IAP的.hex后面
(修改后)
第二種使用二進制合并工具?
二、合并.bin文件
? 1.將IAP和APP程序分別找出。打開 二進制文件合并工具。
? 2.先將IAP產生的.bin文件拖入界面中,此時源文件后面應顯示此.bin文件的路徑,然后點擊添加,該文件被添加到上面的列表中。
? 3.再將APP產生的.bin文件拖入界面中,看到路徑正確之后,更改偏移量(視情況而定,一般為0x00004000),在“插入”前面打鉤,然后點擊確定,再點擊添加。此時上方的列表中應有兩個文件的索引,且偏移地址正確。
? 4.選取一個目標文件生成的路徑,并為目標文件設置名字。點擊合并,即可將兩個.bin文件合并。
三、燒錄合并后的.bin文件(使用J-Link SWD模式,BOOT0 = BOOT1 = 0)
? 1.無法使用FlyMcu.exe燒錄.bin文件,可能因為Keil轉換后的.bin文件格式與FlyMcu.exe所支持的不同。
? 2.使用 SEGGER J-Flash.exe 下載。
? 3.設置好串口,波特率設置為115200(不超出MCU規定的范圍即可)
? 4.點擊 file—> Open data file,將合并后的.bin文件添加進來。此時會彈出設置開始地址的對話框,填入8000000。點擊OK。
? 5.點擊Target—> Manual Programming—>Erase Chip 將芯片擦除。
? 6.點擊Target—> Production Programming 進行下載。
? 7.完成。
附:二進制文件合并工具下載地址:鏈接: https://pan.baidu.com/s/1D7D-cZ2wj_MU4mJ2hL9PWQ 密碼: qtx4
? ? ? ? ? ? ? ? ? ? ? ? ? ? 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
? ? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/hb69222/article/details/80538749
第三種? 使用 J-FLASH 進行合并
合并操作步驟
圖2
圖3
打開IAP程序BOOTLoader文件
添加BOOTLoader
下一步添加APP程序
圖7
保存合并 工程文件
圖10
?
IAP+APP拼接方法
用于產品量產,燒錄的程序文件,一般是hex,或bin文件。不管是hex文件,還是bin文件,我們都需要通過燒錄軟件 + 燒錄(編程)工具實現。燒錄軟件針對不同MCU,一般有不同的燒錄軟件。
針對STM32,一般建議使用官方提供的STVP、ST-LINK Utility和STM32CubeProg 這三種編程軟件。
拼接說明
1、拼接IAP+APP兩段程序,一般簡單方法就是:將兩個程序分別燒錄進去,再統一讀取出來,保存成一個量產文件。
2、IAP 和 APP程序的起始地址是不同的,因此燒錄進芯片,是存儲在兩片區域的。燒錄程序的時候,特別是燒錄bin文件(沒有地址)時,要注意設置好起始地址。hex文件有地址地址,不用自己設置地址。讀取“合并”程序的時候,同樣要注意起始地址,還有讀取大小,保證讀取全部程序。
比如通過ST-LINK Utility讀取STM32程序:
通過STM32CubeProg讀取STM32程序:
再次提示:
燒錄bin文件時,設置好起始地址;
讀取時,設置起始地址,讀取大小;
保存可選擇hex,還是bin文件;
bin、hex文件互相轉換
在某些情況下需要使用特定格式的文件,比如我們遠程升級,要求通過bin文件實現。通過上面的介紹,其實你會發現,使用編程軟件ST-LINK Utility,或STM32CubeProg,就能直接另存為hex,或bin文件格式。
ST-LINK Utility另存為:
STM32CubeProg另存為:
參考MDK-ARM如何生產Bin文件
————————————————
? ? ? ? ? ? ? ? ? ? ? ? ? ? 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
? ? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/weixin_45905650/article/details/108010156