项目基于B85M_SINGLE_BLE_SDK_V3.4.2.2
实现目标:有两个固件(app_1.bin, app_2.bin),将app_1.bin(烧写地址0x0)和app_2.bin(烧写地址0x40000)同时烧录到tlsr8258中,期望实现先启动app_2.bin,再由app_2.bin主动切换到app_1.bin.
我们的操作步骤如下:
>步骤1:擦除板子,然后写入两个固件
>步骤2:通过BDT的Memory Access将0x08写入0
>步骤3:给板子上电
>步骤3现象:app_2.bin成功运行,运行后并未实现固件切换(固件2的功能是等待10s后切换至固件1)
>步骤4:给板子重新上电
>步骤4现象:没有固件在运行
在app_2.bin中实现固件切换的代码如下:
u8 data_false = 0x0;
u8 data_true = 0x4b;
unsigned char r = irq_disable();
flash_write_page(0x40008, 1, &data_false);
flash_write_page(0x08, 1, &data_true);
irq_restore(r);
No more topics |
你好,
直接切换需要保证启动的固件对应0x8位置为0x4B,同时还需要擦除在修改该值。
感谢感谢,很有帮助,已经解决了