查看: 1736|回复: 0

[原创] LPC55 FLASH擦除后,1还是0?

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20014
最后登录
2024-4-25
发表于 2020-9-4 15:23:44 | 显示全部楼层 |阅读模式
  对于大多数NXP的MCU,FLASH 在擦除状态下为全1状态,即在调试器Memory窗口中呈现为0xFF。写操作就是将1变为0。然而对于LPC55xx系列,在对FLASH执行完擦除操作后,我们在MCUXpresso IDE的调试器中却看到相应的FLASH地址区域显示全0状态。这一不同让很多LPC55的初学者感到困惑,甚至怀疑是否调试器的Memory窗口反映了FLASH的真是状态。
1.jpg

  LPC55擦除后的状态和其他大多数MCU相反,擦除后为0,而不是1。
  遗憾的是,我们不能用代码实时读到擦除后的FLASH状态。这是因为LPC55的增强型FLASH添加了ECC校验功能。擦除操作将被擦除的FLASH区域及其对应的ECC位全部置0。在这种情况下再去读这一区域时,CPU因检测到FLASH内容和对应ECC不匹配而报错(AHB read hardfault error )。MCUXpressoIDE 的LinkServer调试器能采取一些预防措施来避免此问题。所以我们在调试器Memory窗口中可以看到FLASH擦除状态
当执行写操作时, 校验位依据写入数据被重新计算并和该数据一起写进FLASH。写操作重建了正确的写入数据校验位,这样即使有1bit错误的情况下,也能够读出正确的数据。
LPC55的文档没有明显的地方标注FLASH擦除状态值。小编唯一能够找到的是在空白检测命令的描述中:
“ Theselected pages are checked for the erased condition (all 0 including parity)”
2.jpg


希望以上介绍能对大家进一步了解LPC55xx FLASH有所帮助。

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-25 17:22 , Processed in 0.115381 second(s), 19 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表