1.目的
分析代码程序是如何执行开启广播的
2.分析
3.平台:
协议栈版本:DA1458x_SDK5.0.2
编译软件:keil 4.72
硬件平台:开发板
例子:DA1458x_SDK5.0.3\DA1458x_SDK5.0.3\DA1458x_SDK\5.0.3\projects\target_apps\ble_examples\prox_reporter\Keil_4
4.步骤
准备的东西如下:
1.secondary_bootloader.bin是
E:\DA14580\framware\DA1458x_SDK5.0.3\DA1458x_SDK\5.0.3\utilities\secondary_bootloader生成的bin文件
prox_reporter_580.bin是
E:\DA14580\framware\DA1458x_SDK5.0.3\DA1458x_SDK\5.0.3\projects\target_apps\ble_examples\prox_reporter\Keil_4生产的bin文件
2.hex转换成bin的方法如下:
a.把hex2bin.exe放到工程目录下面,如下所示:
b.工程设置如下:
c.编译工程,结果如下:
表示bin文件生产成功。
按照同样的办法生成secondary_bootloader.bin文件。并把2个bin放在主文件夹下面
接下里合并 image文件
命令如下: mkimage.exe single prox_reporter_580.bin fw_version_1.h prox_reporter_580.img 生产img成功
接下来boot 和img合成一个bin文件,如下:
表示 prox_reporter_580.bin生产成功,结果如下图
接下来把bin文件烧入芯片,
a
2.
b
、
单击NO下载程序到flash。。
下载完毕,断电重新上电。这个时候可以用蓝牙找到一个名字为“DIALOG-PRXR”
重新打开工程修改蓝牙名字如下。
重新生成bin文件,放入到手机如下
然后工SUOTA工具升级,但是显示如下
显示说这个img和固件里面的一样,怎么回事呢,原来我们在产生bin的时候,
mkimage.exe single prox_reporter_580.bin fw_version_1.h prox_reporter_580.img
用的fw_version_1.h里面的时间和版本号等等信息和烧入芯片里面的一致,导致他认为一样。
需要改变fw_version_1.h其中任何一个参数
#define DA14580_SW_VERSION "v_3.2.13.669"
#define DA14580_SW_VERSION_DATE "2016-09-28 14:51"
#define DA14580_SW_VERSION_STATUS "REPOSITORY VERSION"
改为
#define DA14580_SW_VERSION "v_3.2.13.670"
#define DA14580_SW_VERSION_DATE "2016-09-28 14:51"
#define DA14580_SW_VERSION_STATUS "REPOSITORY VERSION"
这样重新生产bin文件放入suota工具
再次升级
显示升级成功,点击reboot。ok
重新用lightblue查看蓝牙。
可以看到名字变成了 "DIALOG-SUOTA" ok 成功了。。。。。。。。。。。