Topic

FAQ
Login Register
如何实现随意切换固件
Mar 19, 2024 19:58

/

A

/A

项目基于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);


2 replies
TL_Soyo Mar 20, 2024 09:55
1
/A

你好,

  直接切换需要保证启动的固件对应0x8位置为0x4B,同时还需要擦除在修改该值。

denghongyan [Author] Mar 20, 2024 11:47
0
/A

感谢感谢,很有帮助,已经解决了