win-avr Řetězce ve FALSH a warning
Ondrej
leguanolog@seznam.cz
Sobota Květen 2 17:46:19 CEST 2009
Zkuste tohle (je to podle dokumentace nebo tak a používám to už pár let
na různé verze WinAVR bez problémů):
#define PRINT(string) (USART_PrintfProgStr(PSTR(string)))
extern void USART_PrintfProgStr (const prog_char *pBuf );
extern void USART_PrintfProgStr (const prog_char *pBuf )
{
register u08 c;
while ((c = pgm_read_byte_near (pBuf++)))
{
USART_SendByte(c);
}
}
Smotné PSTR je definováno v pgmspace. Jinak nějaký speciální makefile
myslím netřeba.
OH
Petr Stehlik napsal(a):
> Jak správně nadefinovat řetezec do paměti programu, aby tam byl
> a zaroveň to nevyhodilo žádný warning?
> Je to nějakým nastavením, nebo mám použít nějakou konkrétní verzi winavr?
> Prohledal jsem internet a všechny přiklady mi při překladu vyhodí warning.
> Momentálně používám WinAVR 20090313.
> Poraďte mi co s tím. Díky.
> Petr
>
> uartSendStr_P("\r\n\nZadej volbu:"); // rozumím, je to zastaralé
> -warning: deprecated conversion from string constant to 'prog_char*'
>
> // Potřeboval bych se dopracovat k něčemu takovému.
> // Mám asi 50 textů, které se nikde neopakují a tahat je
> // přes proměné se mi jeví nepřehledné.
> uartSendStr_P(PSTR("\r\n\nZadej volbu:")); // Todle by prý mělo fungovat,
> ale..
> -warning: only initialized variables can be placed into program memory area
>
> char text1[] __attribute__ ((progmem)) = "\r\n\nZadej volbu:";
> char text1[] __attribute__ ((__progmem__)) = "\r\n\nZadej volbu:";
> char text1[] PROGMEM = "\r\n\nZadej volbu:";
> -warning: 'progmem' attribute ignored
> -warning: '__progmem__' attribute ignored
> -warning: '__progmem__' attribute ignored
>
> příklad přímo z dokumentace
> const char foo[] PROGMEM = "Foo";
> const char bar[] PROGMEM = "Bar";
> PGM_P array[2] PROGMEM = {foo,bar};
> -warning: '__progmem__' attribute ignored
> -warning: '__progmem__' attribute ignored
> -warning: '__progmem__' attribute ignored
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
--
Jabber: Iguaner@jabber.cz
ICQ: 122712466
---------------------------------------------------
| |
| IKORAS - My home-made MP3 player |
| http://ikoras.iglu.cz |
| |
---------------------------------------------------
Další informace o konferenci Hw-list