Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: iar CODE DATA "string"
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
D!m@
Здравствуйте.

Пишу в IAR Assembler for AVR 5.20.1 (5.20.1.50092) под ATmega128

В программе очень много работы со строками;
Например

Код
printf ("HRNOFF:   %3d  Hours",hmi->hrnoff);
printf ("HRNON:    %3d  Hours",hmi->hrnon);
printf ("UEID:\n%s",hmi->ueid);
strcpy((char *)modem_resiver,"AT+CGDCONT=1,\"IP\",\"");
strcmp((char *)modem_resiver,"\r\n+CPIN: SIM PIN\r\n\r\nOK\r\n")


Так компилятор все эти строки
Код
"HRNOFF:   %3d  Hours","HRNON:    %3d  Hours"….

кидает в RAM при чем со всего кода. Которой (RAM) потом нехватает.

Можно ли сделать, чтоб :
Код
"string"
– не загоняло в RAM эту строку и возвращало
Код
const char *
а возвращало просто адрес флеша
Код
__flesh const char *
KRS
Надо printf_P использовать
D!m@
Цитата(KRS @ Jan 15 2010, 12:49) *
Надо printf_P использовать

да но проблема не в этом.
Код
printf_P("string");
Error[Pe167]: argument of type "char const *" is incompatible with parameter of type "char const __farflash *"

надо чтобы запись типа
Код
"string"
не инициализировало перемену в RAM типа
Код
char const []="string"
" а инициализировало как указатель на флеш память
Код
char const __farflash *
где хранится строчка.
Палыч
Галка "Place string literals and constats in initialized RAM" ?
D!m@
Цитата(Палыч @ Jan 15 2010, 14:23) *
Галка "Place string literals and constats in initialized RAM" ?

с ней и без галки - одинаковой результат

как можно по умолчанию сделать атрибут __flash, и вернуть назад. Должно быть примерно так
Код
#pragma type_attribute=__flash
printf_P("string");
#pragma type_default=__flash


Цитата(Палыч @ Jan 15 2010, 14:23) *
Галка "Place string literals and constats in initialized RAM" ?

галка помогла ! Сначала неверно указал сегмент NEAR_C
bb-offtopic.gif
_Bill
Цитата(D!m@ @ Jan 15 2010, 12:45) *
...

Используйте опцию --_string_literals_in_flash
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.