C - 如何使用PROGMEM存储和读取char数组

时间:2012-10-26 20:24:29

标签: c arduino

我有三个char数组,我不希望Arduino将它们存储在SRAM中,所以我想使用PROGMEM来存储和读入flash,而不是。

char *firstArr[]={"option 1","option 2","option 3","option 4"};
char *secondArr[]={"test 1","test 2"};

2 个答案:

答案 0 :(得分:5)

有一个关于如何精确地做这个on the Arduino website的例子。 (参见“字符串数组”。)

答案 1 :(得分:2)

是的,Arduino网站上有一个例子。但我想让您了解compiler bug in GCC,以及以下解决方法:

/**
 * Alternative to PROGMEM storage class
 * 
 * Same effect as PROGMEM storage class, but avoiding erroneous warning by
 * GCC.
 * 
 * \see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34734
 */
#define PROGMEM_ __attribute__((section(".progmem.data")))