|
Отладка устройств на МК без JTAG, Как это делать правильно? |
|
|
|
Jul 1 2006, 21:44
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 1-10-05
Пользователь №: 9 136

|
Как "правильно" отлаживать устройства не имеющие JTAG? Может Atmel и считает что в 2k байтной программе нечего отлаживать, но для меня это далеко не так.
Специфика устройства с которым я работаю в данный момент такова что там есть с десяток параметров точное значение которых расчетами(и моделированием) подобрать очень сложно (для меня во всяком случае).
Возникла идея встроить в программу нечто вроде отладчика который будет способен выполнять очень просты действия получать от ПК новые значения параметра и заносить его в SRAM. Камень tiny26 , есть три свободных пина(ISP по совместительству). Но возникли сомнения в плане того хватит ли МК на это производительности ведь придется поддерживать какой никакой простой но программный протокол обмена с ПК. Оценить даже приблизительно эти издержки я не могу, ибо опыта нет.
Прокоментируйте пожалуйста эти мысли вслух, что вы думаете об этом? Если идея с отладчиком здравая то наверное есть где-то примеры реализации подобных задач?
Сообщение отредактировал shevek - Jul 1 2006, 21:45
--------------------
Мы не просто идем в будущее, мы его атакуем.
|
|
|
|
|
Jul 1 2006, 22:13
|
Местный
  
Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332

|
Цитата(shevek @ Jul 2 2006, 01:44)  Как "правильно" отлаживать устройства не имеющие JTAG? Может Atmel и считает что в 2k байтной программе нечего отлаживать, но для меня это далеко не так. Мне нравится отладка через UART и ПК - об этом методе я прочитал там: [banned]/z4.htm - очень удобно ИМХО.
|
|
|
|
|
Jul 1 2006, 22:16
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 1-10-05
Пользователь №: 9 136

|
Вот что нашел сам , разибраюсь пока
avr.nikolaew.org/debug.htm
--------------------
Мы не просто идем в будущее, мы его атакуем.
|
|
|
|
|
Jul 2 2006, 10:08
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 1-10-05
Пользователь №: 9 136

|
bodja74
Именно нечто подобное я и хочу реализовать. По ссылке приведенной выше есть пример подобного отладочного модуля для МК, но к сожалению автор забыл(или не захотел) указать ссылку на программу для ПК управляющую всем этим делом(через простой переходник с COM).
Может есть где примеры превращения COM в SPI?
--------------------
Мы не просто идем в будущее, мы его атакуем.
|
|
|
|
|
Jul 2 2006, 10:41
|

Частый гость
 
Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29

|
Цитата(shevek @ Jul 2 2006, 13:08)  По ссылке приведенной выше есть пример подобного отладочного модуля для МК, но к сожалению автор забыл(или не захотел) указать ссылку на программу для ПК управляющую всем этим делом Оба отладочных обмена (попроще и покруче) реализованы в программе программатора (ну и сказал :-) ) uniprof
|
|
|
|
|
Jul 2 2006, 10:52
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 1-10-05
Пользователь №: 9 136

|
nml
Спасибо.
--------------------
Мы не просто идем в будущее, мы его атакуем.
|
|
|
|
|
Jul 2 2006, 11:13
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(shevek @ Jul 2 2006, 13:08)  bodja74
Именно нечто подобное я и хочу реализовать. По ссылке приведенной выше есть пример подобного отладочного модуля для МК, но к сожалению автор забыл(или не захотел) указать ссылку на программу для ПК управляющую всем этим делом(через простой переходник с COM).
Может есть где примеры превращения COM в SPI? У меня есть исходники совсем простого примера эмуляции COM в SPI на VB6. Если устраивает,оставляйте адресс ,вышлю.
|
|
|
|
|
Jul 2 2006, 11:15
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225

|
есть ещё два способа которые сам пользую: а)макетка с мегой16 на которой отлавливаю баги в коде для мелких камней с помощью житага б)пользую Algorithm Builder . к коду добавляется 130байт программы обмена и отладка через один назначенный пин проца
|
|
|
|
|
Jul 2 2006, 11:21
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 1-10-05
Пользователь №: 9 136

