找回密码
 立即注册

微信扫码登录

查看: 407|回复: 1

[Others] [转载] 如何实现随意切换固件

[复制链接]

26

主题

26

回帖

148

积分

版主

积分
148
发表于 2024-8-27 16:29:12 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
驱动SDK版本:
本帖最后由 TL_LBY 于 2024-8-27 16:30 编辑

转自旧论坛作者:denghongyan

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


26

主题

26

回帖

148

积分

版主

积分
148
 楼主| 发表于 2024-8-27 16:29:19 | 显示全部楼层
你好,

  直接切换需要保证启动的固件对应0x8位置为0x4B,同时还需要擦除在修改该值。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2024-12-21 20:43 , Processed in 0.080312 second(s), 20 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表