Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Вопросик по IAR [+]
Отправлено
MegaJohn
27 июля 2009, г. 15:21
банальная строка
strcpy_P( (char*) base.text, (char const __flash*) "бла-бла-бла" );
в иаре 4.31 комплилится так что "бла" во флеши, а и при стартапе этот бла копируется в рам
так как рам на это дело жалко, пишу так
static __flash char bla[] = "бла-бла-бла";
strcpy_P( (char*) base.text, bla );
так не устаивает две строки вместа одной.
вопрос, что выставить в настройках проекта или иара чтобы писалось одной строкой и не занимало в рам места ?
Составить ответ
|
Вернуться на конференцию.
Ответы
sprintf (base.text, "бла-бла-бла"):
-
Vladimir Ljaschko
(27.07.2009, 16:22:58
93.84.25.94
,
пустое
)
"национальная индейская изба, вигвам называется". (с) Это обьявление создает массив во флешт, который копируется в рам, и потом из рама копируется куда надо. Читать вопрос внимательней
-
MegaJohn
(27.07.2009, 16:32:32
81.222.85.88
,
пустое
)
Дружище, ты два символа добавить не можешь?
-
Vladimir Ljaschko
(27.07.2009, 16:42:36
93.84.25.94
,
пустое
)
sprintf_P - для индейцев.
-
Vladimir Ljaschko
(27.07.2009, 16:45:30
93.84.25.94
,
пустое
)
ковбой, посмотри в листинг линкера и обьясни куды же тады расходуется оператива. Для примеру сравни[+]
-
MegaJohn
(27.07.2009, 16:54:52
81.222.85.88
, 475 байт)
А не знаю. А что тут приведение типов делает?
-
Vladimir Ljaschko
(27.07.2009, 17:00:2
93.84.25.94
,
пустое
)
для sprintf приведения не надо, для sprintf_P надо. Хоть бы попробовал что ли сам.
-
MegaJohn
(27.07.2009, 17:25:2
81.222.85.88
,
пустое
)
не в приведениях вопрос, а как заставить ИАР при использовании функций xxxxx_P не использовать оперативу понапрасну.
-
MegaJohn
(27.07.2009, 17:02:13
81.222.85.88
,
пустое
)
То есть ты уличил IAR во вранье "Identical to sprintf except that the format string is in flash memory, not in data". А я три года назад видел, что это работает. И что теперь?
-
Vladimir Ljaschko
(27.07.2009, 17:11:38
93.84.25.94
,
пустое
)
снег полгода назад тоже был. Вообщем, если самому убедиться лень, то дальнейшая беседа смысла не имеет
-
MegaJohn
(27.07.2009, 17:23:39
81.222.85.88
,
пустое
)
во второй строке не printf_P а sprintf_P, 's' незакопипастил
-
MegaJohn
(27.07.2009, 16:55:49
81.222.85.88
,
пустое
)
Какие два символа ? И про что речь ? Мне нужно 200 байт в рам с иннициализировать из флеши.
-
MegaJohn
(27.07.2009, 16:43:36
81.222.85.88
,
пустое
)
А сколько раз инициализировать? Один?
-
Vladimir Ljaschko
(27.07.2009, 16:50:30
93.84.25.94
,
пустое
)
не один, а сколько потребует пользователь выставить значения по дефолту
-
MegaJohn
(27.07.2009, 16:56:31
81.222.85.88
,
пустое
)
Place aggregate initializers in flash memory вроде не то
-
MegaJohn
(27.07.2009, 15:37:34
81.222.85.88
,
пустое
)
В какой-то ранней версии была галочка "string literal in flash".
-
vmp
(27.07.2009, 15:37:20
10.0.1.100,87.245.155.198
,
пустое
)
в 4.31 есть но про рам, и не активно при DLIB [>]. Видать Dr.Alex нашептал IAR Systems, что в эмбеддед-приложениях память можно не экономить
-
MegaJohn
(27.07.2009, 15:51:54
81.222.85.88
,
пустое
,
ссылка
)
Это не флажок (+)
-
f16
(27.07.2009, 21:13:11
77.122.175.133
, 100 байт)
абсолютно так во всех версиях как минимум последние лет пять..
-
kan35
(27.07.2009, 22:28:14
213.33.228.98
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 45:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru