|
Wiggler для GDB, Подключаем wiggler к GDB под Linux-ом |
|
|
|
Mar 19 2005, 19:24
|

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

|
Переместимся сюда с сахары - тут покомфортнее, можно сосредоточится на деталях. Касательно протокола GDB - он описан в документации по GDB, в исходниках и еще есть статейка - ее прилагаю. Теперь относительно вигглера - из доступных, сравнительно быстро работающих реализаций - это флешер, я им пользуюсь постоянно, скорость примерно та же, что и у CrossWorks. Его тоже прилагаю. Еще у атмела был аппликейшн на at91 - программатор флеша через JTAG, т.е. TAP автомат и протокол обмена с ICE уже реализован.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Mar 20 2005, 07:16
|
Участник

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

|
Хорошая статейка на счет GDB. Выкладываю снятое снифером. Это так для общей информации. Это был сеанс работы GDB и OCDemmon с LPC2124. Подключение , загрузка, выполнение, прерывание и пошаговое выполнение. Все сходиться с тем что написано в документации. Теперь буду разбираться со стороны JTAG. Просмоторю исходники флешера - должны помочь. Еще не знаю точно как сделать но есть идея чтобы обслуживание JTAG поделить на модули. Тоесть будет реализация ТАР контролера для ядра АРМ7. Теоретически все процесоры на базе АРМ7 должны будут работать. А дальше реализация конкретного процесора (как дополнительный параметр) ето позволит например писать во флеш и отлаживать и еще получать доступ к портам. Вобщем все что можно будет сделать с процесором через JTAG.
|
|
|
|
|
Mar 21 2005, 15:45
|
Участник

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

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

Местный
  
Группа: Свой
Сообщений: 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. Когда я несколько лет назад возился с разными вариантами поддержки вигглеров/ байт-бластеров - обнаружил, что только за счет отточенного алгоритма реализации функций низкого уровня - т.е. временной диаграммы, можно довольно существенно влиять на скорость работы. Но с тех пор объемы кода существенно возросли (с гуями), и вигглер в любом варианте не устраивает.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Mar 21 2005, 17:06
|
Участник

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

|
Цитата(framer @ Mar 21 2005, 18:45) А на счет УСБ в случае Jelie (http://lapwww.epfl.ch/dev/arm/jelie/index.php кажеться это тот проект ) то помоему и так производительность не выше чем у ОСДемона, потомучто ГДБ подклучен через ТСР. В принципе узкое место это порт принтера. Да это я точно написал не то что надо ... понедельник  . Я имел ввиду, что в случае Jelie получаеться так GDB->Jelie->USB->target а я думаю над GDB->JTAGIP->target (JTAGIP - это то устройство которое хочу сделать) а виглер мне нужен только для емуляции и отладки кода на РС. Как пойдет перенесу на JTAGIP.
|
|
|
|
|
Apr 5 2005, 09:48
|

Местный
  
Группа: Свой
Сообщений: 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 удалось, только когда под отладчиком его запустил. Впрочем, больше ничего вразумительного получить не удалось, только порт он мне залочил насмерть и все. Дальше пока не разбирался.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
Apr 5 2005, 18:05
|
Участник

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

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

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

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

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

|
Появилась у меня еще одна идея. Определить алгоритмы работы с ядром АРМ через JTAG. Просто я хочу точно разобраться как это работает. Идея была такая чтобы сначало сделать WIGGLER под GDB (это версия 1) а потом если будет работать перенести на встроенную платформу (это версия 2). Но как 1 так и 2 версия это готовая реализация которая скрывает внутри всю функциональность поэтому захотелось мне иметь доступ к низкоуровневым функциям JTAG (пусть это будет версия 0.5) для прокручивания алгоритмов. Вообщем если кому интересно то http://www.mycgiserver.com/~edgp/jarm/. Дошел до считывания регистров и тут оказалось, что не очень удобно вписывать вручную. Поэтому следующим этапом будет реализация програмы которая позволит на ходу исполнять и тестировать алгоритмы (это будет похоже на исполнение скриптов). Как будут готовы и оттестированы алгоритмы будет следующий этап. Прошу ногами не пинать (на линух я пока что перехожу). Хотелось бы узнать как компилируеться проект и если у кого нибудь есть WIGGLER и возможность подключения к какому нибудь процессору (имеется ввиду ARM7) то работает то что пока описано или нет? Вобщем за каждую информацию буду признателен.
|
|
|
|
|
Apr 12 2005, 17:42
|
Участник

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

|
Сделал поправку для утилиты (вроде должно собираться) и добавил програмку для прокрутки скриптов (executor). Приготовил пару скриптов для считывания-записи регистров. Алгоритм считывания-записи регистров взял из флешера (newafu-0.2). Пока делал скрипты то оказываеться что возможностей executor не хватает. Буду думать чтобы тут еще сделать. Появлаються интересные моменты. При считывании регистров программный счетчик идет вперед. Я уже гдето это видел. Надо будет подумать как востанавливать программный счетчик и регистр CPSR. И помоему будет проблема с THUMB (при останове и выполнении команд ядра надо будет переводить в режим АРМ а потом назад в THUMB). Вообщем надо будет повозиться. Посмотрю на рррсв может оттуда удасться что нибудь полезное вытащить.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|