首先,要將前面產出的 hex 檔案 轉換成 bin 檔案。在 compile 時可以直接設定 bin 產出,我這裡是使用 gcc compiler 所以我這裡在 Post-build steps 項目中需要設定
arm-none-eabi-objcopy -S -O binary "${ProjName}.elf" "${ProjName}.bin"
就會自動產出 bin 檔案。
OK,現在需要一個 Hex editor 工具軟體 (網址: https://mh-nexus.de/en/)。下載並安裝完成後,我們先開啟 IAP 的 bin 檔案。
在 File / Open... 載入 bin 檔案,並將拉到最後。我們要找最後位址點
以這張截圖來說就是 20 後面,在 Offset 顯示 1CE8。因為前面設定 SRAM 的位置是 0h ~ 3FFFh ,所以兩值要相減就會得到填滿的數值。以這裡會得到 2318。
在 Edit / Insert bytes , 這樣就可以填滿到 3FFFh。另存新名稱 IAPBoot.bin。
這時候可以關掉 Hex Editor 軟體。而主程式名稱改成 mainAP.bin
接下來 開啟 cmd 命令列視窗。下二條指令
copy IAPBoot.bin APALL.bin
type mainAP.bin >> APALL.bin
意思是 新增一個 APALL.bin , 然後緊接著 mainAP.bin 主程式。 這樣就完成了
再透過 ST-LINK 將 APALL.bin 作為燒錄檔案,來驗證是否會跳到主程式段。
0 comments:
發佈留言