[an error occurred while processing this directive]
К профи по IAR C. Просилываю константу. В CSPY вижу две кории одна в CODE другая в DATA. Это что за фигня. Мне она в DATA не нужна.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Pioner
28 февраля 2003 г. 12:45
Составить ответ
|||
Конференция
|||
Архив
Ответы
Вдогонку. Если пишешь const char str[]="nrjkfvnfrgbhv", то реально массив str[] в ОЗУ располагается (т.е. копируется из flash в ОЗУ при работе загрузчика Си-кода). Я затрахался один проект делать -- компилятор говорил, что ОЗУ нет, хотя я всего ячеек 10 задействовал (был большой массив const char []). И только когда я написал __flash const char[], ОЗУ стало хватать.
—
ВВБ
(28.02.2003 13:36,
пустое
)
Таких расстреливать надо...
—
ShiphT
(28.02.2003 15:12,
пустое
)
Ответ: IAR один из самых глючных компиляторов. Все нормальные компиляторы, встречая const, записывают массив во flash (ПЗУ), а этот нифига. В старых версиях надо было писать flash const unsigned char tra-la-la, а в новой они сменили расширенный синтаксис (очень нехорошо поступили). В новой версии надо писать unsigned char __flash tra-la-la. Ещё и вектора прерываний по-другому надо инициализировать.
—
ВВБ
(28.02.2003 13:30,
пустое
)
Ну, не все уж так и плохо. В Options-ICCAVR-Code есть галочка "Place string literals and constants in initialized PAM" (+) "
—
Беня
(28.02.2003 14:34, 1909 байт)
Ответ: (+)
—
ВВБ
(28.02.2003 15:19, 690 байт)
Поменьше "просилывайте кории" и все будет хорошо :-))) Напишите, что вам надо по-нормальному
—
Прохожий
(28.02.2003 12:55,
пустое
)
2Mbit Flash - OK вижу два раза.
—
Pioner
(28.02.2003 13:10, 287 байт)
Ужас
—
Elektronik
(28.02.2003 14:46, 59 байт)
у меня в дата места нет вот и спрашиваю.
—
Pioner
(28.02.2003 17:43,
пустое
)
По-моему, Вам надо так (+)
—
Беня
(28.02.2003 14:46, 229 байт)
Тогда уж
—
ShiphT
(28.02.2003 15:17, 189 байт)
Таки да ! :-)
—
Беня
(28.02.2003 15:43,
пустое
)
__flash char str1 = "2Mbit Flash - OK";
—
Pioner
(28.02.2003 15:43, 75 байт)
__flash char str1[] = "2Mbit Flash - OK" Вы просто скобочки забыли в объявлении массива str1[]
—
Беня
(28.02.2003 16:27,
пустое
)
__flash const char str1 = "2MBitFlash - OK";
—
ShiphT
(28.02.2003 15:51,
пустое
)
Тот же результат.
—
Pioner
(28.02.2003 16:02,
пустое
)
Оппс! str1[] = "..." конечно-же
—
ShiphT
(28.02.2003 16:26,
пустое
)
Я уже это всё сразу правильно написал. и ковычки и const а ему всё не нравиться.
—
Pioner
(28.02.2003 16:54,
пустое
)
Дай исходник тогда, а то у меня
—
ShiphT
(28.02.2003 17:17, 326 байт)
Ответ:
—
Pioner
(28.02.2003 17:23, 239 байт)
Так с этого и надо начинать!!!
—
ShiphT
(28.02.2003 17:47, 85 байт)
Спасибо всё пошло. Но нормальной доки явно не хватает.
—
Pioner
(28.02.2003 17:59,
пустое
)
Ответ:
—
Elektronik
(28.02.2003 12:52, 304 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru