前言
IAP(In-application-programming),即在應用中編程。當產品發布之后,可以通過網絡方便的升級固件程序,而不需要拆機下載程序。IAP系統的固件一般由兩部分組成,即BootLoader Code和Application Code,並存儲在不同起始地址的空間里:
系統運行時,先運行Bootloader程序,檢測狀態,判斷是執行應用程序還是升級固件。在實際開發過程中,這兩段程序一般是單獨編寫,然后生成兩個Bin文件,為了方便下載程序,可以把兩個文件合並為一個文件,這樣會節省很多時間。本文將介紹如何使用JFlash來合並兩個Bin文件或者兩個Hex文件。
准備
- 要合並的文件1:bootloader.hex,起始地址:0x8000000
- 要合並的文件2:app.hex,起始地址:0x20001000,如果是Bin文件要先確定起始地址。
- JFlash軟件
創建工程
和之前下載程序一樣,首先要新建一個工程。
1.打開JFlash
2.創建新工程
點擊 File->NewProject
3.選擇芯片的型號
這里支持很多ARM Cortex內核的芯片,選擇對應的芯片,我這里選擇的是STM32F103RE系列。
4.打開要合並的程序文件1:bootloader.hex
點擊File -> Open data file,打開bootloader程序。
5.打開要合並的程序文件2:app.hex
點擊File -> Merge data file,打開app程序。
要保證,bootloader程序起始地址+bootloader代碼大小不超過app程序的起始地址,如下圖示意:
6.保存合並后的文件
點擊File->Save data file as,將合並后的文件另存,可根據需要選擇要保存的文件類型。
注意
如果要合並的文件為bin文件,自身不帶地址信息,所以會讓你指定地址,注意不要互相重疊地址。所以最好各種文件生成的時候就保存為帶地址信息的格式,比如hex。關於Hex文件和Bin文件的區別,可以參考文章:BIN、HEX、AXF、ELF文件格式有什么區別
JLink軟件的下載
JLink_Windows_V614b軟件下載鏈接:JLink_Windows_V614b.exe
Jlink使用技巧系列文章:
- Jlink使用技巧之合並燒寫文件
- Jlink使用技巧之燒寫SPI Flash存儲芯片
- Jlink使用技巧之虛擬串口功能
- Jlink使用技巧之讀取STM32內部的程序
- Jlink使用技巧之單獨下載HEX文件到單片機
- Jlink使用技巧之J-Scope虛擬示波器功能
歡迎大家關注我的個人博客
或微信掃碼關注我的公眾號