реклама на сайте
подробности

 
 
> Си и переход по явному адресу, Нужна консультация
srg_co
сообщение Sep 21 2006, 14:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Среда: Codevision AVR 1.24.8b prof
CPU: Mega8

Есть кусок кода в котором присутствует команда #asm("jump 0x0000"), е.е. в определенный момент необходимо перейти на стартовый адрес т.е. перезапустить контроллер. Эта конструкция успешно работала в версии Codevision 1.24.6 prof, настройки в проекте не менялись, причем компиляция проходит нормально, а при создании проекта вываливается ошибка: Error(s) occurred during assembly и указывает на JMP 0x0000 в ассемблерном файле.

Какие есть мысли по этому поводу ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vet
сообщение Sep 22 2006, 05:28
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Не может это скомпилироваться. Потому что команды jmp у меги8 нет, как было верно замечено.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
Семён
сообщение Sep 22 2006, 06:33
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Перезапуск контролера предпочитаю делать по сбросу WDТ таймера (всегда его использую) в реальных проектах это наиболее надежный способ. В конце памяти обычно размещаю следующий код:
ERROR_SYSTEM: ldi tmp,18
out WDTCR,tmp
ldi tmp,8
out WDTCR,tmp
ERROR_WAIT: nop
jmp ERROR_WAIT

Все неиспользуемые прерывания имеют инструкцию:
jmp ERROR_SYSTEM

Также если функция в программе возвращает несколько раз критическую ошибку или в основном цикле программы теоретически получаю не те данные, которые я ожидаю также использую переход на ERROR_SYSTEM
Надежность программ с этим кодом и без него проверял, специально мучая плату, разница видна была очень наглядно.
Дополнительно: при запуске программы проверяю по какому случаю произошел RESET
]


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016