FLASH擦除问题

        我们最近用mm32f3277的flash,mm32f3277的flash有512K的空间:128个扇区,每个扇区有四页,每页有1K。

图一 mm32f3277的flash

        我们写入flash用的是片内FLASH存储器,片内FLASH存储器的地址是0x08000000H - 0x0807FFFF 我们使用逐飞的flash库函数成功的存进去数据,但是我们在存完数据烧写新程序的时候发现我们的数据突然消失了。

 图二  程序烧写过程中

        然后我就去群里询问大佬,终于找到了答案。

 图三 我询问的大佬的聊天记录

        我们发现只要在keil里面设置一下flash的擦除功能就能解决自己存储的flash数据被擦除的问题

图四 keil里面的flash下载设置 

        只要在start和size设置好程序擦除的范围就可以避免自己的存储的flash数据被误擦。

图五 我随便存的数据(本来想存储经纬度的但是室内GPS没有信号) 

### Flash擦除方法及相关问题解决方案 #### STM32 Flash擦除失败的解决方法 当遇到STM32外部Flash擦除不成功的情况时,需确认以下几个方面: 1. **Flash控制器解锁**:确保在擦除Flash之前已正确解锁Flash控制器,并清除相关标志位。这一步骤至关重要,因为未解锁可能导致操作被忽略[^1]。 2. **查阅参考手册**:仔细阅读STM32的官方参考手册,按照文档中的流程完成Flash操作序列。 #### RT1021 FlexSPI NOR Flash擦除失败的原因分析 针对RT1021平台使用W25Q256型号NOR Flash时发生的块擦除失败现象,原因在于不同Flash芯片之间的指令集差异。具体表现为: - W25Q256的扇区擦除命令与ISSI IS25LP064A(默认用于RT1012 Demo板)的不同导致兼容性问题。因此,在开发过程中应根据所使用的Flash型号调整相应的配置参数和命令码[^2]。 #### 利用AndroidTool实现Flash擦除 对于某些特定硬件环境下的Flash擦除需求,可借助专用工具简化操作流程。例如,通过升级版`AndroidTool`能够快速完成如下任务: 1. 让目标设备进入LOADER模式,支持两种方式切换——物理按键组合或者ADB远程控制; 2. 加载待更新的固件文件至指定位置; 3. 启动擦除进程并监控实时状态反馈;整个过程耗时约半分钟到一分钟之间[^3]。 值得注意的是,上述方案适用于具备相应接口协议的产品系列,实施前务必验证适配性和安全性。 #### 华大HC32 MCU的安全区域管理策略 考虑到部分高性能微处理器内置了额外保护机制来增强数据保密能力,则需要特别关注其特殊分区设置逻辑。以华大半导体出品的HC32为例,为了保障敏感代码免受非法访问侵害,建议采用专门设计好的API库来进行精细化管控。比如将核心功能模块迁移至预定义的安全区域内存储执行[^4]: ```c // 示例演示如何调用位于固定偏移量处的服务例程 void __attribute__((section(".secfunc"))) Flash_SectorErase(uint32_t address); ``` 以上片段展示了C语言环境下自定义链接器脚本技巧的实际运用场景之一。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The hopes of the whole village

看心情打赏咯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值