|
IAR EWA for AVR, Помогите пожалуйста |
|
|
|
Sep 20 2005, 10:14
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 20-09-05
Пользователь №: 8 746

|
Начал пробовать IAR EWAVR 4.10a я делаю так: __flash char s[]="123456789" для запоминания строковой константы в FLASH, но после создания кода там строки нет пожалуйста обЪясните в чем ошибка
|
|
|
|
|
Sep 20 2005, 11:23
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 20-09-05
Пользователь №: 8 746

|
Я полагаю что код этой строки должен увидеть когда открываю HEX файл, программатором или другой программой. Кажется в самом деле компилятор ее выбрасывает. Я проверяю так:
const __flash char s[]="123456789";
void main(void) { char a,b; a=s[1]; b=s[2]; b=a+b; }
|
|
|
|
|
Sep 20 2005, 11:39
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 20-09-05
Пользователь №: 8 746

|
Цитата(NickB @ Sep 20 2005, 14:46) Если эта переменная нигде не используется, то компилятор может ее выбростиь при оптимизации Да, добавил в конце PORTA=b и код строки появился Спасибо
|
|
|
|
|
Sep 20 2005, 11:42
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(Dato @ Sep 20 2005, 19:23) Я полагаю что код этой строки должен увидеть когда открываю HEX файл, программатором или другой программой. Кажется в самом деле компилятор ее выбрасывает. Я проверяю так: const __flash char s[]="123456789"; void main(void) { char a,b; a=s[1]; b=s[2]; b=a+b; } Вообщето глобальные переменные должны компилиться в IAR не зависимо от степени оптимизации. Однако я делаю запись не много по друнгому: не const __flash char s[]="123456789"; а char __flash s[]="123456789"; const сдесь совсем не нужна указатели определяю как char __flash *ptr; И все компилится прекрасно. Только что попробовал так откомпилить с оптимизацией по размеру "medium". Строку видно в hex-файле
--------------------
|
|
|
|
|
Sep 20 2005, 12:08
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 20-09-05
Пользователь №: 8 746

|
Цитата(prottoss @ Sep 20 2005, 15:42) Вообщето глобальные переменные должны компилиться в IAR не зависимо от степени оптимизации. Однако я делаю запись не много по друнгому: не const __flash char s[]="123456789"; а char __flash s[]="123456789"; const сдесь совсем не нужна Да, const не нужна, но как бы не определить переменную видимо компилятор не включает ее код, если она не используется.
|
|
|
|
|
Sep 20 2005, 15:03
|
Группа: Новичок
Сообщений: 7
Регистрация: 30-03-05
Пользователь №: 3 806

|
Если добавить __root в определении переменной то компилятор в любом случае включит её в код
|
|
|
|
|
Jan 11 2006, 14:04
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AndyBig @ Jan 11 2006, 15:34)  Ну, под словом "компилятор" обычно подразумевают связку компилятор+линкер  А библиотекаря как подразумевают? Ассемблер? Make? Дальше хуже - редактор, tags, отладчик, strip, профайлер, ...... Нет, пусть уж пусть все будут сами собой...
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 12 2006, 06:47
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(zltigo @ Jan 11 2006, 20:04)  Цитата(AndyBig @ Jan 11 2006, 15:34)  Ну, под словом "компилятор" обычно подразумевают связку компилятор+линкер  А библиотекаря как подразумевают? Ассемблер? Make? Дальше хуже - редактор, tags, отладчик, strip, профайлер, ...... Нет, пусть уж пусть все будут сами собой... Не, это не то же самое. В некоторых пакетах, например, gcc (и немало других), запуск других тулзов производится компилятором, т.е. он является фронт-эндом для всего остального. И поэтому тут вполне уместно говорить, что компилятор сделал то-то и то-то. Т.е. чтобы собрать проект, достаточно запустить только компилятор. Хотя лично я предпочитаю тоже делить процесс сборки на независимые части и рулить каждой тулзой по отдельности, чтобы был полный контроль.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jan 12 2006, 08:03
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Цитата Дальше хуже - редактор, tags, отладчик, strip, профайлер Ну, батенька, это Вы хватили  ). Общим словом "компилятор" можно для краткости называть минимальный набор средств для преобразования исходников в готовый код, то есть препроцессор+компилятор+линкер, особенно когда все делается из среды одним кликом мыши. Остальные инструменты - это уже отдельно, каждый сам по себе.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|