GD32F450的flash擦除问题

[复制链接]
4749|10
 楼主| 我是个新手111 发表于 2022-1-10 15:08 | 显示全部楼层 |阅读模式
GD32F4的芯片flash擦除最小为扇区,四个16KB,一个64KB,其余全部为128KB.没有页擦除操作。有谁自己写过flash的页擦除函数么,没有页擦除,操作64kb或者128kb区域的代码就很不方便,自己仿照GD32F1的页擦除写了一个,但发现擦除没有效果。有没有什么建议
sagade 发表于 2022-1-12 15:22 | 显示全部楼层
看手册450貌似只有扇区和块的概念,反正我是擦除多个扇区这样操作的。
tpgf 发表于 2022-2-4 17:09 | 显示全部楼层
没有页擦除吧
paotangsan 发表于 2022-2-4 17:15 | 显示全部楼层
其实就是多操作几次的  
renzheshengui 发表于 2022-2-4 17:23 | 显示全部楼层
擦除flash是不是速度比较慢 啊
wakayi 发表于 2022-2-4 17:29 | 显示全部楼层
一次擦除很多和来回擦除好几次 耗时是一样的吗
wowu 发表于 2022-2-4 17:39 | 显示全部楼层
这个还真不好说  可以实测一下
xiaoqizi 发表于 2022-2-4 17:51 | 显示全部楼层
我觉得肯定一次擦除耗时短 但是也没有太大的优势
match007 发表于 2022-2-8 17:27 | 显示全部楼层
这还不方便?我倒是喜欢擦除单位越小越好
sumosumo 发表于 2022-2-9 16:16 | 显示全部楼层
这么大的擦除单位很不好用啊,要更新一些用户数据时,需要读出旧数据,耗费的RAM就不是一个小数目
wangkl11 发表于 2023-10-9 11:41 | 显示全部楼层
我连续擦除多个扇区死机  有没有大佬分析一下的       /* 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));
       
                                fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_OPERR | FMC_FLAG_WPERR | FMC_FLAG_PGMERR | FMC_FLAG_PGSERR);
                                if(ram_fmc_state!=FMC_READY)
                                {
                                        while(1);
                                       
                                }
                        }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部