正在做自己的OTA功能,请教几个问题:
1、文档说启动地址+0x20=0x4B,就会在对应地方搬运代码,但是烧录固件后,固件读取0x20的地址发现还是bin文 件的内容,非0x4b,这是为何?
2、OTA中,将新固件写入到了新的启动地址,是要在新的启动地址+0x20的位置,将此地址值写为0x4b,然后复位就可以启用新固件吗?
3、OTA新固件写入后,用什么API相当于上电复位?
8250 |
SDK计算唤醒时间点错误 |
广播间隔及时更改 |
广播参数不能及时改变 |
OTA process |
广播模式的切换 |
精确定时 |
hi soyo
对于第二个问题,要将之前启动地址擦除,OTA的时候是运行在之前的启动地址,擦除了会没法工作。是单独擦除部分地址数据,这样就不影响OTA的运行?如果是应该擦除哪部分地址?
@andy2013
擦除或者修改当前之前固件0x20位置的值。
你好,
烧录固件会擦除之前的flash数据,再写入新的flash数据。
新地址修改后,需要将之前的启动地址数据擦除;
调用start_reboot()执行重启。
hi soyo
对于第二个问题,要将之前启动地址擦除,OTA的时候是运行在之前的启动地址,擦除了会没法工作。是单独擦除部分地址数据,这样就不影响OTA的运行?如果是应该擦除哪部分地址?
@andy2013
擦除或者修改当前之前固件0x20位置的值。