首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >占用RAM的PROGMEM阵列

占用RAM的PROGMEM阵列
EN

Stack Overflow用户
提问于 2018-04-27 20:01:49
回答 2查看 169关注 0票数 0

我(全局地)定义了一个大的字符串数组,如下所示:

代码语言:javascript
复制
const String opCodes[256]PROGMEM = {""...""}; // all 256 defined

然而,现在构建它比我添加数组之前多消耗了20%的RAM。

这是出乎意料的。为什么会这样呢?谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-04-27 20:09:06

std::string非常相似,Arduino String object是一个动态字符串。并且因此将其数据存储在RAM中的动态分配的存储器中。

如果您想将实际的字符串数据本身存储在PROGMEM中,那么Arduino PROGMEM reference将告诉您如何使用实际的字符数组来实现。简而言之,创建存储在PROGMEM中的字符数组,然后创建指向字符串的const char *数组(也是在PROGMEM中)。

票数 2
EN

Stack Overflow用户

发布于 2018-05-03 17:21:54

最后,我决定不使用PROGMEM,因为它的使用似乎有点可疑。

一种有用的解决方法是改用F()函数。这是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50061977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档