Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Команда ESPM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
abi
При компиляции проекта AVR231 AES Bootloader под ATmega128 в IAR Atmel AVR v. 5.50, возникает ошибка Error[40]: Bad instruction, указывая на команду ESPM
#ifdef __RAMPZ__
espm
#else
spm
#endif
Подскажите плиз в чем может быть ошибка? на других версиях IAR этой ошибки не было.
Палыч
В mega128 нет команды ESPM, есть только SPM - отсюда и сообщение об ошибке. Но, в тоже время, для чтения памяти программ есть команда расширенного чтения (ELPM), т.е. расширения команд в этом МК - неполные.
Имхо, нужно "прибить" определение __RAMPZ__
abi
Цитата(Палыч @ Sep 22 2010, 09:43) *
В mega128 нет команды ESPM, есть только SPM - отсюда и сообщение об ошибке. Но, в тоже время, для чтения памяти программ есть команда расширенного чтения (ELPM), т.е. расширения команд в этом МК - неполные.
Имхо, нужно "прибить" определение __RAMPZ__

Спасибо за ответ!
Да верно, в даташите на mega128 нет команды ESPM, и в других даташитах не встречал ее. Но ведь сами атмеловцы используют эту команду для mega128 в своем примере. Потом IAR до версии 5.40 включительно компилировал без ошибок этот код и он работал.

114 00000024 #ifdef __RAMPZ__
115 00000024 95F8 espm
116 00000026 #else
118 00000026 #endif

Смущает то что теперь IAR 5.50 отказывается понимать команду ESPM, а при компиляции с командой SPM генерится другой код:

114 00000024 #ifdef __RAMPZ__
115 00000024 95E8 spm
116 00000026 #else
118 00000026 #endif
Duhas
а не под Xmega ли код етот ?
точнее этот участок ) для ее поддержки..
abi
Цитата(Duhas @ Sep 24 2010, 19:11) *
а не под Xmega ли код етот ?
точнее этот участок ) для ее поддержки..

В примере условной компиляцией выбирается код для МК, у которых объем памяти более 64к. т.е. имеют расширенные инструкции доступу к памяти.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.