相关工具另外发帖。
简介:此方法基于DA14580官方SDK_5.0.4更改,可以为自己的工程增加OTA功能。
一、开发准备:1、DA14580官方SDK:DA1458x_SDK_5.0.4
2、官方SDK5OTA文档
3、转换工具
4、手机APP
二、工程代码更改步骤:1、同时打开自己的工程和官方SDK中的例程ble_app_ota.uvprojx。
2、更改自己蓝牙的地址,不要与其它蓝牙地址冲突就行。
3、更改宏定义。
4、包含头文件
5、更改广播数据和设备的名称。将广播数据更换成官方ota例程的数据,这一段数据如果不一致会导致手机软件suota搜不到设备。名称可以随意设定。
6、编译自己的工程,会出现错误,根据错误提示,将没有定义的函数或变量从官方ota例程中全局搜索并对比每一处,更改为一样即可。
错误一:user_profile_callbacks
在官方ota例程中全局搜索
将官方ota与自己工程不一致的地方复制到自己工程
错误二:on_spotar_status_change
将官方ota与自己工程不一致的地方复制到自己工程
错误三:变量没有定义。
将
SDK5.0.4\SDK5.0.4\DA1458x_SDK_5.0.4\DA1458x_SDK\5.0.4\sdk\ble_stack\profiles\spota 目录下的spotar文件夹复制到自己工程的(src)文件夹,并在工程中添加。
将文件添加完成后就可以编译通过了。
注:编译通过后,请转至文档最后,还有一段代码需添加。
三、转换文件准备程序更改已经完成,下面进行bin文件与imag文件的生成。
1、转换工具需要两个工程输出的HEX文件。
先编译工程生成HEX文件cocobit_19_5_11_1
然后随意更改任意一处,加个延时或者定义变量,反正要与上一个程序不一样,因为OTA时会验证程序是否一样。更改后生成cocobit_19_5_11_2
将两个HEX文件更改为fw_1和fw_2放入转换工具的input文件夹中,
创建两个头文件,要求第二个头文件的版本信息和时间都需要比第一个的高。
如果是580的工程就更改下名字,585就该另外一个。
四、生成bin和image文件1、安装python环境
为计算机添加安装目录搭到环境变量,如图把python的安装目录添加到pth系统变量中即可
测试python安装是否成功,cmd打开命令行输入 python 命令,如下图即成功:
2、运行脚本
访问转换工具文件夹,然后输入命令运行脚本
成功生成文件
3、查看output文件夹。(运行脚本前可以把文件夹内容都删除)
然后将fw_multi_part_spi.bin文件用SmartSnippets烧录到flash。
五、烧录bin文件与OTA功能验证1、烧录的时候选择
烧录成功,重新上电。
2、打开手机SOUTA手机APP就可以搜索到设备相关的名称和地址。
3、将转换工具生成的img文件放到手机Suota文件夹。
4、在手机APP上点击设备,选择updata device,
选择send to device
升级完成之后选择重启设备。
至此,整个过程完毕。
六、测试测试OTA功能是否正常,在工程改一下设备名称,编译生成HEX文件后再按照上述步骤,将HEX改成fw_2.hex,然后在头文件fw_2_version.h把时间更改为现在的时间,保证要大于之前的时间或者版本即可。
将生成的fw_image_2.img文件用手机升级即可。升级完成之后,手机发送重启命令,设备没有完成重启,必须手动重启才能使程序生效,那是因为还有一段代码没有复制过去。
重启代码如下,添加后可完善OTA程序。即OTA完成后可用app复位,不用手动复位。
完整的Word格式文档51黑下载地址: