STM32H750片内flash对同一flash地址做二次修改出错

鹅福哥 2019-03-01 06:01:51
我在程序里面拟定在片内flash地址0x08001000~0x0800101F(32bytes, 256bits)写一个uint64_t pData[4] = {0x1020304050607080, 0x0102030405060708, 0x1112131415161718, 0x1213141516171819};然后将pData[0] = 0x2122232425262728, 再将数组pData[4]写到0x08001000~0x0800101F,然后flash就挂掉了。

当然,在写操作中是执行了擦除操作的。我的写操作流程是:unlock_bank1-->erase sector0-->program 256bits-->lock_bank1
如果这个数组的值不变,那么我可以写任意次;一旦这个数组的值发生了变化,那么再次写入到同一flash地址空间就会理解挂掉。

我不清楚是自己在写flash之后没有将片内flash的什么状态恢复,还是说我在数据发生变化后再次执行写操作的时候,擦除动作是将整个flash擦除掉了,还是flash处于某个状态导致了我写出错。

所以我希望有遇到过这种问题的小伙伴和大佬们能够提供意见和帮助,也希望有官方技术支持能够验证一下提供方案,毕竟如果H750的片内flash只支持写一次的话,除了放一个bootloader外还有什么意义。

望解,谢谢!
...全文
674 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1

只有一個扇区,擦除就会整个128k擦完了

wofei1314 2019-05-13
  • 打赏
  • 举报
回复
STM32H750的FLash扇区只有一个扇区,大小为 128KB,你的操作中unlock_bank1-->erase sector0-->program 256bits-->lock_bank1 为什么擦除的是扇区0? 正常的逻辑应该说擦除扇区1吧?
gcfang123 2019-03-30
  • 打赏
  • 举报
回复
ECC错误。不可以重复写。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