|
bodja74
Да, пожалуйста. VB незнаю но думаю осилю спортировать это в С или Pascal. shevek at netman.ru
--------------------
Мы не просто идем в будущее, мы его атакуем.
|
|
|
|
|
Jul 2 2006, 12:06
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(shevek @ Jul 2 2006, 14:21)  bodja74
Да, пожалуйста. VB незнаю но думаю осилю спортировать это в С или Pascal. shevek at netman.ru Исходник использует контролл MSCOMM32.OCX ,насколько я в курсе Борландовские среды их не переваривают,если хотите портировать на Си,ставте С++ из комплекта VisualStudio от MicroSoft. Ладно пошел отправлять.
|
|
|
|
|
Jul 2 2006, 12:41
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 1-10-05
Пользователь №: 9 136

|
bodja74 Получил спасибо. Разберусь.
--------------------
Мы не просто идем в будущее, мы его атакуем.
|
|
|
|
|
Jul 3 2006, 07:30
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(shevek @ Jul 2 2006, 00:44)  Как "правильно" отлаживать устройства не имеющие JTAG? Может Atmel и считает что в 2k байтной программе нечего отлаживать, но для меня это далеко не так. Использую IDE и ее отладочный интерфейс по SPI или СОМ ( SPI может быть программным ) с tinyboot.com ( раздел Firmware )
|
|
|
|
|
Jul 3 2006, 08:37
|
Участник

Группа: Новичок
Сообщений: 18
Регистрация: 22-06-06
Пользователь №: 18 277

|
Интересная штучка. Можете выложить что-то сделаное на ней ?
|
|
|
|
|
Jul 3 2006, 09:49
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Abatt @ Jul 3 2006, 11:37)  Интересная штучка. Можете выложить что-то сделаное на ней ? Если реплика к IDE c tinyboot.com, то использовал ее для работы с PDP11 часть документации перевел. P.S. Что поконкретнее интересует?
|
|
|
|
|
Jan 30 2007, 19:14
|
Группа: Новичок
Сообщений: 1
Регистрация: 24-10-06
Пользователь №: 21 625

|
Ребята, а не проще сделать программу под mega процессор, отладить ее, а потом ее видоизменить под tiny?
|
|
|
|
|
Jan 30 2007, 22:09
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(InvisibleMan @ Jan 30 2007, 19:14)  Ребята, а не проще сделать программу под mega процессор, отладить ее, а потом ее видоизменить под tiny? В этом трудоемком деле есть одна особенность - чаще всего бывает, что проект, одинаково работающий в mega128 и tiny15 не нуждается в отладке в принципе.
|
|
|
|
|
Jan 30 2007, 22:33
|
Частый гость
 
Группа: Новичок
Сообщений: 79
Регистрация: 1-11-06
Пользователь №: 21 868

|
Цитата(Dopler @ Jan 30 2007, 21:09)  В этом трудоемком деле есть одна особенность - чаще всего бывает, что проект, одинаково работающий в mega128 и tiny15 не нуждается в отладке в принципе. Хорошо сказано! Отлаживал как-то я проект на меге 128 (ну была она в руках на плате). А работать должен был на меге 8. Компилю под мегу128, заливаю - работает. Компилю под м8, компилится без ошибок. Отдаю, заливают - не работает! Закончилось тем что купил мегу8 в дипе и распаял на макетке. Тогда токо понял в чем прикол. Кто нибудь знает что будет если неправильно написать имя вектора в объявлении SIGNAL(SIG_чегонибудь) (это WinAVR)? А ничего! Молча собирается, но вектор не вписывается, а обработчик остается в воздухе. Вектор заглушен weak символом и никто не жалуется... Ну а у меги 128 два усарта и вектора ессно зовутся по другому - там в имени есть 0 и 1... А для отладки иногда хватает половинки уарта программного - только передатчик. Он реально проще приемника, можно без таймера на одних тактовых задержках сделать, и скорость задрать под мегабит для меньшего влияния на программу. Хорошо подходит для реал-тайм анализа процессов в программе. Но автору топика это вроде не подойдет - ему наоборот приемник сделать надо... Это уже правда на чем-то одно- или двухпроводном программном надо ваять. Как вариант переходника COM-SPI подойдет... та же самая тиня, может t26, а может и t13 с программным уартом с одной стороны и SPI либо своим протоколом с другой.
Сообщение отредактировал boez - Jan 30 2007, 22:43
|
|
|
|
|
Jan 30 2007, 22:52
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(boez @ Jan 30 2007, 22:33)  .... Кто нибудь знает что будет если неправильно написать имя вектора в объявлении SIGNAL(SIG_чегонибудь) (это WinAVR)? А ничего! Молча собирается, но вектор не вписывается, а обработчик остается в воздухе. ...... Может у вас старый WinAVR, или GCC запускается с ключиком -w. demo.c #include <avr/io.h> #include <avr/interrupt.h> SIGNAL(SIG_XXX) { } .... $ make avr-gcc -Wall -Os -mmcu=atmega128 -Wundef -gdwarf-2 -g3 -c -o demo.o demo.c demo.c:4: warning: 'SIG_XXX' appears to be a misspelled signal handler Анатолий.
|
|
|
|
|
Jan 31 2007, 01:20
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 29-01-07
Пользователь №: 24 831

