Invalid opcode 0xffff at ошибка

I wrote this code for avr atmega328P in assembly language. It turns on and off an LED using a push button, but in proteus I am getting this error:

Invalid opcode 0xFFFF at PC=0x002A

This is my code:

.INCLUDE "M328Pdef.inc"


ldi r16,HIGH(RAMEND)
out SPH, R16
ldi r16,LOW(RAMEND)
out SPL, R16

start:
ldi r16,0xFF
out DDRB,r16
ldi r17,0x00
out DDRD,r17
ldi r21,0x00
ldi r23,0x01

Forever:
in r20,PIND
cp r20,r21
BREQ ledon
cp r20,r23
BREQ ledoff
rjmp Forever


ledon:
ldi r22,0x01
out PORTB,r22 
ret

ledoff:
ldi r24,0x00
out PORTB,r24
ret

Does anyone have a solution for it?

Форум РадиоКот • Просмотр темы — Проблема с запуском atmega128 в протеусе

Сообщения без ответов | Активные темы

ПРЯМО СЕЙЧАС:

Автор Сообщение

Не в сети

Заголовок сообщения: Проблема с запуском atmega128 в протеусе

СообщениеДобавлено: Сб сен 07, 2013 16:00:30 

Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Ср май 22, 2013 19:18:17
Сообщений: 29

Рейтинг сообщения: 0

Приветствую!
У меня такая проблема, запускаю в Протеусе Atmega128 и выдает такую ошибку invalid opcode 0xffff at pc=0x11f6 ,есть какие нибудь идеи на счет этой ошибки


_________________
Если долго мучиться, да что нибудь получится!

Вернуться наверх
 

ПрофильПрофиль

 

Реклама

EDSedov

Не в сети

Заголовок сообщения: Re: Проблема с запуском atmega128 в протеусе

СообщениеДобавлено: Сб сен 07, 2013 20:11:45 

Вымогатель припоя
Аватар пользователя

Карма: 10

Рейтинг сообщений: 64

Зарегистрирован: Вс ноя 04, 2012 20:20:13
Сообщений: 573
Откуда: Рязань

Рейтинг сообщения: 0

dir.as писал(а):

invalid opcode 0xffff at pc=0x11f6

Переводится «поврежденный код», прошивку проверьте, можно даже на других контроллерах(с подстройкой кода программы под них) и/или симуляторах.


_________________
Выше нос! жизнь прекрасна! :))

Вернуться наверх
Реклама

dir.as

Не в сети

Заголовок сообщения: Re: Проблема с запуском atmega128 в протеусе

СообщениеДобавлено: Вс сен 08, 2013 09:52:26 

Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Ср май 22, 2013 19:18:17
Сообщений: 29

Рейтинг сообщения: 0

вот прошивка может что нибудь подскажет
atmega128, кварц на 16mhz, boot loader 2048

Вложения:
Комментарий к файлу: пошивка



lcd.hex [90.01 KiB]

Скачиваний: 505


_________________
Если долго мучиться, да что нибудь получится!

Вернуться наверх

EDSedov

Не в сети

Заголовок сообщения: Re: Проблема с запуском atmega128 в протеусе

СообщениеДобавлено: Вс сен 08, 2013 11:55:32 

Вымогатель припоя
Аватар пользователя

Карма: 10

Рейтинг сообщений: 64

Зарегистрирован: Вс ноя 04, 2012 20:20:13
Сообщений: 573
Откуда: Рязань

Рейтинг сообщения: 0

А пишите на каком языке, в какой среде разработки?


_________________
Выше нос! жизнь прекрасна! :))

Вернуться наверх
Реклама

Вебинар «Мощные модульные системы питания MEAN WELL 3+N. Новинки и хиты» (22.06.2023)

Приглашаем 22 июня на вебинар, посвященный подходу компании MEAN WELL к созданию мощных управляемых систем низковольтного и высоковольтного питания и зарядных установок для промышленного, технологического, телекоммуникационного, медицинского, радиопередающего и другого оборудования, а также для систем альтернативной энергетики.
На вебинаре мы рассмотрим новинки и серийную продукцию в концепции «3+N», расскажем об этой концепции и о том, как создать из готовых модулей систему питания мощностью до 360 кВт с напряжением до 380…400 В (постоянного тока). Будут представлены ИП с рециркуляцией энергии для тестового оборудования и модули управления питанием.

Подробнее>>

Gudd-Head

Не в сети

