Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: базовый вопрос о JTAG
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
romez777
Приветствую.

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

Что я имею в виду: как правило, архитектуры от разных производителей не меняются (очевидно, arm7 будет такой же как у Броадкома, так и у Атмела, ибо это стандарт от ARM Ltd.) -- тогда что мешает один jtag использовать для чипов разных компаний, но одной архитектуры? Очевидно, что какие-то board specific вещи не будет поддерживаться, но как минимум отладка, запись/чтение в/из флеш обязаны, нет ?

Например, JTAG от Атмела в описании упоминает, что"any arm7/arm9 core supported ..."

PS. это мое понимание, возможно неправильное -> просьба направить к истине.
Спасибо!
Aesthete Animus
Разные реализации jtag имеют разную длину внутренних регистров и коды комманд. Стандарт на JTAG не указывает, общего способа, как прошивать/читать устройство. А вообще стоит сравнить описания jtag-а для двух процессоров того же атмела - не исключаю, что даже на этом уровне будут различия.
romez777
Приветствую,

Цитата(Aesthete Animus @ Sep 16 2008, 18:54) *
Разные реализации jtag имеют разную длину внутренних регистров и коды комманд. Стандарт на JTAG не указывает, общего способа, как прошивать/читать устройство.


Так вот в чем дело, теперь понятно почему многие JTAG-производители поддерживают только отпределенные семейства процессоров, например OMAP, Qualcomm MSM и пр.

А почему в стандарте не предусмотрели общий способ чтения/прошивания усттройств - это разве технически невозможно? Ведь вроде как интерфейсы флеш памяти также стандартизованы..
Сергей Борщ
Цитата(romez777 @ Sep 17 2008, 05:23) *
Так вот в чем дело, теперь понятно почему многие JTAG-производители поддерживают только отпределенные семейства процессоров, например OMAP, Qualcomm MSM и пр.
JTAG для ARM четко документирован и является неотъемлемой частью ядра. Поэтому отладчик, рассчитанный на работу, скажем, с ядром ARM7, теретически должен работать с любым процессором на этом ядре (отличия между разными ядрами ARM не изучал, про них не скажу). Некоторые производители кристаллов выпускают отладчики, в которые специально вшито программное ограничение на поддержку только своих кристаллов. Например, Сеггер выпускает для Атмела свой J-Link с прошивкой, позволяющей работать только с атмеловскими камнями. Атмел продает эти отладчики по демпинговой (по сравнению с неурезанной версией) цене, "подсаживая" таким образом пользователей на свою продукцию. Как правило, отладчик обладает кое-какими мозгами, поэтому в большинство отладчиков на эти мозги кроме тупой трансляции JTAG-USB возложены более сложные задачи - например виртуальные точки останова и т.п. И уже это делает отладчики несовместимыми как между собой так и между поддерживаемыми кристаллами. Отсюда такой зоопарк с отладчиками.
iosifk
Цитата(Сергей Борщ @ Sep 17 2008, 11:14) *
... И уже это делает отладчики несовместимыми как между собой так и между поддерживаемыми кристаллами. Отсюда такой зоопарк с отладчиками.

Добавлю.
На самом деле, организована банда, под названием Nexus, и именно они и хотят све дело стандартизировать. Вот только один вопрос им осталось решить - а кому это надо. Пользователю надо, а производителю - как видим не очень. Вот они и не торопятся. Правда в некоторых новых 32-х разрядных чипах уже мелькает слово Nexus. Но еще довольно редко....
А в существующих железках закрыто абсолютно все. У Аналога спрашивал о том, как делать сканирование их адаптером. Ответ был такой: "Вы нам заплптили деньги за отладку, вот и пользуйтесь. Но только с нашим оборудованием. Хотите сканировать - заплптите деньги другому - будет Вам сканирование"...
Ксайлинкс и Альтера стоят так же. Стартовый набор на Спартан есть, прошивка через JTAG есть, а вот пользоваться им как портом нельзя... Нет описания драйвера со стороны хоста...
Так что им это точно не надо...

И добавлю. Чтобы сделать инструмент-отладчик надо заплатить бабки хозяину чипа, тогда только они расскажут, что и как. Правда, если инструмент будет хороший, то его сможете продавать. Вот так рассказывал про свою историю с IT Сергей - SM...
romez777
Приветствую,

Цитата
JTAG для ARM четко документирован и является неотъемлемой частью ядра. Поэтому отладчик, рассчитанный на работу, скажем, с ядром ARM7, теретически должен работать с любым процессором на этом ядре (отличия между разными ядрами ARM не изучал, про них не скажу).

Выходит, что можно реализовать отладчик с базовым функционалом в соответствии со стандартом jtag и он _обязан_ работать на всех чипах, основанных на данном семействе ядер. Но добавляя в такие отладчики доп. функции, производители _намеренно_ делают их несовместимыми с другими. Правильно я понимаю?
Сергей Борщ
Цитата(romez777 @ Sep 17 2008, 15:48) *
Выходит, что можно реализовать отладчик с базовым функционалом в соответствии со стандартом jtag и он _обязан_ работать на всех чипах, основанных на данном семействе ядер.
Да. Посмотрите на отладчики на основе FT2232 (Amontec JTAGkey, Olimex ARM-USB-Tiny), или тот же Wiggler.
Цитата(romez777 @ Sep 17 2008, 15:48) *
Но добавляя в такие отладчики доп. функции, производители _намеренно_ делают их несовместимыми с другими.
Не совсем. Тем самым они добавляют новые возможности, улучшают функциональность (повышают скорость, например). А несовместимость - только следствие этого, но не первопричина.
rezident
JTAG это всего лишь интерфейс. При программировании внутренней Flash МК он используется в качестве транспорта данных. Чтобы программа на PC, работающая через JTAG с кристаллом, могла ее (Flash-память) запрограммировать, она должна знать: как именно программируется Flash данного конкретного кристалла? Поскольку процедуры IAP даже для одного и того же ядра у разных производителей не стандартизованы, то получается, что программа должна быть адаптирована в т.ч.именно под тот кристалл, который требуется запрограммировать.
Если то же самое на более доступных аналогиях объяснять. То программа на PC это главный менеджер основного склада. JTAG эта фура, которая обеспечивает развозку товара по малым складам. Так вот чтобы перевезти груз с основного склада на малый, главный менеджер должен знать не только адреса этих малых складов, но и внутреннее устройство всех их: где, на какой полке лежит, в каком помещении склада должен лежать товар, какой погрузчик или лифт нужно использовать для перемещения его и какой-именно грузчик внутри каждого малого склада должен перемещать доставленный груз. laughing.gif
gormih
Цитата(Aesthete Animus @ Sep 16 2008, 19:54) *
Разные реализации jtag имеют разную длину внутренних регистров и коды комманд. Стандарт на JTAG не указывает, общего способа, как прошивать/читать устройство. А вообще стоит сравнить описания jtag-а для двух процессоров того же атмела - не исключаю, что даже на этом уровне будут различия.


Стандарт JTAG = IEEE 1149.1

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.