0
点赞
收藏
分享

微信扫一扫

DA14580 空中升级 OTA



编译环境:keil5

编译后生产 HEX文件, 需要先抓BIN文件, 再转IMG文件。


 

转换分3步完成:

1, 打开CMD
首先要将需要转换的HEX文件放在转换目录下。
CD到文件所在目录:
例如

cd C:\Users\JC\Desktop\测试\OTA_test\OTA_test\projects\target_apps\ble_examples\ble_app_ota\Keil_5\out_580

DA14580 空中升级 OTA_#define



2,将HEX文件转换为bin文件,使用如下指令:

 

hex2bin -e bin ble_app_ota_580.hex

DA14580 空中升级 OTA_OTA_02

此处.hex文件为上面工程编译后生成,文件名称根据编译后的文件名称灵活更改。执行此条指令后生成 .bin文件。

DA14580 空中升级 OTA_空中升级_03

3,将bin文件再转换为IMG文件,使用如下指令:

mkimage single ble_app_ota_580.bin fw_0_version.h ble_app_ota_580.img

DA14580 空中升级 OTA_OTA_04

其中:fw_0_version.h 文件是比较重要的文件

#define DA14580_SW_VERSION "v_5.10.17.41"
#define DA14580_SW_VERSION_DATE "2018-05-10 17:41 "
#define DA14580_SW_VERSION_STATUS "REPOSITORY VERSION"

fw_0_version.h文件下载模板:javascript:void(0)

每生成img文件时,需要更改一下版本参数或是时间,不改变会导致升级时报错。

 

DA14580 空中升级 OTA_#define_05

 

 

 


编译后生成:secondary_bootloader.hex  如上图。

 

 

文件下载:

1,先下载二次引导文件  secondary_bootloader.hex

DA14580 空中升级 OTA_#define_06

DA14580 空中升级 OTA_蓝牙空中升级_07

按图标步骤,1,-5, 链接,全部擦除, 选择文件, 下载,  弹框选yes。

 

2,在下载配置文件

点击 

DA14580 空中升级 OTA_文件名_08

其中一个配置文件Pdt_Header.txt   这里javascript:void(0) 下载

DA14580 空中升级 OTA_蓝牙空中升级_09

DA14580 空中升级 OTA_OTA_10

DA14580 空中升级 OTA_空中升级_11

 

DA14580 空中升级 OTA_#define_12

DA14580 空中升级 OTA_蓝牙空中升级_13

 

3, 下载  .img文件

再点击:

DA14580 空中升级 OTA_空中升级_14

重新选择 img文件。

DA14580 空中升级 OTA_文件名_15

偏移设置为3000

DA14580 空中升级 OTA_空中升级_16

链接,下载。

 

 

手机端实现 空中升级

1, iPhone手机到手机商店下载:SUOTA

DA14580 空中升级 OTA_文件名_17

 

2,把要升级的img文件拷贝到手机。工具可以选择iTunes或者iTools,其道理是一样的,这里以iTools为例,将手机连上iTools,然后选择:

DA14580 空中升级 OTA_OTA_18

打开SUOTA的文件共享,并选择以下文件夹,将要升级的文件拷贝到该文件夹下

DA14580 空中升级 OTA_文件名_19

 

 

拷贝完毕后关闭iTools,断开手机。

然后打开手机APP,点击搜索

DA14580 空中升级 OTA_OTA_20

这是我们事先烧录好的程序,点击设备建立连接。

DA14580 空中升级 OTA_空中升级_21

DA14580 空中升级 OTA_空中升级_22

配置默认, 点击Update,选择full_emb_sysram_fw_1.img。

DA14580 空中升级 OTA_文件名_23

DA14580 空中升级 OTA_空中升级_24

 

点击, Yes,reboot 再刷新界面,可以看到更新后的设备

DA14580 空中升级 OTA_#define_25

 

 

 

 

参考文档:  

                   http://www.snowywind.com/snowywind/?post=40

 

 

 

 

更新:采用 .bat 批处理文件简单化流程。

电脑上只需下载一次 hex文件,   手机上转入 img文件下载。

 

需要文件: 

1, secondary_bootloader.hex    可以采用官方工程编译好的,直接拿来备用,准备好后不需要再改动的。

2,xxA.hex       自己的工程编译后生成的HEX文件, 每次工程内容改动后,都需要替换的,工程本身要具有ota功能。

3,version.h     版本标记文档,每次下载前都需要修改版本号的。

4,hex2bin.exe    工具软件  hex转Bin的

5,mkimage.exe  打包软件 bin和.H打包,  或  bin和img打包

 

这些文件放在一个文件夹:D:\DA14580\program\OTA

DA14580 空中升级 OTA_#define_26

 

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

说明:

1,  cd /d D:\DA14580\program\OTA

说明这些文件放置的路径, 如果不是此路径,  安装相应的路径替换。

 

2, hex2bin -e bin A.hex

将 名称为 A.hex 的十六进制文件 转换为  同名的二进制文件  A.bin,   一般工程编译好后放进的文件名不为 A.hex,  要将A.hex名字对应替换。

 

3,hex2bin -e bin secondary_bootloader.hex

将二次引导文件secondary_bootloader.hex  转换为二进制文件, 为最后二次引导文件和 工程文件打包做准备用。

 

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

将转换后的工程二进制文件A.bin  和版本标注文件version.h  打包,  合成一个镜像文件A.img

 

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

将二次引导文件secondary_bootloader.bin和 工程镜像文件A.img   打包为A.img ,

image2的偏移地址为0x13000  ,设置image1和image2的信息偏移地址为0x1f000, 最后生产二进制OTA.bin文件

 

DA14580 空中升级 OTA_文件名_27

 

 

 

version.h

#define DA14580_SW_VERSION "v_5.0.4.0"

#define DA14580_SW_VERSION_DATE "2018-05-09 16:11 "

#define DA14580_SW_VERSION_STATUS "REPOSITORY VERSION"

 

准备好这些后,每次转化只需要运行一下Command.bat  文件即可。

采用 SmartSnippets下载时,弹出bootable时,要选择 ON。

DA14580 空中升级 OTA_蓝牙空中升级_28

 

 


 

 

 

 

 

 

 

 

 

 

 

 

举报

相关推荐

0 条评论