[keil][python][单片机] keil 集成bin文件生成 boot+app合并 dfu生成
参数名注释@L输出文件名(上图所示位置)!L输出文件名.axf$Kkeil路径。
·
文章目录
DFU全称为Device Firmware update,串口ISP一样,他们都集成在了芯片内部的Bootloader区段,可以通过配置boot引脚来启动。
DFU方案完整的组件包括单片机DFU Demo代码、PC端升级程序、PC端Demo代码以及相关资料手册等。通过使用DFU方案,我们可以快速的集成升级功能到开发的产品中,同时还能够快速的开发与之配套的升级程序。
- 不管采用OTA方式还是有线通信方式,DFU包括后台式(background)和非后台式两种模式。
- 后台式DFU,又称静默式DFU(Silent DFU),在升级的时候,新固件在后台悄悄下载,即新固件下载属于应用程序功能的一部分,在新固件下载过程中,应用可以正常使用,也就是说整个下载过程对用户来说是无感的,下载完成后,系统再跳到BootLoader模式,由BootLoader完成新固件覆盖老固件的操作,至此整个升级过程结束。
- 比如智能手机升级Android或者iOS系统都是采用后台式DFU方式,新系统下载过程中,手机可以正常使用哦。
- 非后台式DFU,在升级的时候,系统需要先从应用模式跳入到BootLoader模式,由BootLoader进行新固件下载工作,下载完成后BootLoader继续完成新固件覆盖老固件的操作,至此升级结束。
- 早先的功能机就是采用非后台式 DFU来升级操作系统的,即用户需要先长按某些按键进入bootloader模式,然后再进行升级,整个升级过程中手机正常功能都无法使用。
一、 首先配置keil执行工具
.\file_handling.bat @L !L $K
看图复制粘贴
二、输出文件名根据自身定义
三、参数名的介绍
参数名 | 注释 |
---|---|
@L | 输出文件名(上图所示位置) |
!L | 输出文件名.axf |
$K | keil路径 |
四、 编写bat脚本(此处需要根据工具存放路径进行更改 xBin2Dfu/merge_file)
@echo off
set bin=%1
set axf=%2
set keilpath=%3
echo current file:%bin%.bin
echo current axf:%axf%
echo current keilpath:%keilpath%
:: 生成bin
%keilpath%\ARM\ARMCC\bin\fromelf.exe --bin --output=.\out\bin\%bin%.bin %axf%
:: 生成DFU
.\xBin2Dfu\xBin2Dfu.exe -s .\out\bin\%bin%.bin -o .\out\bin\ -n 4
:: 合并bin(boot+app)
.\xMerge\merge_file.exe -s .\out\bin\boot.bin -t .\out\bin\%bin%.bin -i 0x400 -o .\out\bin\boot_%bin%.bin
五、 打包内容如下
file_handling.bat 需要放置在 keil uvprojx 工程下。
另外两个工具,自己找个固定地方存放。然后修改bat里面的路径
六、文件二合一
格式:
*.exe .\1.hex .\2.hex .\12.hex
下载
开源地址
更多推荐
已为社区贡献1条内容
所有评论(0)