首先我們得了解原理,IAP是升級程序,APP是執行任務執行程序
而要合併的就是就阿靜IAP最後的一行刪除,然後將APP程序追加在後面。
(修改前)
把APP的.hex 全部內容拷貝複製到 剛纔刪掉結束語句的 IAP的.hex後面
(修改後)
如果是靠每次都得打開記事本手動刪除然後合併,那就太麻煩了。
我們使用程序完成這個操作
1、我們知道IAP程序確定後,一般是不需要怎樣改動的。那麼我們將STM32_IAP.hex文件打開,將最後一行刪掉之後,保存爲一個新的文件 STM32_IAP_change.hex,存放在新建的文件夾中
2、將STM32_IAP_change.hex 的內容複製到一個新的文件中 STM32_App.hex
3、將keil5生成的stm32.hex 追加到 STM32_App.hex中。這樣即可以得到我們想要的合併的文件。
(可以通過手動合併生成的文件與使用該程序生成文件進行對比是否有所差異)
4、根據以上步驟,新建 merge.cmd 文件,然後在該文件中添加一下代碼。將該腳本放在與STM32_IAP_change.hex同樣的文件中。其中 type %cmdDir%..\Uvproj\Output\stm32.hex >> %cmdDir%STM32_App.hex 這行腳本的 \Uvproj\Output\stm32.hex是工程文件生成hex文件路徑。
set "cmdDir=%~dp0"
copy %cmdDir%Stm32_IAP_chang.hex %cmdDir%STM32_App.hex
type %cmdDir%..\Uvproj\Output\stm32.hex >> %cmdDir%STM32_App.hex
5、點擊 keil5中的魔術棒,將該腳本文件添加到 Run 中
6、這樣,每次編譯後,就會執行該腳本,就可以自動生成期望的合併文件,不用每次手動合併那麼繁瑣,從而提高開發效率。