KEIL下使用BAT文件生成BIN文件

一、运行环境
WINs:WIN10
MDK:keil528
MCU:GD32F303
创建一个项目,此项目下有两个工程GD32303C_APP和GD32303C_boot。
在这里插入图片描述

二、BAT常用指令介绍
1、创建BAT文件
这个比较简单,先创建一个txt文件,然后将后缀直接改成.bat即可,也可以使用另存为.bat文件
在这里插入图片描述
2、使用BAT文件生成bin文件
直接在创建的bat文件中添加如下的代码。

E:\keil528\ARM\ARMCC\bin\fromelf.exe这个是绝对路径,既keil安装的路径,根据情况更改即可。

.\ 这个是相对路径,表示当前目录既GD32303C_BOOT.uvprojx这个文件所在的目录,这里BootRunAfter.bat是和它所在同一个目录的。

.\output\F303Boot.bin在当前目录下的output文件夹下生成一个F303Boot.bin

.\output\F303Boot.axf使用当前目录下中output文件夹下的F303Boot.axf生成bin文件,F303Boot.axf这个文件名由keil配置决定的,如下:
在这里插入图片描述

E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf

E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o ./output/F303Boot.bin ./output/F303Boot.axf

在KEIL中调用BAT文件:
注意:这里BootRunAfter.bat文件和.uvprojx工程文件在同一个目录:
在这里插入图片描述
或者写的更规范写,使用当前目录:
在这里插入图片描述
编译后,会在keil的Build Output窗口打印bat文件执行过的指令,当然也可以只用@ECHO OFF指令关闭
在这里插入图片描述
关掉回显

@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf

在这里插入图片描述
2、copy指令
将第1步中生成的bin文件复制到当前目录的上一级目录:

@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf
copy .\output\F303Boot.bin .\..\

.\output\F303Boot.bin为bin文件所在的位置
…\当前目录的上一个目录,如下:
在这里插入图片描述
复制并重命名

@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf
copy .\output\F303Boot.bin .\F303Boot111.bin

结果如下图:在当前目录生成一个F303Boot111.bin文件
在这里插入图片描述
3、if exist判断文件是否存在
命令格式: if [not] exist [路径]文件名 待执行的命令

@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf
if exist .\output\F303Boot.bin (
copy .\output\F303Boot.bin .\F303Boot111.bin
)


路径加双引号

@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf
if exist .\output\F303Boot.bin (
copy ".\output\F303Boot.bin" ".\F303Boot111.bin"
)

4、屏蔽当前代码使用:
则@ECH0 OFF为无效指令

::@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf
if exist .\output\F303Boot.bin (
copy ".\output\F303Boot.bin" ".\F303Boot111.bin"
)

5、合并两个bin文件
在项目下创建一个BIN文件存放一个BIN文件夹,将BOOT和APP生成的bin文件都复制到这个文件夹下,并通过merge.exe这个工具合并。

boot程序下BAT文件

@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303Boot.bin .\output\F303Boot.axf
if exist .\output\F303Boot.bin (
copy ".\output\F303Boot.bin" ".\..\..\..\..\BIN\"
)

App程序下BAT文件

@ECHO OFF
E:\keil528\ARM\ARMCC\bin\fromelf.exe --bin -o .\output\F303App.bin .\output\F303App.axf
if exist .\output\F303App.bin (
copy ".\output\F303App.bin" ".\..\..\..\..\BIN\"
)
if exist .\..\..\..\..\BIN\F303Boot.bin (
if exist .\..\..\..\..\BIN\F303App.bin (
.\..\..\..\..\BIN\merge.exe .\F303Boot.bin  .\F303App.bin .\boot_app.bin 0x2000
) 
)

merge.exe命令格式
merge.exe [boot路径]\文件名.bin [app路径]\文件名.bin [生成路径]生成文件名.bin 偏移地址(16进制10进制均可)
工程下载链接

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值