DA14580 空中升级 OTA

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jiangchao3392/article/details/80272068

1, 测试工程代码 DA14580_OTA测试工程代码下载

https://download.csdn.net/download/jiangchao3392/10406404

编译环境:keil5

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

 

转换工具下载:

https://download.csdn.net/download/jiangchao3392/10406425

 

转换分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



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

 

hex2bin -e bin ble_app_ota_580.hex

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

3,将bin文件再转换为IMG文件,使用如下指令:
mkimage single ble_app_ota_580.bin fw_0_version.h ble_app_ota_580.img

其中: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文件下载模板:https://download.csdn.net/download/jiangchao3392/10406546

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

 

 

 

 

2,二次引导工程文件DA1458X二次引导工程下载

https://download.csdn.net/download/jiangchao3392/10406116

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

 

 

文件下载:

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

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

 

2,在下载配置文件

点击 

其中一个配置文件Pdt_Header.txt   这里https://download.csdn.net/download/jiangchao3392/10406468 下载

 

 

3, 下载  .img文件

再点击:

重新选择 img文件。

偏移设置为3000

链接,下载。

 

 

手机端实现 空中升级

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

 

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

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

 

 

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

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

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

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

 

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

 

 

 

 

参考文档:  https://blog.csdn.net/yueqian_scut/article/details/50849033

                   https://blog.csdn.net/yueqian_scut/article/details/62229262

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

                   https://blog.csdn.net/gyb510/article/details/71496930

 

 

 

更新:采用 .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

 

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 , 并设置image1的镜像文件偏移地址为0x8000

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

 

 

 

 

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。

 

 

参考:https://blog.csdn.net/yueqian_scut/article/details/62229262

 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页