avr-gcc 如何将字符串放入程序中?
Posted
技术标签:
【中文标题】avr-gcc 如何将字符串放入程序中?【英文标题】:avr-gcc How to put strings in progmem? 【发布时间】:2021-08-25 15:03:39 【问题描述】:我有疑问如何将字符串放入程序中?这是示例程序。
void ParAdd(uint8_t type, const char *ParName)
#do something meaningful here
int main (void)
ParAdd(11, "Name1");
ParAdd(22, "Name2");
ParAdd(30, "Name3");
有没有办法将函数调用中的字符串参数声明为PROGMEM?我知道“经典”方式,例如:
char string_1[] PROGMEM = "String 1";
char string_2[] PROGMEM = "String 2";
..但就我而言,如果可能的话,我更喜欢单行。示例程序是 meninglles,但在实际情况下有许多参数和许多“ParAdd”调用。但找不到使用类似的解决方案:
ParAdd(11, (PROGMEM) "Name1");
有人知道解决方案吗? arduino 中的 F() 宏之类的东西?
【问题讨论】:
【参考方案1】:...因为解决方案如此简单而变得愚蠢。
ParAdd(11, PSTR("Name1"));
是解决方案。
【讨论】:
以上是关于avr-gcc 如何将字符串放入程序中?的主要内容,如果未能解决你的问题,请参考以下文章
avr-gcc:如何将 __attribute__((address)) 与 EEMEM 一起使用?