Как стать автором
Обновить

Чип, подёргай ножкой ¯\_(ツ)_/¯

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.4K
Всего голосов 48: ↑47 и ↓1+69
Комментарии21

Комментарии 21

Хорошая статья! Помню даже лекции слушал по этой теме.

В университете или на курсах каких-то?

Сначала слушал лекцию (третий пин вроде вели). Потом несколько вебинаров, так как тема интересная. Но, к сожалению, нигде не использовал этот метод.

Рассказывать для чего сделан JTAG и не обмолвиться, как это расшифровывается.... Ну, как так? Там в самом названии уже расшифровывается (подсказка: Joint Test Action Group).

Про это много где написано. Не хотелось повторять.)

Это не повторение, это логичное введение перед статьёй про тестирование соединений между чипами. К слову, статью могут читать и те, кто этот ваш "ЖЫТАГ" в первый раз видит.

Что вас смущает, какие видите сложности?

Написали бы про протокол, (IR, DR, с примерами как на том же ARM7 память читать и проц отлаживать). Хотя бы про цепочку устройств, проталкивание битов, как в одной цепочке несколько процов существуют.

IDcode подделать невозможно? Да даже на микроконтроллере можно реализовать JTAG интерфейс, выдающий абсолютно любой ID

Если кто интересуется JTAG на низком уровне, рекомендую либу pyftdi, я с ней на неизвестном устройстве JTAG реверсил

IDcode подделать невозможно? Да даже на микроконтроллере можно реализовать JTAG интерфейс, выдающий абсолютно любой ID

Вы имеете в виду программно? Тогда, пожалуй, можно. В источнике, откуда информация, имеется в виду аппаратный интерфейс и регистр IDCode.

Опять же, если китайцы захотят склонировать чип - ответить нужным JTAG ID вот вообще не проблема. Даже не знаю, что бы подошло под утверждение "невозможно подделать". Разве что уникальные сертификаты, подписанные производителем микросхем, зашитые в каждый чип

Возникают два вопроса:
- допустим, у нас есть неизвестная плата с разъемом JTAG. Можно ли с помощью этого протокола определить, что за чипы там установлены и хотя бы примерную схему их соединения ?
- Что, если мы случайно выставим на одной ножке высокий логический уровень, а на другой - низкий, и они окажутся соединены ? Предусмотрена ли защита от КЗ ?

  1. Да, можно. В статье как раз приводится пример определения схемы соединения (большая плата со множеством микросхем, проект ftjrev и др)

    Found 3 devices with total IR length of 26

    Device 0: IDCODE 2295C093 (XC5VLX330-FFG1760)

    Device 1: IDCODE 21C2E093 (XC3S1200E-FT256)

    Device 2: IDCODE 2295C093 (XC5VLX330-FFG1760)

    ...

    Ещё можете посмотреть здесь. Человек определил распиновку jtag, по IDCode и другим вещам постепенно понял, с чем он работает (ядро ARM, Cortex-R4). Считал прошивку, попробовал пошаговое выполнение и др.

    Похожий пример с SWD. Здесь основной чип вообще под смолой.

    На плате может не быть разъёма JTAG. Могут быть просто безымянные контактные площадки. Пример работы здесь и в примере выше.

  2. Тоже интересовался таким вопросом. Пока не могу ответить однозначно.

Очень интересно: я всегда думал, что это только (в основном) для того, чтобы заливать прошивки в несколько ПЛИС, используя один разъём JTAG.
Если брать ПЛИС Altera (Intel) — там реально можно дрыгать всеми I/O ногами минуя текущую прошивку?

Если брать ПЛИС Altera (Intel) — там реально можно дрыгать всеми I/O ногами минуя текущую прошивку?

Так Альтерка к каждому чипу не просто так выдаёт BSD файлы. Лично я использую этот скан для отслеживания nCONFIG_DONE в устройстве, которое использует в паре STM32F4 и CycloneIV E.

Для ногодрыга прошивка не нужна. Это делается средствами JTAG. Есть выводы-входы, выходы или в обе стороны. Нужно смотреть bsdl файлы. Например для STM32F103C8, или для EP4CE15F23.

Запись прошивки (и другое) -- это, скорее, дополнительные возможности (application specific). В статье есть картинка про это.

Например, где-то видел, что можно посмотреть внутренние регистры со значением температуры, напряжения и др. По-моему, это было как раз на примере ПЛИС.

Ссылка не работает.

Какая из трёх? У меня все рабочие.

Вижу признак редактирования. Теперь работают все три (до этого была одна и нерабочая).

JTAG Live Studio совершенно не понравилась....при использовании очень много танцев с бубном надо совершать. Для "подёргать ножками" использую TopJTAG Probe (с лечением) тем более что подключение через дешевый J-Link прекрасно работает. Тестирование провожу с помощью JTAG ProVision. XJTAG только недавно приобрёл и не освоил пока толком. Всё перечисленное без BSDL файлов не работает.....как оказалось не на все камни можно BSDL найти.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий