对于大量的文本变量,我发现有必要使用PROGMEM将它们存储在闪存中。在Arduino上将大变量存储在Flash中(使用PROGMEM),SRAM和EEPROM有什么正面和负面影响?
对于大量的文本变量,我发现有必要使用PROGMEM将它们存储在闪存中。在Arduino上将大变量存储在Flash中(使用PROGMEM),SRAM和EEPROM有什么正面和负面影响?
Answers:
这是AtMega328上FLASH,EEPROM和SRAM的快速比较,AtMega328是当前许多Arduino板上的微控制器(不包括Due,Leonardo,较旧的Arduino和其他兼容板)。
PROGMEM
。因此,使用PROGMEM的关键假设负面后果是10,000个写周期限制。使用EEPROM的主要负面后果是读取/写入/复制数据的代码复杂性。SRAM,容量非常有限。
PROGMEM最适合用于不变数据。如果您要保持快速变化的变量,我将其存储在SRAM中。另一方面,如果您希望有一些不可变的文本变量(例如,要显示的内容),而不会经常获取,那么PROGMEM是个好主意。
关于EEPROM-尝试将其保存以备不时之需。IIRC通过SRAM / PROGMEM从EEPROM读取数据的速度较慢。通常,我(和其他人)在使用数据之前先将数据从EEPROM复制到SRAM(即使是官方示例也是如此)。