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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Wiggler для GDB, Подключаем wiggler к GDB под Linux-ом
v_shamaev
сообщение Mar 19 2005, 19:24
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Переместимся сюда с сахары - тут покомфортнее, можно сосредоточится на деталях.
Касательно протокола GDB - он описан в документации по GDB, в исходниках и еще есть
статейка - ее прилагаю. Теперь относительно вигглера - из доступных, сравнительно быстро работающих реализаций - это флешер, я им пользуюсь постоянно, скорость примерно та же,
что и у CrossWorks. Его тоже прилагаю. Еще у атмела был аппликейшн на at91 - программатор флеша через JTAG, т.е. TAP автомат и протокол обмена с ICE уже реализован.
Прикрепленные файлы
Прикрепленный файл  ew_GDB_RSP.pdf ( 90.21 килобайт ) Кол-во скачиваний: 964
Прикрепленный файл  newafu_0.2.tar.gz ( 47.7 килобайт ) Кол-во скачиваний: 769
 


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
framer
сообщение Mar 20 2005, 07:16
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 23-09-04
Пользователь №: 709



Хорошая статейка на счет GDB. Выкладываю снятое снифером. Это так для общей информации. Это был сеанс работы GDB и OCDemmon с LPC2124. Подключение , загрузка, выполнение, прерывание и пошаговое выполнение. Все сходиться с тем что написано в документации. Теперь буду разбираться со стороны JTAG. Просмоторю исходники флешера - должны помочь. Еще не знаю точно как сделать но есть идея чтобы обслуживание JTAG поделить на модули. Тоесть будет реализация ТАР контролера для ядра АРМ7. Теоретически все процесоры на базе АРМ7 должны будут работать. А дальше реализация конкретного процесора (как дополнительный параметр) ето позволит например писать во флеш и отлаживать и еще получать доступ к портам. Вобщем все что можно будет сделать с процесором через JTAG.
Прикрепленные файлы
Прикрепленный файл  gdb_ocdemmon.txt ( 5.21 килобайт ) Кол-во скачиваний: 750
 
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Mar 20 2005, 09:51
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Модульность - безусловно. Если нет аллергии к плюсам, хорошо организован и документирован проект Jelie - там правда для xscale, а у него ICE по другому устроен, нет
выбора цепочки. Я его уже помещал в этой конференции, ну если интересно - могу повторить, есть вариант чуть поновее, но все изменения - добавлена поддержка еще одного контроллера JTAG через USB (базовый вариант - только ezUSB).
Кстати, как вариант - USB в некоторых отношениях предпочтительнее etherbnet-а -
скорость повыше, реализация проще и сейчас уже везде есть.


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
framer
сообщение Mar 21 2005, 15:45
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 23-09-04
Пользователь №: 709



