我(全局地)定义了一个大的字符串数组,如下所示:
const String opCodes[256]PROGMEM = {""...""}; // all 256 defined然而,现在构建它比我添加数组之前多消耗了20%的RAM。
这是出乎意料的。为什么会这样呢?谢谢
发布于 2018-04-27 20:09:06
与std::string非常相似,Arduino String object是一个动态字符串。并且因此将其数据存储在RAM中的动态分配的存储器中。
如果您想将实际的字符串数据本身存储在PROGMEM中,那么Arduino PROGMEM reference将告诉您如何使用实际的字符数组来实现。简而言之,创建存储在PROGMEM中的字符数组,然后创建指向字符串的const char *数组(也是在PROGMEM中)。
发布于 2018-05-03 17:21:54
最后,我决定不使用PROGMEM,因为它的使用似乎有点可疑。
一种有用的解决方法是改用F()函数。这是可行的。
https://stackoverflow.com/questions/50061977
复制相似问题