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
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
电脑上只需下载一次 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