有没有支持OTA的代码示例
-
@felix-yang @ZHAO 测试了,你编译输出的Bin文件烧录后可以正常ota。
我使用make编译的方式却不行,是不是keil中的某些配置文件没有同步到Makefile文件中。
-
@laobai 你用我给你提供的工程进行make编译的吗?我工程中增加了OTA的代码
-
@felix-yang 反馈下,我已经修改了makefile文件,搞定了。
-
@laobai OK
-
@felix-yang @ZHAO 现在遇到一个奇怪的问题,make编译的文件烧录后正常启动,也可以使用ota功能,但在我修改了广播名称之后,经过一次OTA更新固件后就无法正常启动。卡住了。反复测试过。
我上传不了makefile文件。
-
修改固件版本号了嘛。。。。。
-
-
@zhao 没有修改版本号。
1.我拿链接: https://pan.baidu.com/s/1otVXhiSshTgePGA86HsI-g?pwd=z7mr 的这个直接做的测试,keil环境下我在别的电脑里试过,通过修改广播名称的最后一个字符比如分别为a或者b或者c的办法,Keil编译所产生的文件无论是烧录或者OTA更新的方法都能正常启动。
2.我换到个人电脑后,使用Make的编译方法,通过烧录的方法可以正常启动,但OTA更新后就会卡住。
-
@ZHAO @felix-yang 可否提供一个支持Make进行编译的例程?
-
gcc工程就是,但是你需要搭建gcc的编译环境参考以下链接
【有道云笔记】GCC环境编译
https://share.note.youdao.com/s/djDopcaU
-
@mars @ZHAO @felix-yang 不好意思,可能是我在上个回复里没有表达清楚。
1.我已经在另一个帖子里问过并搞定了gcc编译环境了。我现在可以用gcc编译了,但是编译后的结果与keil编译的结果不一样。
2.我想请你们帮忙验证一下,这个gcc环境下,是不是有些文件需要调整,比如boot_vectors.c或是其他原因。
-
gcc编译出来的bin文件是和keil编出来的不一样的,两个环境的编译优化不一样,但是是可以正常使用的
-
@mars 链接: https://pan.baidu.com/s/1otVXhiSshTgePGA86HsI-g?pwd=z7mr 这个包里的gcc编译您试了吗?我这编译出来,手机连接时直接显示“未找到OTA所用UUID”
-
没有添加ota服务就有这个提示,需要添加OTA服务ota_gatt_add_service(void)
-
@mars 我现在已经按照文件包里的代码已经添加进去,但是在ota完成之后,出现了系统不能启动的现象。
makefile文件中该增加的文件路径也包含进去了。
-
-
-
@mars 多谢。经您那边点播,我修改image_size为0x32000后成功了。
此时,我才注意到一个问题,就是Keil编译出来的固件大小刚好小于0x20000,而gcc编译出来的值超过了这个大小。
请教下,这个是为什么呢?