乐鑫技术交流
直播中

张英

7年用户 1407经验值
私信 关注
[问答]

是否有其他方法检测加密flash闪存扇区是否处于已擦除/未写入状态?

我们一直在使用 esp_partition_write/read 函数访问一个分区来存储自定义数据,没有闪存加密。
该代码需要检测是否已写入特定数据元素。之前,我们读取内容,如果字节为 0xFF,我们假设数据已被擦除且尚未写入(我们从未将 0xFF 写入该位置)。
然而,启用闪存加密后,如果分区的内容被擦除,读取数据(使用 esp_partition_read 或内存映射访问)将返回乱码数据,因为设备“解密”了 0xFF 值。
我们可以使用“esp_flash_read”来读取原始字节,但是(也许?)真实数据可能已写入闪存,恰好加密为值 0xFF。
当闪存加密打开时,是否有其他方法检测闪存扇区是否处于已擦除/未写入状态?
                  
                                                                        
                                               

回帖(1)

李椰潭

2023-3-2 14:44:42
一种方法是向您写入的数据添加校验和/CRC/散列:如果与计算出的数据校验和/CRC/散列相匹配,则数据有效,否则数据为空或已损坏。另一种是使用 esp_flash_read,根据文档,它直接读取闪存,因此您可以重新使用“0xff 为空”逻辑。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分