完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ESP32S3的EEPROM是由FLASH虚拟的,请问直接在arduinoIDE中擦写EEPROM时是否在底层自动进行了磨损平衡?
在用ESP32S3做含有计数器功能的设备,希望可以掉电保存数据,所以在计数事件发生时就要保存一次。每天大概会保存2000次。用arduino框架+FreeRTOS开发时使用EEPROM会方便很多。如果底层自动完成磨损均衡就能省很多事情了 |
|
相关推荐
1个回答
|
|
ESP32S3的EEPROM确实是由内部FLASH模拟实现的。在Arduino IDE中使用EEPROM库进行数据存储时,底层确实会进行一定程度的磨损平衡。但是,这种磨损平衡可能不足以应对高频率的写入操作,尤其是在每天需要保存2000次数据的情况下。
磨损平衡的目的是确保FLASH的每个块在使用寿命内被均匀地使用,以避免某些块过早地达到其写入寿命限制。然而,EEPROM库的磨损平衡策略可能不如专业的磨损平衡算法那么高效。 在这种情况下,您可以考虑以下几个方案: 1. 使用更专业的磨损平衡库:有一些专门为ESP32设计的磨损平衡库,例如"esp32-arduino-eeprom"。这些库可能提供更高效的磨损平衡策略。 2. 减少写入次数:如果可能的话,尝试减少写入次数。例如,您可以将多个计数事件累积在一起,然后在达到一定数量后一次性写入EEPROM。 3. 使用外部EEPROM:如果您的应用对数据持久性要求非常高,您可以考虑使用外部EEPROM芯片。外部EEPROM通常具有更高的写入寿命和更好的磨损平衡性能。 4. 优化数据存储结构:优化您的数据存储结构,以减少每次写入所需的数据量。例如,您可以使用更紧凑的数据格式或仅存储增量数据。 5. 考虑使用其他存储方案:除了EEPROM之外,您还可以考虑使用其他存储方案,如SPIFFS、LittleFS等文件系统,或者使用外部存储设备如SD卡等。 总之,虽然Arduino IDE中的EEPROM库在底层进行了一定程度的磨损平衡,但在高频率写入的情况下,可能需要采取其他措施以确保数据的持久性和FLASH的使用寿命。 |
|
|
|
只有小组成员才能发言,加入小组>>
1140 浏览 1 评论
577浏览 6评论
478浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
462浏览 5评论
463浏览 4评论
438浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:42 , Processed in 0.682462 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号