【发布时间】:2015-04-19 15:44:46
【问题描述】:
我有一个带有 Arduino Uno 的项目,我需要存储一个对于 EPROM 来说太大的字符**。
我目前正在尝试使用串行,但如果需要,我也可以使用 AVRISP 编程器(不推荐)
到目前为止,我已经研究了 avr/boot.h API,但我不确定如何正确使用它,或者它是否是正确的方法。
【问题讨论】:
-
我不清楚您是要存储静态数据还是动态数据,因为您提到可能由 AVRISP 程序员执行。数据在编译时是否已知?
-
@Rev1.0 在编译时不知道,我想制作一个程序,让最终用户加载设置以自定义设备,所以不是在编译时。
-
好的。正常的方法可能是使用一些外部 EEPROM。另一种方式可能类似于接收固件更新。根据请求启动设备 -> 从引导加载程序代码接收您的数据 -> 将数据写入闪存地址空间末尾附近的特定地址 -> 继续主程序,它知道在哪里查找数据。
-
连续写MCU FLASH不是个好主意,不保证可以无限写!使用声明为 10000 次写入/擦除周期的 MCU 闪存性能更高的外部存储器可能会更好。
-
@SergioFormiggini,我知道写入/擦除周期,这是针对嵌入式设备的,用户可能只需要在其生命周期中最多 10-15 次执行此操作,因此应该没有问题.