Arduino IDE 最大 PROGMEM 字符数组长度
Arduino IDE maximum PROGMEM char array length
我试图在我的 arduino sketch 中使用一个 4KB 的字符串,但这似乎总是在控制台中给出一大堆 java 错误并且永远不会编译。我相信,我正在正确使用它:
const char sequence[] PROGMEM = {"0F0FF0 ... 0F0F0FF"};
通过反复试验我确定我可以成功编译的最大长度是1104个字符。这似乎没有多大意义。编译器中是否有一些未知的限制或者是 IDE 的问题?我使用的是 1.0.5,但在 1.6.5 中也得到了相同的结果。我真的不想拆分数组。在线阅读,大小限制应该是32KB,远远高于我需要的。
请提供任何帮助或解释,谢谢。
这是 IDE 的限制,而不是编译器的限制。如果您仍然将它设为单个字符串,但使用 C 的字符串连接,它将编译。例如
const char sequence[] PROGMEM = {
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
...
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
};
我试图在我的 arduino sketch 中使用一个 4KB 的字符串,但这似乎总是在控制台中给出一大堆 java 错误并且永远不会编译。我相信,我正在正确使用它:
const char sequence[] PROGMEM = {"0F0FF0 ... 0F0F0FF"};
通过反复试验我确定我可以成功编译的最大长度是1104个字符。这似乎没有多大意义。编译器中是否有一些未知的限制或者是 IDE 的问题?我使用的是 1.0.5,但在 1.6.5 中也得到了相同的结果。我真的不想拆分数组。在线阅读,大小限制应该是32KB,远远高于我需要的。 请提供任何帮助或解释,谢谢。
这是 IDE 的限制,而不是编译器的限制。如果您仍然将它设为单个字符串,但使用 C 的字符串连接,它将编译。例如
const char sequence[] PROGMEM = {
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
...
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
};