做STM32的IAP升级需要用到BIN文件,为了确保BIN文件正确,于是在BIN文件的末尾增加了CRC校验。
校验值是自动生成的并添加的。
首先是准备工作:
1.下载校验值生成工具
下载后里面的exe文件解压到keil任意的文件下,这里我是放在D:Keil_v5ARMARMCC文件夹内。这个路径 后续需要用到。
2.在你项目的启动文件所在的文件夹内,增加一个bat文件
方法:新建txt文件,然后将下面的内容拷贝进去,最后修改后缀名
内容如下:
@echo off ECHO Add CRC32 At the end of the document ECHO ------------------------------------- SET SREC_PATH=D:Keil_v5ARMARMCC //这里的SET SREC_PATH是你安装工具的位置(这句话记得删除) for /f %%i in ('dir /b . aw.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:Keil5ARMARMCCinfromelf.exe --bin --output=raw.bin !L” //安装路径不一定相同,找到你安装keil的文件夹,选中ARMARMCCinfromelf.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