Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
viael
help.gif
Задолбался уже.Надо поместить переменную типа unsigned int в регистры, ну и объявляю ее так:

Код
__regvar __no_init char a @ 12;

компилеру добавляю опцию --lock_regs 5(пробовал от 1 до 12 разницы никакой),
на что получаю ответ линкера:
Fatal Error[e36]: Option --lock_regs does not exist

Че ему еще надо?
Семён
Цитата(viael @ Sep 21 2006, 15:49) *
help.gif
Задолбался уже.Надо поместить переменную типа unsigned int в регистры, ну и объявляю ее так:

Код
__regvar __no_init char a @ 12;

компилеру добавляю опцию --lock_regs 5(пробовал от 1 до 12 разницы никакой),
на что получаю ответ линкера:
Fatal Error[e36]: Option --lock_regs does not exist

Че ему еще надо?

В опциях проекта, в меню ICCAVR во вкладке CODE укажи регистры которые хочешь залочить (IAR 3.2)
viael
Цитата(Семён @ Sep 21 2006, 15:57) *
Цитата(viael @ Sep 21 2006, 15:49) *

help.gif
Задолбался уже.Надо поместить переменную типа unsigned int в регистры, ну и объявляю ее так:

Код
__regvar __no_init char a @ 12;

компилеру добавляю опцию --lock_regs 5(пробовал от 1 до 12 разницы никакой),
на что получаю ответ линкера:
Fatal Error[e36]: Option --lock_regs does not exist

Че ему еще надо?

В опциях проекта, в меню ICCAVR во вкладке CODE укажи регистры которые хочешь залочить (IAR 3.2)


Попробовал в ответ получил: [Su004]: Option can only occur once: --lock_regs

P.S. EWAVR 4.20a
singlskv
Цитата(viael @ Sep 21 2006, 16:33) *
Цитата(Семён @ Sep 21 2006, 15:57) *

Цитата(viael @ Sep 21 2006, 15:49) *

help.gif
Задолбался уже.Надо поместить переменную типа unsigned int в регистры, ну и объявляю ее так:

Код
__regvar __no_init char a @ 12;

компилеру добавляю опцию --lock_regs 5(пробовал от 1 до 12 разницы никакой),
на что получаю ответ линкера:
Fatal Error[e36]: Option --lock_regs does not exist

Че ему еще надо?

В опциях проекта, в меню ICCAVR во вкладке CODE укажи регистры которые хочешь залочить (IAR 3.2)


Попробовал в ответ получил: [Su004]: Option can only occur once: --lock_regs

P.S. EWAVR 4.20a

Если Вы указали на вкладке Code (Register Utilization) то уберите --lock_regs 5 из
Extra Option (Command Line Options).
viael
Цитата
Если Вы указали на вкладке Code (Register Utilization) то уберите --lock_regs 5 из
Extra Option (Command Line Options).


Убрал и опять же получаю ошибку: Fatal Error[e36]: Option --lock_regs does not exist

cranky.gif
IgorKossak
Всё работает если оставить только опцию в настройках компилятора Register Utilization.
Только что проверил.
Смотрите другие лишние настройки.
viael
Цитата(IgorKossak @ Sep 21 2006, 17:49) *
Всё работает если оставить только опцию в настройках компилятора Register Utilization.
Только что проверил.
Смотрите другие лишние настройки.


cheers.gif
Млин!!!! Так и есть в ходе экспериментов поставил --lock_regs 2 в опциях линкера и забыл про них!!!
Теперь все работает Ура!!!
viael
Цитата(viael @ Sep 21 2006, 17:57) *
Цитата(IgorKossak @ Sep 21 2006, 17:49) *

Всё работает если оставить только опцию в настройках компилятора Register Utilization.
Только что проверил.
Смотрите другие лишние настройки.


cheers.gif
Млин!!!! Так и есть в ходе экспериментов поставил --lock_regs 2 в опциях линкера и забыл про них!!!
Теперь все работает Ура!!!


Вопрос в догонку: Как запретить компилятору сохранять контекст в прерывании(хочу сам это делать)?
Old1
Цитата(viael @ Sep 21 2006, 17:31) *
Вопрос в догонку: Как запретить компилятору сохранять контекст в прерывании(хочу сам это делать)?



Код
__raw __interrupt void my_interrupt_function(void)
{
     ...
}
viael
Цитата(Old1 @ Sep 21 2006, 21:16) *
Цитата(viael @ Sep 21 2006, 17:31) *

Вопрос в догонку: Как запретить компилятору сохранять контекст в прерывании(хочу сам это делать)?



Код
__raw __interrupt void my_interrupt_function(void)
{
     ...
}



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