Чтобы строка бралась их flash, нужно делать так:
Код
sprintf_P(buffer, PSTR("SETUP"));
Смотрите FAQ по avr-libc "Why do all my "foo...bar" strings eat up the SRAM?"
Если написать функцию для вывода симвала на ЖКИ и определить поток stdout, можно напрямую использвать printf. Например, так:
Код
int lcd_put(char c, FILE *stream);
FILE lcdout = FDEV_SETUP_STREAM(lcd_put, NULL, _FDEV_SETUP_WRITE);
...
stdout = &lcdout;