打印
[单片机芯片]

CH32V203的空FLASH读出来是0xE339E339

[复制链接]
987|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
imdx|  楼主 | 2022-9-6 12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通常FLASH擦除以后读出来都是0xFFFFFFFF,表示所有位均为1,各大MCU厂家都是这么做的。但是实测CH32V203的空FLASH读出来是0xE339E339。
CH32V上一代产品比如CH32V103的空FLASH读出来是0xFFFFFFFF,和其它厂家是一样的,为什么CH32V203的空FLASH读出来是0xE339E339呢?这个除了增加不兼容,似乎并没有什么好处,这么设计的目的是什么呢?

使用特权

评论回复
沙发
LIzs6| | 2022-9-6 14:07 | 只看该作者
读出来为0xe339e339好像是因为做了一层加密处理,可以保护代码

使用特权

评论回复
板凳
imdx|  楼主 | 2022-9-6 14:56 | 只看该作者
LIzs6 发表于 2022-9-6 14:07
读出来为0xe339e339好像是因为做了一层加密处理,可以保护代码

保护代码?没写的空闪存有什么可保护的。写过的闪存读出来和写入值一样。

使用特权

评论回复
地板
鹿鼎计| | 2022-9-6 15:14 | 只看该作者
有没可能是出厂默认数据没有擦除?全擦除试试?

使用特权

评论回复
5
caigang13| | 2022-9-6 23:46 | 只看该作者
出厂烧写过程序?

使用特权

评论回复
6
littlelida| | 2022-9-8 21:17 | 只看该作者
那么正确的值是什么呢

使用特权

评论回复
7
imdx|  楼主 | 2022-9-12 15:50 | 只看该作者
看了手册,手册提到CH32V203闪存擦除以后是0xE339E339,那么如果一个闪存页面擦除以后再编程写入0xE339E339,这时候闪存是写入还是擦除状态呢?其它擦除以后全部是0xFFFFFFFF的闪存,擦除以后再次写入0xFFFFFFFF,实际上还是未擦除状态。并且可以同一个地址多次编程写入。比如先编程0xFFFF0000,在编程0x0000FFFF,最后结果是0x00000000,符合闪存编程只能1变0的特性。
CH32V203的闪存数据为0xE339E339我实测并不能再次编程其它值。

使用特权

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

本版积分规则

116

主题

890

帖子

7

粉丝