Перейти к содержанию
    

Гость impatt

Занимаюсь, находясь в Линуксе, программирование AVR-ок. Может, ARM-ы будут, не знаю.

Отлаживать что-то по JTAG-у великогиморно, ибо для отладчика (скажем, GDB) нет способа связи через JTAG с чипом.

Знаю, что существуют всякие AVR-ICE и прочие _частные_ решения. Все эти айсы содержат в себе часть отладчика, всё закрыто, не всегда стабильно, и очень специфично.

Знаю, что существует ограниченый набор микросхем известной фирмы (что-то помнится FTD*, кажется), который позволяет насколько-то прямо шевелить ножками. Но там непонятно, какие драйверы, да и потом, шевелить ножками программно драйвером, эмулируя JTAG - некошерно и небыстро.

Интересно, есть ли что-то, например, срощеный проект USB2 с opencores.org со сдвиговым регистром, для огранизации JTAG, или какой-то готовая микросхема с USB и JTAG, которая даёт возможность драйверу отправлять в него, контроллер, группы байт, который те будет сдвигать в JTAG ?

Если такая штука есть, то хорошо: на основе её можно слабать любой JTAG отладчик или ещё что угодно JTAG.

 

Так вот, есть ли такие проекты или микрухи ?

Наверное, если бы я понимал в USB и verilog, я бы сам сделал на FPGA что-нибудь подходящее из проекта с opencores.org, драйвер для линукса и либы для использования точно бы нарисовал, но вот в USB и verilog-е реально не волоку...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Занимаюсь, находясь в Линуксе, программирование AVR-ок. Может, ARM-ы будут, не знаю.

Отлаживать что-то по JTAG-у великогиморно, ибо для отладчика (скажем, GDB) нет способа связи через JTAG с чипом.

 

Вы совершенно правильно указали, что главная проблема с JTAG - закрытость и нестандартность протоколов отладки уровня приложения. Эта закрытость вызвана прежде всего желанием компаний, производящих микроконтроллеры и средства отладки, иметь деньги с инструментария. То есть просто одним сериализатором этот вопрос не решить. Для AVR не опубликованы даже отладочные регистры, поэтому особо лучше ни на что не надейтесь. Для ARM для GDB вроде бы ситуация гораздо лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для ARM для GDB вроде бы ситуация гораздо лучше.

Как я понял, с виглером как минимум проблем быть не должно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
FT2232C - там есть все для JTAGa.

Глядел. Может, конечно, плохо глядел, но мне показалось, что там закрытые драйверы и необходимость шевелить ножками, эмулируя JTAG. Верно ли я понял ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt

Занимаюсь, находясь в Линуксе, программирование AVR-ок. Может, ARM-ы будут, не знаю.

Отлаживать что-то по JTAG-у великогиморно, ибо для отладчика (скажем, GDB) нет способа связи через JTAG с чипом.

 

Вы совершенно правильно указали, что главная проблема с JTAG - закрытость и нестандартность протоколов отладки уровня приложения.

Это да, наверное, но имел в виду закрытость драйверов кокретных изделий, которые вы назвали сериализатором. Кстати, название неплохое.

Сам JTAG прост, как SPI. Всякие регистры и команды - да, кто-то их прячет. Но если надо, многие вещи можно реверс-инжинирить, как мне кажется. Было бы желание. К примеру, как уж зажопились атмэльщики, но кто-то там навыковыривал из сессии отладки команды, и они перестали быть секретом, по крайней мере, на каком-то этапе.

 

То есть просто одним сериализатором этот вопрос не решить.

Часть - решить. Когда вопрос останется только за командами и регистрами - может стать проще.

 

Для AVR не опубликованы даже отладочные регистры, поэтому особо лучше ни на что не надейтесь.

Они не опубликованы просто так, и не факт ,что не будут опубликованы по просьбе трудящихся. Там написано: для 3-d party vendors. Я, например, хочу попробовать побыть кандидатом в эти вендоры ;) К примеру, с филипсом сходный трюк прокатил на ура (не на тему JTAG).

 

Для ARM для GDB вроде бы ситуация гораздо лучше.

