0
点赞
收藏
分享

微信扫一扫

Keil 编译前后 自动将 hex 转 bin


 

After Buid/Rebuid  选项下的Run#1 打上勾,在后一格添加一行代码,此代码的功能为将Objects下的project.axf文件转换为project.bin文件输出至Objects文件夹下。其中.axf文件为keil编译过程产生的文件。

fromelf --bin --output Objects\project.bin Objects\project.axf

fromelf 是keil安装目录下\Keil_v5\ARM\ARMCC\bin 的文件
 

Keil 编译前后  自动将 hex 转 bin_keil编译后自动

点击编译接着文件就自动生成

 

尝试让自动运行 .bat文件,  探索中········

 

killl.bat  放在

Keil 编译前后  自动将 hex 转 bin_编译过程_02

这个路径下面,用于删除不用的多余的文件,只留下 hex文件

 

killl.bat   文件内容:

del *.O /s
del *.d /s
del *.dep /s
del *.htm /s
del *.txt /s
::del *.opt /s  ::不允许删除JLINK的设置
del *.axf /s
del *.lnp /s
del *.dep /s           
del JLinkLog.txt /s
del *.iex /s
del *.sct /s
del *.crf /s
exit

 

Command.bat   转二进制文件,  和打包脚本内容:

cd /d D:\DA14580\program\OTA
 
hex2bin -e bin A.hex
hex2bin -e bin secondary_bootloader.hex
mkimage.exe single A.bin version.h A.img
mkimage.exe multi spi secondary_bootloader.bin A.img 0x8000 A.img 0x13000 0x1f000 OTA.bin
exit

 

 

 

 

方案二:  用 .Bat 脚本,编译完后自动运行用户自定义程序

 

需求: 在每次工程编译后,在工程目录下的out文件夹下会生产 A .hex文件。

用2个脚本分实现:

 

第1个脚本:Copy_hex.bat

第一步,将编译后生成的 A.hex文件 copy出来到另一个目录

copy /y D:\program\Projects\WP_LEARN\JC_M10_v1.1\projects\target_apps\ble_examples\ble_app_ota\Keil_5\out_580\A.hex D:\program\Projects\WP_LEARN\JC_M10_v1.1\hex2bin\
exit

 

 

第2个脚本:Command_hex2bin.bat

cd /d D:\program\Projects\WP_LEARN\JC_M10_v1.1\hex2bin

hex2bin -e bin A.hex

hex2bin -e bin secondary_bootloader.hex

mkimage.exe single A.bin version.h A.img

mkimage.exe multi spi secondary_bootloader.bin A.img 0x8000 A.img 0x13000 0x1f000 OTA.bin
exit

第二步: 在这个目录里,利用copy出来的.hex文件,转换为 .bin文件。

将转换后的 .bin文件 和一个secondary_bootloader.hex 合并, 生产一个A.hex,

然后将此 A.hex 转换成 A.img,  然后设置引导位置后,生产OTA文件。

Keil 编译前后  自动将 hex 转 bin_keil编译后自动_03

 

这里: 

Run#1 中填的为: D:\program\Projects\WP_LEARN\JC_M10_v1.1\hex2bin\Copy_hex.bat

Run#2 中填的为:D:\program\Projects\WP_LEARN\JC_M10_v1.1\hex2bin\Command_hex2bin.bat

 

 

Keil 编译前后  自动将 hex 转 bin_keil编译后自动_04

bat目录

编译前:

 

Keil 编译前后  自动将 hex 转 bin_二进制文件_05

编译后:

Keil 编译前后  自动将 hex 转 bin_bat_06

A.hex 为 脚本复制过来的。

A.hex,A.bin,A.img,A_OTA.bin 均为后来生成的(其中A.hex被重新生成覆盖一次)。

 

注意:以上 .bat脚本运行时,均需要按实际目录更改目录路径。

 


 

 

注意:工程目录被移动或是copy后导致工程的路径改变,需要响应的更改下面的地方:

1,keil你们的bat文件路径对应要更改。

Keil 编译前后  自动将 hex 转 bin_keil编译后自动_07

 

2, 2个脚本文件内的内容路径要更改:

Keil 编译前后  自动将 hex 转 bin_keil编译后自动_08

Keil 编译前后  自动将 hex 转 bin_bat_09

Keil 编译前后  自动将 hex 转 bin_编译过程_10

3,确认Hex的生成路径及名称:

Keil 编译前后  自动将 hex 转 bin_二进制文件_11

 

 

 

参考:


http://gk969.com/keil-mdk-user-program/


 

.bat参考:

http://www.openedv.com/posts/list/600.htm

http://www.openedv.com/posts/list/598.htm?fromAll=0

https://www.jb51.net/article/18981.htm

https://gk969.com/keil-mdk-user-program/

举报

相关推荐

0 条评论