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

 
 
> Проблемы с отладкой программы через JTAGICE mkII
Yaumen
сообщение Nov 22 2007, 06:04
Сообщение #1


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

Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213



1. Посредством ISP разрешил работу JTAG (JTAGEN=1) и On-Chip Debug (OCDEN=1)
2. Подключил JTAGICE mkII к ATMEGA128 с ипользованием TDI,TDO,TCK,TMS и sRST

3. Программирую проект через AVRStudio 4.13 SP1. Все в норме. Кристалл зашивается.

4. Жму "Start Debugging". Загружается окно Debug и указатель указывает на 1-й байт в BOOT области (SMALLBOOTSTART). В которой располагается команда rjmp

5. После нажатия F10 или F11 программа как-бы подвисает и затем через несколько секунд вываливается из Debug режима.

Как заставить работать отладку?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Yaumen
сообщение Nov 22 2007, 07:06
Сообщение #2


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

Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213



К сожалению и этот вариант не проходит, хотя бы из-за того что микросхема прошивается через этот же разъем (интерфейс) и программатор без проблем
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 22 2007, 17:02
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Yaumen @ Nov 22 2007, 10:06) *
К сожалению и этот вариант не проходит, хотя бы из-за того что микросхема прошивается через этот же разъем (интерфейс) и программатор без проблем

Это ни о чем не говорит. Прошивать вы его могли вручную через Tools->Program AVR.
Речь о том, что во вкладке Debug->Select Platform and device должен быть выбран правильный отладчик и правильный тип кристала. Вы проверили что кристал выбран правильно, и что компилируете вы под тот чип, что надо?

На чем написана тестовая программа?
Рекомендую для проверки нашкрябать одну строку на asm'e и попробовать ее отладить:

L1: rjmp L1

Войдя в режим отладки, "не шагая", попробовать через JTAG подергать порты (кликая мышкой на квадратики во вкладке "I/O View").. Если ноги будут дергаться, то большая вероятность того, что у вас что-то не так с размещением программы.
Go to the top of the page
 
+Quote Post
Yaumen
сообщение Nov 23 2007, 06:28
Сообщение #4


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

Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213



Цитата(defunct @ Nov 22 2007, 20:02) *
Это ни о чем не говорит. Прошивать вы его могли вручную через Tools->Program AVR.
Речь о том, что во вкладке Debug->Select Platform and device должен быть выбран правильный отладчик и правильный тип кристала. Вы проверили что кристал выбран правильно, и что компилируете вы под тот чип, что надо?

На чем написана тестовая программа?
Рекомендую для проверки нашкрябать одну строку на asm'e и попробовать ее отладить:

L1: rjmp L1

Войдя в режим отладки, "не шагая", попробовать через JTAG подергать порты (кликая мышкой на квадратики во вкладке "I/O View").. Если ноги будут дергаться, то большая вероятность того, что у вас что-то не так с размещением программы.


Значит вот что получилось:

1. Сделал новый проект на ASM с 2-мя строчками
Код
L1: rjmp L2
L2: rjmp L1

2. Проверил, что указан JTAGICE mkII в Debug->Select Platform and device. И указана AtMega128. Все правильно
3. Запустил Build\Build and Run
4. Появился указатель на 1-й строчке моего кода L1: rjmp L2
5. Пощелкал состоянием ног одного порта PORTD. Все нормально, состояние порта устанавливается в соответствии с тем, что я устанавливаю!!!
6. Делаю шаг "Step In" и программа как бы подвисает, но такое ощущение, что она просто куда-то улетает. Так как на TOOLBAR остаются активными кнопки RESET и PAUSE.
7. Через некоторое время, не дождавшись результата, жму PAUSE. И еще через мгновение программа выкидывает окно Dissambler и в нем останавливается на адресе:
Код
+00000A36:   FFFF        ???                      Data or unknown opcode

Пробовал проделывать такое несколько раз и даже со "Step Out", единственное отличие, что после нажатия PAUSE адрес моей остановки случайный.
8. В этом же окне Disassembler перехожу на начало программы и смотрю, что там все нормально записано:
Код
1:        L1: rjmp L2
+00000000:   C000        RJMP    PC+0x0001        Relative jump
@00000001: L2
2:        L2: rjmp L1
+00000001:   CFFE        RJMP    PC-0x0001        Relative jump

9. Ставлю указатель на адрес 0000 - Set next Statement
10. Делаю "Step In", перемещаюсь на L2, делаю еще раз "Step In", перемещаюсь на L1. И так до бесконечности, все работает ОТЛИЧНО!!! Попутный вопрос, обязательно нужно работать в окне Disassembler или что у меня не так?

11. Теперь загружаю свою программу, повторяю пункты 1-5. Все тоже самое - работает нормально, за исключением того, что указатель указывает на 1-ю строчку в моей программе
Код
clr    a

12. Открываю окно Disassembler, смотрю что и там указатель указывает на 1-ю строчку моего кода:
Код
+00000000:   2700        CLR     R16              Clear Register

13. Делаю "Step In" и все программа улетает куда то безвозвратно, а через мгновение, получаю знакомый: "Error single step" и затем еще через мгновение выкидывает окошко "Platform has been disconnected, leaving debug mode"
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 23 2007, 11:07
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Yaumen @ Nov 23 2007, 09:28) *
В устройстве кварц на 12МГц, частота JTAG 1МГц

5. Пощелкал состоянием ног одного порта PORTD. Все нормально, состояние порта устанавливается в соответствии с тем, что я устанавливаю!!!
7.
8.
9. Ставлю указатель на адрес 0000 - Set next Statement
10. И так до бесконечности, все работает ОТЛИЧНО!!!