Просмотрел исходники и вроде все есть. Ели флешер с виглером хорошо работает то значить что ТАР контроллер практически сделан. Нашел исходный проект ТАР контроллера который использован во флешере http://openwince.sourceforge.net/jtag/. В Jelie есть парсер комуникации с ГДБ - так что комлект есть. А на счет УСБ в случае Jelie (http://lapwww.epfl.ch/dev/arm/jelie/index.php кажеться это тот проект ) то помоему и так производительность не выше чем у ОСДемона, потомучто ГДБ подклучен через ТСР. В принципе узкое место это порт принтера. И если ГДБ будет непосредственно работать с JTAG по сети то мне кажеться что это будет гораздо лучшим вариантом. Можно еще один вариант просмотреть - доложить и перекомпилировать ГДБ который непосредственно будет работать с JTAG подключеным через УСБ. А может существуют еще какие нибудь возможности которых я не знаю , чтобы использовать УСБ с ГДБ.
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Mar 21 2005, 16:34
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Цитата(framer @ Mar 21 2005, 18:45)
А на счет УСБ в случае Jelie (http://lapwww.epfl.ch/dev/arm/jelie/index.php кажеться это тот проект )  то помоему и так производительность не выше чем у ОСДемона, потомучто ГДБ подклучен через ТСР.  В принципе узкое место это порт принтера. И если ГДБ будет непосредственно работать с JTAG по сети то мне кажеться что это будет гораздо лучшим вариантом.
*


В случае USB параллельный порт не используется - запускается на хосте программы, которая по TCP/IP через локалхост общается с GDB, обрабатвает его протокол и доводит до уровня TAP-автомата, а вот он уже реализуется на ezUSB или еще какой-нибудь малютке, вот с ней и происходит общение через USB.

Тот вариант, что вы предложили - примерно соответствует MPDEMON от макрегора,
у него еще, правда есть подключение через посл. и паралл. порты. На него, кстати, и прошивка имеется, нет только схем.

Через паралл. порт может еще подключатся raven - от того же макрегора, скорость
выше в 5-6 раз, чем у вигглера - за счет реализации низкоуровевых функций JTAG-а
на PLD. Когда я несколько лет назад возился с разными вариантами поддержки вигглеров/
байт-бластеров - обнаружил, что только за счет отточенного алгоритма реализации функций низкого уровня - т.е. временной диаграммы, можно довольно существенно влиять на скорость работы. Но с тех пор объемы кода существенно возросли (с гуями),
и вигглер в любом варианте не устраивает.


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
framer
сообщение Mar 21 2005, 17:06
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 23-09-04
Пользователь №: 709



Цитата(framer @ Mar 21 2005, 18:45)
А на счет УСБ в случае Jelie (http://lapwww.epfl.ch/dev/arm/jelie/index.php кажеться это тот проект )  то помоему и так производительность не выше чем у ОСДемона, потомучто ГДБ подклучен через ТСР.  В принципе узкое место это порт принтера.

Да это я точно написал не то что надо ... понедельник wink.gif. Я имел ввиду, что в случае Jelie получаеться так GDB->Jelie->USB->target а я думаю над GDB->JTAGIP->target (JTAGIP - это то устройство которое хочу сделать) а виглер мне нужен только для емуляции и отладки кода на РС. Как пойдет перенесу на JTAGIP.
Go to the top of the page
 
+Quote Post
dch
сообщение Apr 5 2005, 09:20
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Похоже падало что то, части сообщений не вижу, поэтому повторяю еще раз - помогу оттестировать любой вариант сложнее Wiglera, при условии поддержки GDB для target процессоров AT91RM9200, S3C4530 и некоторых других АРМов.
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Apr 5 2005, 09:48
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Еще один кривой демон - gdb-jtag-arm

Motivation
==========
This tool has been created as part of our diploma project:
porting linux 2.6 on the arm9tdmi based microcontroller p2001 on
the evaluation board lpec2001 (http://www.mazbr.de/frames/products.html).
This tool is based on jtag-arm9 by Simon Wood.

Собрался сразу, что подозрительно, jtag-arm связался через вигглер с процессором,
а вот gdb-jtag-arm: GDB remote server - с ним связатся gdb удалось, только когда под
отладчиком его запустил. Впрочем, больше ничего вразумительного получить не удалось,
только порт он мне залочил насмерть и все. Дальше пока не разбирался.
Прикрепленные файлы
Прикрепленный файл  gdb_jtag_arm.tar.gz ( 21.3 килобайт ) Кол-во скачиваний: 70
 


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
framer
сообщение Apr 5 2005, 18:05
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 23-09-04
Пользователь №: 709



Чем глубже копаю тем больше гимороя видать. Поискал я на гоглях как к этой теме люди подходили. Видно что с такимиже проблемами сталкиваются все кто береться за это дело. Нашел что по этоиу поводу что Torsten Mohr писал http://www.mycgiserver.com/~edgp/str ... автор рррсв. Я так понял что он доходил методом брутал форсе (если так не работает то может по другому). В исходниках вадать что сам не знал сколоко команд НОП на ядро подавать в каких ситуациях. Вот у меня и такая просьба если у кого есть информация как правильно делать останов ядра , востановление регистров, пошаговый режим итд на уровне JTAG то попрошу поделиться информацией. Копал в документации к АРМ но там кокретных примеров нет. Из исходников вытягивать нет смысла потомучто работать вроде будет а понятия почему иммено так не будет.
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Apr 6 2005, 18:36
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Не видел раньше эту ссылку - спасибо. Саму переписку - почти все читал, а вот собранного вместе - не было. А что касается использования исходников - другого пути (реального) - не видать. Просто использовать работающие, тогда может что и прояснится. А так - картина в общем очень знакомая - энтузиазм, натиск, охлаждение. Новая итерация. И так - до какого-нибудь конца. Но раз есть работающие под линуксом отладчики с вигглером - CW,
значит дело не в линуксе. Т.е. положительный результат возможен.
Для полноты - со стороны вигглера на PC - я бы порекомендовал еще посмотреть на макрегоре есть ссылка (где-то в FAQ-е) на их древний патч для Linux-GDB, что позволя по их словам использовать вигглер под линуксовым GDB - проверить не удалось, т.к. это чудо
не желало собиратся. Я так подозреваю, примерно на том месте они его и бросили. А в варианте оьдельного девайса - эмулятора JTAG - атмеловский аппликейшн. Тот просто должен работать, пробовать его я не пробовал, но на исходники смотрел - внушаеть.

Если чего-то из перечисленного не удастся быстро найти - так я в своих архивах пороюсь,
должно быть.


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
framer
сообщение Apr 10 2005, 07:22
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 23-09-04
Пользователь №: 709



Появилась у меня еще одна идея. Определить алгоритмы работы с ядром АРМ через JTAG. Просто я хочу точно разобраться как это работает. Идея была такая чтобы сначало сделать WIGGLER под GDB (это версия 1) а потом если будет работать перенести на встроенную платформу (это версия 2). Но как 1 так и 2 версия это готовая реализация которая скрывает внутри всю функциональность поэтому захотелось мне иметь доступ к низкоуровневым функциям JTAG (пусть это будет версия 0.5) для прокручивания алгоритмов. Вообщем если кому интересно то http://www.mycgiserver.com/~edgp/jarm/. Дошел до считывания регистров и тут оказалось, что не очень удобно вписывать вручную. Поэтому следующим этапом будет реализация програмы которая позволит на ходу исполнять и тестировать алгоритмы (это будет похоже на исполнение скриптов). Как будут готовы и оттестированы алгоритмы будет следующий этап. Прошу ногами не пинать (на линух я пока что перехожу). Хотелось бы узнать как компилируеться проект и если у кого нибудь есть WIGGLER и возможность подключения к какому нибудь процессору (имеется ввиду ARM7) то работает то что пока описано или нет? Вобщем за каждую информацию буду признателен.
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Apr 11 2005, 19:46
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Это уже что-то.
Замечания - при попытке собрать утилиту - вот что происходит:
[vs@vs Release]$ make
make: stat:/root/workspace/jarm/include/testarm7tdmi.hpp: Permission denied
make: *** Нет правила для сборки цели `/root/workspace/jarm/include/testarm7tdmi.hpp', требуемой для `src/testarm7tdmi.d'. Останов.

1. root - это администратор, для работы лучше сделать другого юзера, ну я на одном из рабочих столов держу открытую консоль roota - если что срочно надо от его имени запустить, можно и по другому - sudo.
make clean тоже не работает.

А это я запустил готовый jarm, попытался с ним из GDB связатся.
GDB не вяжется, впрочем и не должен.

[vs@vs Release]$ << Start JArm - JTAG debugger driver>>
-------parameters sumary---------
port: 8888
lptname: /dev/parport0
lptdrv: ppdev
---------------------------------
serversocket TEST start ... listen port 8889
Initializing Macraigor Wiggler JTAG Cable on ppdev port /dev/parport0
serversocket GDB start ... listen port 8888
Server: connect from host 127.0.0.1, port 33075.

Все остальное - работает, как описано:

Connected to elfa.ru (127.0.0.1).
Escape character is '^]'.
<<<<< Jarm test server connect >>>>>
jtag_reset
OK
tap_reset
OK
tap_state
tap_state=8:Run_Test_Idle.
tap_instr IDCODE
OK
shove_data 32
output[0]=1F0F0F0F:output[1]=0

ice_write_reg 0 7
OK
^[[A
ice_write_reg 8 0
OK
ice_write_reg 9 0xffffffff
OK
ice_write_reg 10 0
OK
ice_write_reg 11 0xffffffff
OK
ice_write_reg 12 0x100
OK
ice_write_reg 13 0xf7
OK
ice_read_reg 1
ice_reg(1)=9

------ Тут я перезапустил контроллер ----
jtag_reset
OK
tap_reset
OK
ice_read_reg 1
ice_reg(1)=4


Контроллер - от Atmel


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
framer
сообщение Apr 12 2005, 17:42
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 23-09-04
Пользователь №: 709



Сделал поправку для утилиты (вроде должно собираться) и добавил програмку для прокрутки скриптов (executor). Приготовил пару скриптов для считывания-записи регистров. Алгоритм считывания-записи регистров взял из флешера (newafu-0.2). Пока делал скрипты то оказываеться что возможностей executor не хватает. Буду думать чтобы тут еще сделать. Появлаються интересные моменты. При считывании регистров программный счетчик идет вперед. Я уже гдето это видел. Надо будет подумать как востанавливать программный счетчик и регистр CPSR. И помоему будет проблема с THUMB (при останове и выполнении команд ядра надо будет переводить в режим АРМ а потом назад в THUMB). Вообщем надо будет повозиться. Посмотрю на рррсв может оттуда удасться что нибудь полезное вытащить.
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Apr 13 2005, 08:09
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Теперь собирается. И работает.
Думаю, было бы неплохо освобождать порт при выходе - а то при перезапуске
сразу же ругается, что порт уже используется. Приходится подождать, пока сам освободится.

И еще - если в питоновском скрипте первой строкой сделать #!/usr/bin/python,
то он может запускатся сам - ./jarmexecuter.py readreg.js
Скрипты тоже работают, но у меня idcode выдается только при останове процессора.


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
Andrey_Sudnov
сообщение Apr 13 2005, 10:27
Сообщение #15


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

Группа: Свой
Сообщений: 82
Регистрация: 15-03-05
Пользователь №: 3 361



Привет!
Не знаю, может вы видели уже, но по моему здесь подробно все расписано:
http://www.atmel.com/dyn/resources/prod_do...nts/doc2668.pdf -
Using an AT91EB40A Evaluation Board to Control an AT91 ARM7TDMI® Processor Via the JTAG-ICE Interf (22 pages, updated 01/03)
This application note describes how to use an AT91EB40A Evaluation Board based on the AT91R40008 microcontroller to control an AT91 ARM7TDMI processor via the standard ARM JTAG-ICE Interface.

http://www.arm.com/pdfs/DAI0031C_using_eice.pdf
http://www.arm.com/pdfs/DAI0028A_arm7tdmi_debug.pdf
Go to the top of the page
 
+Quote Post

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

 


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


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