[an error occurred while processing this directive]
Софт для AVR ISP программатора на базе AT90S2313
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Д_М 11 апреля 2006 г. 10:27

Я был просто в восторге от программы AVR911, которая работает с программатором на базе AT90S2313, в контроллер которого загружена прошивка от AVR910. И то, и другое свободно можно взять с сайта www.atmel.com. Досовская программа. Один раз набил бат файл и не надо каждый раз тыкать птички. Сразу был замечен лишь один минус. Когда производится проверка загруженного, замолкает музыка на выходе звуковушки, если таковая запущена. Это говорит о том, что программа не рационально работает с системой. Вчера столкнулся с очень старой проблемой, которую наблюдал очень часто при отладке программ написанных на ассемблере, либо на СИ, но с применением ассемблерных вставок, либо функций написаных на ассемблере. Проявляется совершенно непредсказуемой работой программы, когда на некотором интервале программы вставляется ничего неделающая команда, либо удаляется. Например NOP. На ассемблере типичной ошибкой было отсутствие анализа бита переноса, при операциях с указателями. У меня программа полностью написана на СИ. Исключение составляют вставки сохранения-восстановления регистра, куда было положено значение SREG. Это ещё, между прочим, одна ситуация, когда программа, при вставке команды, которая сама по себе ничего не могла изменить радикально не могла, творит что-то странное. Есть такая особенность у IAR C AVR v2.28A, что в обработчиках прерывания он сохраняет множество регистров, а если есть вызовы из обработчиков прерываний то сохраняет все регистры, а SREG он лишь кладет в R26. Последний не сохраняет в софт стек, но с R26 работает как буть здоров. Много крови мне это попило. Когда это нашёл, добавил во все обработчики прерываний asm("ST -Y,R26"); и соответственно asm("LD R26,Y+"); про подобные "чудеса" забыл до вчерашнего вечера. Интереса ради попробовал загрузить тот же самый файл другим программатором. Судя по всему он тоже был сделан на основе AVR910. У меня глаза на лоб вылезли, когда после загрузки программа заработала по другому. Ненормально, но не так, как после загрузки первым программатором. В hex файле есть разрыв адреса. Может быть загрузчики некорректно его обрабатывают? Может быть кто посоветует другую программу, для PC + uC, которую можно загрузить в AT90S2313 или AT90S4433. Заранее благодарен!

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru