硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1016|回复: 7
收起左侧

[技术讨论] 双BANK交换,有1/4的概率失败,还有1/2概率卡死需要人工复位

[复制链接]

2

主题

11

回帖

17

积分

新手上路

积分
17
发表于 2024-8-7 09:24:18 | 显示全部楼层 |阅读模式



求助采用STM32G473CBT6,  双BANK交换,有1/4的概率失败,还有1/2概率卡死需要人工复位,代码如下:
void Swap_Bank(void)
{
    FLASH_OBProgramInitTypeDef OBInit;
    taskENTER_CRITICAL();                        //进入临界区
   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();       //关闭FLASH预取缓冲区
   HAL_FLASH_Unlock();                          //解锁用户闪存区域
   __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR);  //清除FLASH选项有效性错误标志
   HAL_FLASH_OB_Unlock();                       //允许访问选项字节扇区

   HAL_FLASHEx_OBGetConfig(&OBInit);            //获取双启动配置状态
   OBInit.OptionType =OPTIONBYTE_USER;
  OBInit.USERType   =OB_USER_BFB2;
  if((OBInit.USERConfig & OB_BFB2_ENABLE) == OB_BFB2_ENABLE)  //如果Bank1对应存储区2
  {
    OBInit.USERConfig =OB_BFB2_DISABLE;      //切换到存储区1
  }
  else OBInit.USERConfig =OB_BFB2_ENABLE;      //切换到存储区2
  HAL_FLASHEx_OBProgram(&OBInit);
  HAL_FLASH_OB_Launch();                       //启动选项字节加载

  HAL_FLASH_OB_Lock();
  HAL_FLASH_Lock();
  taskEXIT_CRITICAL();                         //退出临界区
  delay_ms(20); NVIC_SystemReset();
}
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116223
QQ
发表于 2024-8-7 09:54:50 | 显示全部楼层
帮顶下,没有操作过双BANK切换。

ps:这个变量建议这初始化FLASH_OBProgramInitTypeDef OBInit={0};
回复

使用道具 举报

4

主题

100

回帖

112

积分

初级会员

积分
112
发表于 2024-8-7 09:54:52 | 显示全部楼层
STM32H743  双BANK 做固件升级,没有遇到过这个问题
回复

使用道具 举报

2

主题

11

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 2024-8-7 10:06:32 | 显示全部楼层
eric2013 发表于 2024-8-7 09:54
帮顶下,没有操作过双BANK切换。

ps:这个变量建议这初始化FLASH_OBProgramInitTypeDef OBInit={0};

已验证,无改善
回复

使用道具 举报

2

主题

11

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 2024-8-7 10:44:48 | 显示全部楼层
heluo1985 发表于 2024-8-7 09:54
STM32H743  双BANK 做固件升级,没有遇到过这个问题

STM32H743  双BANK 做固件升级,我这里也很顺利
回复

使用道具 举报

2

主题

11

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 2024-8-7 14:18:00 | 显示全部楼层
问题已解决
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116223
QQ
发表于 2024-8-7 16:52:30 | 显示全部楼层

问题解决了,最好说下原因
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-11-19 10:35:16 | 显示全部楼层
请问啥问题,能说一下吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 12:00 , Processed in 0.267084 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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