Попутный вопрос, обязательно нужно работать в окне Disassembler или что у меня не так?

В окне Disassembler работать не обязательно. Открывается оно тогда когда кристал выполняет код вышедший за границу вашей программы.

То что при нажатии PAUSE проц останавливается по неправильному адресу - 0xA36, может говорить о том, что
1. произошло какое-то прерывание.. (Как? если флаг I == 0, для пресечения такой возможности в тест код ставим первой инструкцией CLI)
2. программа стартует не с 0x0000 адреса.
3. отладчик перепрыгнул через одну команду после точки останова. (для проверки п.3, вставляем между двумя rjmp пару-тройку NOP'ов)

Насчет, что не так:
Используете ли вы самодельный переходник между JTAGICE разъемом и таргет девайсом, если да какова суммарная длина шлейфа?
Можете привести настройки всех фузов которые у вас установлены (можно скопировать из окна Fuses)?
Включите фуз CKOPT и проверьте (если есть возможность) что на XTAL2 есть 12Mhz.
Если 12Mhz есть, самодельный шлейф не используется, то попробуйте разорвать соединение между nSRST JTAGICE и RST таргет девайса (например отпаять пин RST и оставить его висеть в воздухе).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Yaumen   Проблемы с отладкой программы через JTAGICE mkII   Nov 22 2007, 06:04
- - mse   Цитата(Yaumen @ Nov 22 2007, 09:04) 1. По...   Nov 22 2007, 06:25
|- - Yaumen   Цитата(mse @ Nov 22 2007, 09:25) Сделать ...   Nov 22 2007, 06:38
|- - mse   Цитата(Yaumen @ Nov 22 2007, 09:38) Извин...   Nov 22 2007, 06:56
|- - mse   Цитата(Yaumen @ Nov 22 2007, 10:06) К сож...   Nov 22 2007, 07:42
||- - Yaumen   Цитата(mse @ Nov 22 2007, 10:42) А вывали...   Nov 22 2007, 08:23
||- - mse   Цитата(Yaumen @ Nov 22 2007, 11:23) ... ...   Nov 22 2007, 08:40
||- - Yaumen   Цитата(mse @ Nov 22 2007, 11:40) Ха-ха......   Nov 22 2007, 08:59
||- - mse   Цитата(Yaumen @ Nov 22 2007, 11:59) Ха. С...   Nov 22 2007, 09:15
||- - Yaumen   Цитата(mse @ Nov 22 2007, 12:15) Ну,блин....   Nov 22 2007, 10:21
||- - defunct   Цитата(Yaumen @ Nov 22 2007, 13:21) На др...   Nov 22 2007, 10:37
||- - Yaumen   Цитата(defunct @ Nov 22 2007, 13:37) Раз ...   Nov 22 2007, 10:53
||- - defunct   Цитата(Yaumen @ Nov 22 2007, 13:53) Boot ...   Nov 22 2007, 11:01
||- - Yaumen   Цитата(defunct @ Nov 22 2007, 14:01) Вы н...   Nov 22 2007, 11:45
|- - Yaumen   Цитата(defunct @ Nov 23 2007, 13:07) В ок...   Nov 23 2007, 11:43
|- - mse   Этта...Раз у вас м128, то соберите какой-нить прос...   Nov 23 2007, 12:05
|- - defunct   Цитата(Yaumen @ Nov 23 2007, 14:43) 5. А ...   Nov 23 2007, 13:32
|- - Yaumen   Цитата(defunct @ Nov 23 2007, 15:32) Не д...   Dec 6 2007, 07:35
- - mse   А камень поменять?   Nov 22 2007, 12:51
|- - Yaumen   Цитата(mse @ Nov 22 2007, 15:51) А камень...   Nov 22 2007, 13:18
- - m16   имхо фуз М103 не сброшен   Nov 22 2007, 13:44
|- - Yaumen   Цитата(m16 @ Nov 22 2007, 16:44) имхо фуз...   Nov 22 2007, 14:17
- - Vasia Klin   Такая же ерунда была у меня. Чип прошивался, но от...   Nov 23 2007, 04:41
- - IgorKossak   JTAG connection -> Target clock frequency должн...   Nov 23 2007, 07:30
|- - Yaumen   Цитата(IgorKossak @ Nov 23 2007, 09:30) J...   Nov 23 2007, 08:04
- - kada   Может запрограммирован fuse WDTON ? При останове п...   Nov 23 2007, 08:13
|- - Yaumen   Цитата(kada @ Nov 23 2007, 10:13) Может з...   Nov 23 2007, 08:46
- - kada   Недавно я тоже мучался с отладкой Mega128 через mk...   Nov 23 2007, 09:09
|- - IgorKossak   Цитата(kada @ Nov 23 2007, 11:09) Проблем...   Nov 23 2007, 10:35
- - Vasia Klin   Уже почти год работаем с JTAG mkII. Их у нас неско...   Dec 6 2007, 08:28
|- - Yaumen   Цитата(Vasia Klin @ Dec 6 2007, 10:28) Уж...   Dec 6 2007, 09:04
|- - Busel Roman   Такая же беда встречалась. Пытался отлаживать прог...   Dec 6 2007, 09:13
|- - Yaumen   Цитата(Busel Roman @ Dec 6 2007, 11:13) Т...   Dec 6 2007, 09:24
- - Vasia Klin   А вы попробуйте поключить какой нибудь чип к вашем...   Dec 6 2007, 09:54
- - Yaumen   Цитата(Vasia Klin @ Dec 6 2007, 11:54) А ...   Dec 11 2007, 15:09


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

 


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


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