Topic

FAQ
Login Register
BLE OTA
Jul 18, 2022 17:59

/

A

/A

正在做自己的OTA功能,请教几个问题:

1、文档说启动地址+0x20=0x4B,就会在对应地方搬运代码,但是烧录固件后,固件读取0x20的地址发现还是bin文 件的内容,非0x4b,这是为何?

2、OTA中,将新固件写入到了新的启动地址,是要在新的启动地址+0x20的位置,将此地址值写为0x4b,然后复位就可以启用新固件吗?

3、OTA新固件写入后,用什么API相当于上电复位?



andy2013 [Author] Jul 19, 2022 10:47
0
/A

hi soyo

    对于第二个问题,要将之前启动地址擦除,OTA的时候是运行在之前的启动地址,擦除了会没法工作。是单独擦除部分地址数据,这样就不影响OTA的运行?如果是应该擦除哪部分地址?

3 replies
TL_Soyo Jul 19, 2022 10:17
0
/A

你好,

  烧录固件会擦除之前的flash数据,再写入新的flash数据。

  新地址修改后,需要将之前的启动地址数据擦除;

  调用start_reboot()执行重启。

  

andy2013 [Author] Jul 19, 2022 10:47
0
/A

hi soyo

    对于第二个问题,要将之前启动地址擦除,OTA的时候是运行在之前的启动地址,擦除了会没法工作。是单独擦除部分地址数据,这样就不影响OTA的运行?如果是应该擦除哪部分地址?