日前公司產品需要增加遠程升級功能,boot loader程序寫好后交予生產部門使用時他們反饋每個產品程序需要刷寫兩次(一個boot loader 一個app程序),生產進度變慢浪費時間,於是乎研究如何將兩個程序並為一個。
參考:http://blog.csdn.net/yx_l128125/article/details/13591743 后成功實現了將兩程序合並為一個。
IAP +APP 結合的方法
IAP 和APP 的hex 文件合成1個hex 文件的方法有3種:
1、IAP 先燒寫進flash 的 0x0800 0000 開始位置, APP燒寫到 flash 的0x 0800 3000開始的地方; 之后通過我上一篇博文的 IAP程序的文件讀出功能讀取flash 上的數據讀到一個.bin文件上。然后通過程序刷寫工具刷入起始flash地址為 0x0800 0000中。
2、手動合並iap 和app 的.hex 文件(麻煩,出錯率高)
(1)設置IAP程序下載到flash 的開頭地址為0x0800 0000,然后編譯程序生成hex文件。
(2)設置APP程序下載到flash 的開頭地址(地址依據芯片和程序大小而定),然后編譯程序生成hex文件。
(3)用 notepad++ 打開 IAP 的hex文件和APP的hex 文件
把IAP的.hex 最后一句結束語句去掉(即:刪除:00000001FF)
把APP的.hex 全部內容拷貝復制到 剛才刪掉結束語句的 IAP的.hex后面
(4)把兩個hex合成的hex文件重新命名為XXX.hex,然后通過燒寫工具燒寫到0x0800 0000 開始位置的地址即可。
3、利用bin文件合並工具將兩個bin文件合並為一個(簡單強大迅速出錯率低,推薦使用該方法)。