你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32F429IGT6双bank设置

[复制链接]
terencejia 提问时间:2018-8-24 13:49 /
大家好!
STM32F429IGT6芯片有一个内部flash,大小为1MB,默认是1个bank,12个sector。
手册里有说,可以设置为双bank模式,即每个bank大小为512KB,每个bank有8个sector。

HAL_StatusTypeDef SetFlashDoubleBank(void)
{
        HAL_StatusTypeDef status = HAL_ERROR;
        //celar all flags
        __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR\
                                                  | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);

        /* Wait for last operation to be completed */
        status = FLASH_WaitForLastOperation((uint32_t)FLASH_WAIT_TIMEOUT_VALUE);
        if(status != HAL_OK)
                return HAL_ERROR;
        //1 UNLOCK
        if(HAL_FLASH_OB_Unlock() != HAL_OK)
        {
                return HAL_ERROR;
        }

        //2 SET DOUBLE BANK BIT
        FLASH->OPTCR |= FLASH_OPTCR_DB1M;

        //3 LAUNCH THE OPTION BTYES
        if(HAL_FLASH_OB_Launch() != HAL_OK)
        {
                return HAL_ERROR;
        }
        //4 LOCK
        if(HAL_FLASH_OB_Lock() != HAL_OK)
        {
                return HAL_ERROR;
        }

        return HAL_OK;
}


笔者使用这个函数将flash配置为双bank。但是问题来了,cpu经常坏掉,无法烧写,请大神们帮忙分析一下,如果在配置双bank时断电,会不会造成内部flash损坏?还有,如果内部flash损坏,将boot模式设置为ram启动,cpu能否启动?
收藏 评论4 发布时间:2018-8-24 13:49

举报

4个回答
feixiang20 回答时间:2018-8-24 23:22:25
先确定你硬件没问题
tanic 回答时间:2018-8-24 23:37:13
能说下为什么要用双bank么

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

terencejia 回答时间:2018-8-28 08:10:25
feixiang20 发表于 2018-8-24 23:22
先确定你硬件没问题

感谢回复,电路很简单,电源部分+电机驱动+cpu,3.3v电源是正常的,电机驱动之前工作也正常。
terencejia 回答时间:2018-8-28 08:15:08
tanic 发表于 2018-8-24 23:37
能说下为什么要用双bank么

感谢回复,保存不同参数,1个bank的话,后面的sector为128kb,分成2个bank的话,可以得到16kb的sector,操作起来方便。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版