Что происходит если всё же добавить const в следующую строку?
Вот так:
Код
static const __flash char str[] = string;
-это абсолютно логично и грамотно.
Ещё могу вам посоветовать решение, облегчающее жизнь с CR_LF:
Код
int fputc(int c, FILE* stream)
{
if ((char)c=='\n')
{
if (!fputc('\r', stream))
{
return (0);
}
}
uart_putchar(c);
return (c);
}
Таким образом не нужно в каждой строке хранить лишний символ '\r'.
Когда строк много, можно получить неплохую экономию флеша.
+ Возможность пользоваться puts традиционным способом.