打印

GD32f407zet6 flash连续擦除扇区死机?

[复制链接]
801|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangkl11|  楼主 | 2023-10-9 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
擦除函数:                        ram_fmc_unlock();
                        ram_ob_unlock();
      /* clear pending flags */
        fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_OPERR | FMC_FLAG_WPERR | FMC_FLAG_PGMERR | FMC_FLAG_PGSERR);
        /* wait the erase operation complete*/
                        for (sector_num = 0; sector_num < 5; sector_num++)
                        {
                                ram_fmc_state = ram_fmc_sector_erase(CTL_SN(sector_num));
                                if(ram_fmc_state!=FMC_READY)
                                {
                                        while(1);
                                       
                                }
                        }


fmc_state_enum ram_fmc_sector_erase(uint32_t fmc_sector)
{
    fmc_state_enum fmc_state = FMC_READY;
    /*等待FMC准备好 */
    fmc_state = ram_fmc_ready_wait();

    if(FMC_READY == fmc_state) {
        /* start sector erase */
        FMC_CTL &= ~FMC_CTL_SN;
        FMC_CTL |= (FMC_CTL_SER | fmc_sector);
        FMC_CTL |= FMC_CTL_START;

        /* wait for the FMC ready */
        fmc_state = ram_fmc_ready_wait();
        FMC_CTL &= (~FMC_CTL_SER);
        FMC_CTL &= ~FMC_CTL_SN;

    }
    /* return the FMC state */
    return fmc_state;
}

第一个扇区擦除正常,到第二个扇区就擦除成功后  返回也正常,ram_fmc_sector_erase函数运行完后死机  

使用特权

评论回复

相关帖子

沙发
wangkl11|  楼主 | 2023-10-9 11:21 | 只看该作者

GD32f407zet6 flash连续擦除扇区死机?

有没高手指教一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

34

帖子

0

粉丝