|
1. Городить целый программный УАРТ на мизерном камне - для некоторых приложений может не хватить. Поэтому лучше не искать встроеную периферию а использовать 2 ноги (1 только на крайний случай) - по одной данные, по другой часы (одна из ног может быть внешним прерыванием, чтобы дергать извне). Потом, УАРТ - это ограничение скорости отладки. как хорошо програмный SPI - шифт, дернул ногой, шифт дернул ногой. 2. Снаружи стоит уже взрослый процессор, который данные полученные от 2-х ног загоняет через уарт не торопять, разумеется организуя буффер внутри.
монитор то получится - зо-ло-той!(с)
|
|
|
|
|
Jan 31 2007, 01:44
|

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

|
Цитата(boez @ Jan 30 2007, 21:33)  Отлаживал как-то я проект на меге 128 (ну была она в руках на плате). А работать должен был на меге 8. Компилю под мегу128, заливаю - работает. Компилю под м8, компилится без ошибок. Отдаю, заливают - не работает! Закончилось тем что купил мегу8 в дипе и распаял на макетке. Тогда токо понял в чем прикол. Кто нибудь знает что будет если неправильно написать имя вектора в объявлении SIGNAL(SIG_чегонибудь) (это WinAVR)? А ничего! Молча собирается, но вектор не вписывается, а обработчик остается в воздухе. Вектор заглушен weak символом и никто не жалуется... Ну а у меги 128 два усарта и вектора ессно зовутся по другому - там в имени есть 0 и 1... Надо это учитывать сразу. Я обработчики прерываний описываю примерно так: Код #if defined(_AVR_IOM8_H_) // mega8 SIGNAL (SIG_OUTPUT_COMPARE2) #elif defined(_AVR_IOM88_H_)||defined(_AVR_IOM48_H_)||defined(_AVR_IOM168_H_) // mega48/88/168 SIGNAL (SIG_OUTPUT_COMPARE2A) #elif <другие МК>.... .... #else NOT SUPPORTED PROCESSOR! #endif { ... код обработчика } тобиш если сборка будет идти под процессор который у меня не учитывается, чтобы программа - не компилировалась. И тогда придется залезть в даташит, посмотреть какой вектор и добавить соответвующий #elif.. Обработчиков то в программе не так уж и много..
|
|
|
|
|
Jan 31 2007, 22:59
|
Группа: Новичок
Сообщений: 4
Регистрация: 31-01-07
Пользователь №: 24 916

|
Пользуем RS232 и вывод в терминал.
|
|
|
|
|
Feb 1 2007, 16:32
|

Участник

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204

|
Цитата(SasaVitebsk @ Jan 31 2007, 01:48)  Именно для этих целей иногда использую клавиатуру+LCD с i2c. Проект я выкладывал в библиотеки. Кстати, пользуясь случаем - выражаю огромный  . Оч полезная и удобная штука, повторил ее (слегка подкрутив, не без этого  ) - не нарадуюсь.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|