GDB посылает элементарные команды "держателю" среды исполнения программы. Либо через поток ввода-вывода, либо через TCP. Этот "держатель" должен как-то общаться с микроконтроллером, если речь о микроконтроллере, например. Стало быть, необходима софтина, которая слушает запросы GDB и преобразует их в элементарные действия, специфичные для конкретного микроконтроллера и отправлять их в конкретную модель сериализатора.

Так что конкретно с GDB вообще проблем нет. Сам GDB есть и это решает большую часть проблем по отладке.

И ещё: универсальный сериализатор, который может быстро и просто работать (USB2, регулируемая скорость тактирования JTAG и так далее) имеет больше шансов на интерес со стороны кого-бы то ни было, а значит, и шанс на их помощь, советы и замечания.

Лично мне неинтересно делать очередной айс, в котором будет за каким-то хреном спрятан волшебный сложный алгоритм, могущий, пока не глючит, работать с конкретным чипом в конкретных условиях. Надо простой сериализатор. Драйвер, библиотеки с высокоуровневыми функциями, и gdb-серверы (те "держатели" среды исполнения) для конкретных чипов, сделанные на тех библиотеках - вот что интересно.

И ещё: полно JTAG-оснащённых вещей, не являющихся контроллерами, например, ПЛИСы. Там айсы нафик не нужны, имхо.

По поводу FTDI или как там их. Некошерно и небыстро шевелить ногами. Например, какой-нибудь быстрый процессор на плате выгребает с быстрого АЦП данные со скоростью 10 мегабайт в секунду. Нужно отлаживать, снимать копию потока к себе на машину. Или, к примеру, надо периодически дампить с платы содержимое памяти размером 64 мегабайта. В реалтайме ногами много не нашевелишь, однако. Тем более, какой-то комрад в этом-же форуме ругается на кривизну драйверов FTDI. Так что FTDI, если исходить из того, что они не предназначены для JTAG, не есть гут.

 

ЗЫ: если бы нужный чип или схема сериализатора существовала, с нормально документированным интерфейсом на уровне USB, я бы занялся написанием драйвера и библиотеки к этому. Купил рассыпухи и всё такое (конечно, жизнь может внести коррективы в такие планы, например, лишить меня свободного времени). Или иначе: я бы затеял открытый проект, запросил бы помощи у спецов в Verilog-е, если бы уже умел написать требуемый софт для устройства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FT2232C - там есть все для JTAGa.

Глядел. Может, конечно, плохо глядел, но мне показалось, что там закрытые драйверы и необходимость шевелить ножками, эмулируя JTAG. Верно ли я понял ?

Вот только недавно закончил "учебно-боевую стрельбу" с FTDI2232 по JTAG.

FTDI дает все драйвера и описания к ним. Программируется очень легко.

Есть только вот какие ограничения - нет возможности передать данные блоком больше, чем 64-128 Кбайт. И нельзя делать сдвиг в 1 бит.

Первое - поэтому нет возможности грузить FPGA. Я пробовал пару лет назад - у меня не получилось. Я точно не знаю, но мне кажется, что при загрузке нельзя делать переходы автомата в состояние паузы, а потом снова продолжать слать данные. В документации о загрузке такой режим не предусмотрен.

Второе, если есть несколько микросхем в цепочке, то начинаются извраты, чтобы сдвигать все кривым способом.

 

Еще хочу сказать вот что. Ходил по выставке ЧипЭкспо, спрашивал, не возьмется ли кто-то производить USB2-JTAG, но чтобы было не дороже 50-70 долл. Никто пока не хочет.

А все производители, которых я спрашивал:

Аналог, Ксайлинкс, НЕК, Альтера - все закрывают доступ не только к своим регистрам, которые используются для отладки, но и к софту - к описанию драйверов.

Объясняю - человек уже купил Ваш адаптер за ххх долл, теперь он хочет проверить плату на припайку.

Отвечают - пусть за это заплатит другому изготовителю оборудования...

 

Вот такие дела...

А парни из Амонтека клянутся, что их адаптер годится ну прямо на все, но похоже его еще в руках никто не держал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt

Глядел. Может, конечно, плохо глядел, но мне показалось, что там закрытые драйверы и необходимость шевелить ножками, эмулируя JTAG. Верно ли я понял ?

Вот только недавно закончил "учебно-боевую стрельбу" с FTDI2232 по JTAG.

FTDI дает все драйвера и описания к ним. Программируется очень легко.

