Пытаюсь отлаживать простейшую программу в AVR Studio 4.13:
.include "m128def.inc" rjmp RESET ;Reset Handle RESET: ldi r16,$40 out DDRD,r16 lp: ldi r16,$40 out PORTD,r16 ldi r16,$00 out PORTD,r16 rjmp lp
Запускаю её через Auto Step. Через некоторое время отладка останавливается: курсор стоит на какой-то строчке, в статусной строке Студия показывает "Running", светодиод на отладчике горит постоянно или "подмигивает". Когда до метки RESET и после последнего rjmp был какой-то неиспользуемый код, оно не висло, а переходило вместо очередного шага в произвольную точку этого кода. Возникает резонный вопрос: WTF?
Сделал 2 варианта JTAG ICE: и с отдельным питанием, супервизором и согласованием с таргетом, и упрощённый, в котором Mega16 напрямую подключается к меге в таргете - оба ведут себя одинаково. Таргет - ATMega128-16AI c кварцем на 16.384 МГц, к ней подключен светодиод и MAX232. Цепь сброса - конденсатор на землю и резистор на питание. Плата с мегой без отладчика работает нормально. Кабель между отладчиком и таргетом пробовал сначала длинный (30 см), потом укоротил до 5 см. Частоту TCK в настройках уменьшал до 50 кГц. Скорость пробовал и 19200 (по умолчанию), и 9600. Симптомы всегда одни и те же.
|