Полная версия этой страницы:
Отладака Atmeg"и без JTAGa
Dimmix
Oct 29 2010, 08:35
Господа подскажите однако как лучше отлаживать контроллер при задействованных выходах JTAG
_guardianangel
Oct 29 2010, 08:44
Воспользуйся USARTом. В контрольных точка программы расставь процедуры посылки текущего состояния и смотри как выполняется программа в HiperTerminal.
А какие выводы не задействованы?
UART? SPI? I2C? LEDS?
http://elm-chan.org/docs/avr/avrisp.html
А я всю жизнь отлаживал светодиодиком на любом свободном порту(портах).
MrYuran
Oct 29 2010, 09:13
Цитата(_guardianangel @ Oct 29 2010, 12:44)

Воспользуйся USARTом. В контрольных точка программы расставь процедуры посылки текущего состояния и смотри как выполняется программа в HiperTerminal.
Можно ещё написать/применить функцию внутреннего монитора, которая через технологический УАРТ будет выдавать по запросу внутренние состояния или устанавливать значения переменных.
Главное, не забыть заколотить этот люк после окончания отладки
Цитата(GDI @ Oct 29 2010, 12:56)

А я всю жизнь отлаживал светодиодиком на любом свободном порту(портах).
Морзянкой, чтоли?
Цитата(MrYuran @ Oct 29 2010, 13:13)

Морзянкой, чтоли?

Зависит от многих причин, сложности проекта, желаемого результата и т.п.
Maik-vs
Oct 29 2010, 11:23
программный уарт на любой ноге: прерывания запрещаем, тупо старт-бит+байт сдвигаем, прерывания разрешаем. На скорости 115200 оч. недолго это всё.
Аналогично, за неимением свободного аппаратного (всё занято в основном применении) используется софтовый.
Если ещё и тактирование от внутреннего RC без подкалибровки, то частота несколько снижается, первым байтом передаётся 0x55 и это всё идёт на свою же платку с другим микроконтроллером, который калибруется/принимает, результат отправляет в комп. Иногда ещё в этом отдельном микроконтролере делается некоторая расшифровка, диагностика идёт от целевой системы кодами ошибок, числами в двоичном виде и т.п. (часто если от внутреннего RC, то ещё и с флешем напряг, текстовые строки жалко размещать), а для передачи в комп декодируется.
Ну а когда связь с компом устройству и так нужна, то просто в протокол закладываются диагностические пакеты, которые принимающей программой отфильтровываются в лог-файл, в отладочное окошко, ...
Dimmix
Oct 30 2010, 15:58
Цитата(izerg @ Oct 29 2010, 12:49)

А какие выводы не задействованы?
Свободны пара выходов портов PE,PB и всякие /PEN, XTAL1-2,
UART какрас занят другим контроллером,
Видимо придется по прерывению сливать состояние всех регистров и переменных, и плюс индексировать каждую процедуру чтоб определить где прерывание....или что то в этом плане
zltigo
Oct 30 2010, 20:20
QUOTE (Dimmix @ Oct 30 2010, 18:58)

Видимо придется по прерывению сливать состояние всех регистров и переменных, и плюс индексировать каждую процедуру чтоб определить где прерывание....или что то в этом плане
Лучше больше думать перед тем и во время того, как пишите, тогда, глядишь и не придется копаться в куче мусора из "cостояний всех регистров и переменных". Писать и отлаживать все постепенно, тогда в процессе можно и незадействованными на момент отладки интерфейсами воспользоваться. Во многих случаях симуляторы смогут помочь неплохо. Ну и при использовании языков высокого уровня многое пишется и отлаживается на инструментальной, а не целевой платформе. Лично мне мысль использовать JTAG или иной отладчик приходит в голову последней, хотя под весь зверинец используемых мной контроллеров (разве только кроме Cypress M8C )
набор отладчиков у меня имеется.
Dimmix
Oct 30 2010, 21:04
Отладить нужно уже написанную программу т.е. нет исходников,
Инициализация сливается из епрома а он слегка слетел, а там всякие указатели на таблицы и все такое, т.е. нужно найти куда обращается процедура к таблице...UART впринципе пишет на драйвер дисплея можно канечно его отключить для отладки
SergeyGrig
Oct 31 2010, 09:44
Может контроллер еще и залочен?

Шутка.
Такой задачке не позавидуешь. Если бы эта тема была в разделе "Предлагаю работу", то я бы занялся ей.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.