CH592的DataFlash似乎是不需要擦除的?
在初始化时调用以下代码,每次上电下电,或者从低功耗唤醒时,Temp[0]一直可以正常写入。
CH592的DataFlash似乎是不需要擦除的?
在初始化时调用以下代码,每次上电下电,或者从低功耗唤醒时,Temp[0]一直可以正常写入。
标准的操作流程,需要先擦除再写。
关键是,这样的话我就不能像普通Flash那样管理这块Flash了?
“一直可以正常写入”
一定要先擦再写,一定要先擦再写,一定要先擦再写,否则不保证写正确,本质上它还是一块flash。
“不能像普通Flash那样管理这块Flash”
可以的。一般的flash也是先擦再写嘛,只要保证写入的字段,在写的前一时刻是擦完的就OK;dataflash也是如此。
关键是我内存不够,每次都擦除是不是太影响寿命了,我可以像普通Flash那样确保写0的正常吗?
延长flash的寿命,可以分块滚动使用flash。
“像普通Flash那样确保写0的正常”按flash特性来讲,是可以的。注意:仅可以用于CH5Xx系列的dataflash。若是操作codeflash,读写操作会经由内核加解密,实际写入到flash物理层中的二进制内容,与C代码中的二进制写入内容不一致。