做STM32的IAP升級需要用到BIN文件,為了確保BIN文件正確,於是在BIN文件的末尾增加了CRC校驗。
校驗值是自動生成的並添加的。
首先是准備工作:
1.下載校驗值生成工具
下載后里面的exe文件解壓到keil任意的文件下,這里我是放在D:\Keil_v5\ARM\ARMCC文件夾內。這個路徑 后續需要用到。
2.在你項目的啟動文件所在的文件夾內,增加一個bat文件
方法:新建txt文件,然后將下面的內容拷貝進去,最后修改后綴名
內容如下:
@echo off ECHO Add CRC32 At the end of the document ECHO ------------------------------------- SET SREC_PATH=D:\Keil_v5\ARM\ARMCC //這里的SET SREC_PATH是你安裝工具的位置(這句話記得刪除) for /f %%i in ('dir /b .\raw.bin') do ( set indexdx=%%~zi ) ECHO %indexdx% ECHO %SREC_PATH%\srec_cat.exe raw.bin -Binary -crop 0 %indexdx% -crc32-b-e %indexdx% -o gps_bass.bin -Binary %SREC_PATH%\srec_cat.exe raw.bin -Binary -crop 0 %indexdx% -crc32-l-e %indexdx% -o gps_bass.bin -Binary
3.打開你的項目,點擊魔術棒,打開user選項卡,在After Build欄,勾選RUN1,RUN2。
在RUN1 欄添加“D:\Keil5\ARM\ARMCC\bin\fromelf.exe --bin --output=raw.bin !L” //安裝路徑不一定相同,找到你安裝keil的文件夾,選中ARM\ARMCC\bin\fromelf.exe,后面照抄
在RUN2欄,選中剛剛增加的BAT文件
最后直接編譯就會得到兩個bin文件,一個raw.bin 一個gps_bass.bin
想要BIN文件的命名不一樣?
1.在RUN1 output=raw.bin這里修改成 output=xxxx.bin
2.在BAT文件內,把所有raw改成xxxx,
把gps_bass.bin改成你想要的aaa.bin
參考連接:https://blog.csdn.net/wandersky0822/article/details/104015110
https://blog.csdn.net/Simon223/article/details/105724950/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.no_search_link&spm=1001.2101.3001.4242