Заголовок сообщения: Re: Проблема с запуском atmega128 в протеусе

СообщениеДобавлено: Пн сен 09, 2013 13:31:41 

Друг Кота
Аватар пользователя

Карма: 67

Рейтинг сообщений: 1001

Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18383
Откуда: Столица Мира Санкт-Петербург

Рейтинг сообщения: 0

Медали: 1

Получил миской по аватаре (1)

dir.as писал(а):

есть какие нибудь идеи на счет этой ошибки

Есть. Вызывается команда (загружается 0x11f6 в РС) из пустого места в МК.


_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?

Вернуться наверх
Реклама

dir.as

Не в сети

Заголовок сообщения: Re: Проблема с запуском atmega128 в протеусе

СообщениеДобавлено: Чт сен 19, 2013 10:49:48 

Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Ср май 22, 2013 19:18:17
Сообщений: 29

Рейтинг сообщения: 0

если в протеусе ставлю фьюз BOOTRST= programmed то выходит другая ошибка invalid opcode pc=0x1f002
к чему это все и как можно исправить чтоб запустилась


_________________
Если долго мучиться, да что нибудь получится!

Вернуться наверх

Engineer_Keen

Не в сети

Заголовок сообщения: Re: Проблема с запуском atmega128 в протеусе

СообщениеДобавлено: Чт сен 19, 2013 11:02:13 

Друг Кота
Аватар пользователя

Карма: 32

Рейтинг сообщений: 228

Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3828
Откуда: Москва

Рейтинг сообщения: 0

Походу HEX тупо обрезан до 32кБ. Поэтому в обоих случаях происходит переход в «пустое» место флеша. Может какое-то ограничение компилятора?

Вернуться наверх

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

While running a program compiled in the Arduino IDE 1.8.5 and then using the .ELF file inside LabCenter Proteus 8.0, for an Arduino Nano ATMEL Mega 328P, for a code involving the use of the SoftwareSerial.h Library, hence involving several loops, without user interaction, I am getting the following error:

Invalid opcode 0x0024 at PC=0x0096

Now I am completely lost. According the AVR Instruction Set Manual such opcode should (not sure about this?) be RETI — Return From Interrupt at the Program Line (?) no.150 = 0x096. The full code has 779 lines plus several library calls, and the line 150 happens to fall just before the loop() function (?), which should never repeat, being just a declaration.

So, how should I debug this error? Evidently I am not asking to solve the problem for me but, how should I proceed for debugging it and find the real error?

I have been unable to find in Proteus a tool for «Debug Stop if Error»

I have been unable to isolate the error in a simple way to share. It should be related someway with interruptions used by the library SoftwareSerial.h, because at some modifications of the program, the code freezes at an interruption return. I am working on that, but advancing really slowly actually.

enter image description here
enter image description here
enter image description here
enter image description here

Related question No.1.

Как откомпилить бутлоадер в hex?

mempfis_

systemmind

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже.

Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Студворк — интернет-сервис помощи студентам

Доброго времени суток. Пишу мигающий светодиод на Avr ассемблере под Atmega16, среда AVR Studio 4.
Написал отдельную подпрограмму для задержки, получилось что-то вроде этого:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.include "D:Program Files (x86)AtmelAVR ToolsAvrAssembler2Appnotesm16def.inc"
 
sbi DDRC, 0
 
Main:
sbi PORTC, 0
rcall Delay
cbi PORTC, 0
rjmp Main
 
Delay:
ldi R18, 0xFF
Delay3:
ldi R17, 0xFF
Delay2:
ldi R16, 0xFF
Delay1:
dec R16
brne Delay1
dec R17
brne Delay2
dec R18
brne Delay3
ret

Дебажу через AVR Simulator. На скрине ниже — среда после вызова процедуры.

Не происходит возврат из подпрограммы (AVR Studio 4, Asm)

На вершине стека после вызова лежит совершенно непонятное число вместо адреса возврата. Дебаггер пишет Uninitialized stack pointer used at 0x0002, а после ret — Invalid opcode 0xffff at address 0x00e8e8; затем управление переходит к началу программы. Подскажите, в чем ошибка и как её исправить?

Понравилась статья? Поделить с друзьями:
  • Invalid interface type and number cisco ошибка
  • Invalid input syntax for integer ошибка
  • Invalid hwid ошибка чита aurora
  • Invalid gradle jdk configuration found ошибка
  • Invalid floating point operation ошибка в программе