Вероятно, пора мне ещё раз поглядеть. Помнится мне, что они там у них только под вин, и/или только скомпилированые. Ни то ни другое не годится. Касательно линукса и закрытого драйвера: это всё равно что скушать булыжник и прислушиваться, как он гремит в желудке.

Есть только вот какие ограничения - нет возможности передать данные блоком больше, чем 64-128 Кбайт. И нельзя делать сдвиг в 1 бит.

Вопрос вовсе не в драйвере. Его написать не так уж сложно. Лишь бы была дока.

 

Аналог, Ксайлинкс, НЕК, Альтера - все закрывают доступ не только к своим регистрам, которые используются для отладки, но и к софту - к описанию драйверов.

Этого я не знал. Драйверы пусть сами юзают, их дело. А вот описание регистров....

 

Вот такие дела...

Уроды..

Ладно. Сенкс за комментарий :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уроды..

Ладно. Сенкс за комментарий :)

Если чего нового найдете - напишите.

 

Я сейчас посматриваю на платформу для JTAG-тестирования. Если где есть что-то вроде стартового набора или кто производит плату с USB2 и быстрым процессором и с памятью не меньше чем 100-200 Кбайт или с FPGA и с такой же памятью, то мне было бы интересно сделать проект JTAG-тестера, чтобы не только грузил FPGA - это святое дело, но и чтобы мог тестировать монтаж. А для этого надо вектроа либо очень быстро пересылать из хоста или формировать их в самом тестере. Идеально было бы и обрабатывать их в тестере. Тут все дело в обработке битовых строк по несколько Кбайт длиной...

Посматриваю на стартовый набор для BlacFina 537, с Ethernet. Только пока не знаю, будет ли время его поднять. Может где что есть похожее?

 

FTDI запускал под Виндой...

Всем удачи и с Новым Годом!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

чтобы не только грузил FPGA - это святое дело, но и чтобы мог тестировать монтаж. А для этого надо вектроа либо очень быстро пересылать из хоста или формировать их в самом тестере.

 

А кстати, это интересный вопрос. Насколько я понимаю, классический путь, для которого создавался JTAG - это формирование тестовых векторов в специализированном софте в виде SVF файла, который загружается в тестер на сборочной линии, и тестер уже тестирует соединения. В SVF файле все вектора уже указаны. Каким образом софт в тестере мог бы сам сам формировать вектора для тестирования соединений на плате?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вероятно, пора мне ещё раз поглядеть. Помнится мне, что они там у них только под вин, и/или только скомпилированые.

Ну так гляньте в исходники OpenOCD. А как скомпилированные - так все, не жить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
Ну так гляньте в исходники OpenOCD.

Поглядел просто на OpenOCD - хорошая штука. Сенкс за наводку. То, что надо, можно сказать, для начала.

 

А как скомпилированные - так все, не жить?

Не знаю, в вопросах жизни и не-жизни не очень понимаю.

Отличия закрытого софта от открытого, преимущества того и недостатки другого в различных ситуациях я не стану описывать, пожалуй.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
Еще хочу сказать вот что. Ходил по выставке ЧипЭкспо, спрашивал, не возьмется ли кто-то производить USB2-JTAG, но чтобы было не дороже 50-70 долл. Никто пока не хочет.

А парни из Амонтека клянутся, что их адаптер годится ну прямо на все, но похоже его еще в руках никто не держал...

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

Насчёт цены: амонтек-овый девайс стоит 139 евро. Если прикинуть цену комплектухи самодельного сериализатора: USB2-PHY (480Mbit/sec) ~$3, Xilinx Spartan-3 ~$12, флэшка и тактовый генератор для Spartan, положим, ещё $6. В сумме $21. На всякий случай умножаю ещё на 3, чтобы учесть что-то неучтёное, получается $63. Вот столько будет сделать свой сериализатор (*), причём поскоростнее, чем амонтек-овая штучка. У амонтека кишка тонка, видимо, чтобы НЕ использовать FTDI. Или там у них круговая порука, как у операторов сотовой связи и продавцов бензина ?..

 

(*) - у хорошо сделаного открытого проекта может образоваться интересное свойство: он может начать развиваться дальше силами многих участников.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поясняю: я имел в виду, что можно работать (и успешно) и на проектах с закрытыми исходниками. Коряво выразился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...