Рубрика «jtag» - 2

Исследователи Positive Technologies активировали аппаратную отладку (JTAG) для Intel Management Engine, которая позволяет получить полный доступ ко всем устройствам PCH (Platform Controller Hub), используя технологию Intel DCI (через интерфейс USB). Мы планируем поделиться подробностями на одной из ближайших конференций. А о том, как активировать этот интерфейс, но для основного процессора, расскажем ниже.

JTAG в каждый дом: полный доступ через USB - 1Читать полностью »

Prev

В этой статье расскажем, как научиться отлаживать и полюбить маленькую черную плату Black Magic Probe V2.1. Но для начала немного о том, что это такое и зачем она нужна.

Плата Black Magic Probe Mini V2.1 (BMPM2) разработана 1BitSquared в сотрудничестве с Black Sphere Technologies, является адаптером JTAG и SWD, предназначена для программирования и отладки микроконтроллеров ARM Cortex-M и ARM Cortex-A. Можно добавить поддержку других процессоров. Описание процесса добавления можно найти по ссылке. Стоит также отметить, что любой процессор с поддержкой ADIv5 (ARM Debug Interface v5) будет определяться платой.

Читать полностью »

Зачем?

В эпоху Arduino UNO и Atmega328 я вполне обходился без программатора, прошивая микроконтроллер сначала загрузчиком Arduino через другую Arduino (Arduino as ISP), а потом через обычный последовательный порт, и лишь после появления поддержки Arduino для модулей на основе Nordic Semiconductor nrf51822 и nrf52832 для меня впервые стало актуальным наличие swd-программатора, ибо никаким другим способом прошивку в голый китайский модуль не зальешь.

Стандартом де-факто в данной области являются программаторы Jlink немецкой компании Segger Microcontroller System, известные не только своими прекрасными ТТХ, но и заоблачной ценой (около $500-600). Надо отдать должное компании Segger, для некоммерческого использования выпускается EDU версия, полностью идентичная Jlink Base, но даже она стоит в России в районе 3000 руб. Любимый Aliexpress полон китайских клонов, однако и они относительно недешевы, не говоря уж о прочем.

Есть еще ST-LINK/V2 от ST Microelectronics, правда, под вопросом их совместимость с микроконтроллерами производства не самой STMicro.

В итоге, мой взгляд неминуемо пал на JTAG/SWD программатор Black Magic Probe (BMP), собравший на Kickstarter более $47,000 при заявленной цели в $10,000.
Читать полностью »

image

В конце декабря 2016 года мы опубликовали на Хабре материал по выступлению экспертов Positive Technologies на Chaos Communication Congress (33C3) в Гамбурге. Максим Горячий и Марк Ермолов рассказали о том, что современные процессоры Intel позволяют использовать отладочный интерфейс JTAG через доступный на многих платформах порт USB 3.0 для получения полного контроля над системой.

Начиная с процессоров семейства Skylake, запущенных в производство в 2015 году, компания Intel внедрила технологию Direct Connect Interface (DCI), которая предоставляет доступ к JTAG через популярный порт USB 3.0. При этом на целевом компьютере не требуется каких-либо программных или аппаратных агентов − необходимо лишь, чтобы интерфейс DCI был активирован. Таким образом возможность использовать возможности JTAG на оборудовании, доступном в широкой продаже, появилась у рядовых разработчиковЧитать полностью »

Довольно часто разработчики ядер под Android устройства сталкиваются с тем, что собранное из исходников ядро просто напросто не работает. И при этом часто разработчик, собравший ядро, не имеет никаких специальных средств для отладки. В данной ситуации без kmsg логов довольно трудно что либо сделать. Конечно же в Linux ядре уже имеется несколько способов копирования содержимого kmsg буфера в специальную область памяти, но если вам интересно узнать ещё об одном способе, то прошу под кат.
Читать полностью »

Дано: есть устройство, с ARM926E-JS (Cypress FX3) на борту. Устройство находится на другом континенте. Устройство подключено (JTAG+USB+COM) к Linux компу. На комп есть SSH доступ (и больше ничего, только SSH порт).

Проблема: Устройство нужно отлаживать и писать под него код. И делать это, желательно, удобно.

Решение с использованием OpenOCD, GDB и Qt Creator, а так же описание пути к нему, под катом.
Читать полностью »

Bus Blaster — универсальный скоростной bit-bang интерфейс для терпеливых энтузиастов - 1
Мне давно хотелось иметь какой-нибудь простой и универсальный аппаратный интерфейс с несколькими входными и выходными сигналами, функциональность которого определяется исключительно софтом, вроде достопамятного программатора PonyProg. И чтобы его можно было использовать не только как чтения/записи прошивок, но и для отладки программ через JTAG. При этом покупать что-либо промышленное, при моем нерегулярном баловстве с электроникой, избыточно и нерентабельно — требовалось что-то из серии «полуфабрикатов», на основе bit-bang.

Что такое bit bang и зачем он нужен

Кое-кто еще помнит, что в счастливые времена Windows 9x каждая системная плата и каждый ноутбук в обязательном порядке имели последовательный (COM) и параллельный (LPT) порты. В ту пору для организации интерфейса с микросхемой ППЗУ, служебными контактами мобильника или передней панели магнитолы достаточно было припаять к разъему порта несколько резисторов, диодов и транзисторов. Все остальное делали обычные пользовательские приложения, самостоятельно формировавшие сигналы нужного протокола путем выставления нулей или единиц на нужных выводах, и считывания сигналов на входах. У клятых буржуев это называлось bit-bang, а у нас — «дрыгоножество», «ногомашество» и т.п.

С переходом на 2k/XP возникли сложности с прямым доступом к портам ввода/вывода, но они успешно решались костылями вроде giveio. Гораздо сильнее портила жизнь более высокая фоновая активность в NT, из-за которой сложнее было выдержать стабильность передачи и приема.

Как известно, на современных компьютерах, тем более — ноутбуках, с аппаратными портами не густо, ибо большинству пользователей они не нужны. USB-адаптеры для подключения устройств с интерфейсами RS232 и Centronics (в просторечии — COM/LPT) хорошо работают лишь в рамках основного назначения, а делать на них «дрыгоножество» проблематично по целому ряду причин. Во-первых, большинство этих адаптеров умеет обрабатывать с хорошей скоростью только сигналы данных (те же Tx/Rx), а управляющие сигналы обрабатывает с большими задержками. Во-вторых, адаптеры различных производителей аппаратно несовместимы, а возможности нестандартного управления через драйвер производителя сильно ограничены. В-третьих, для передачи команд адаптеру почти все драйверы используют отдельные USB-пакеты, что ограничивает частоту смены состояний всего тысячей раз в секунду, чего для многих применений катастрофически мало.

К счастью, компания FTDI уже давно предлагает ряд решений для USB, ориентированных именно на скоростной обмен произвольными сигналами. Беглое изучение вопроса показало, что наиболее популярны в этом плане интерфейсы на микросхемах FT232H/FT2232H.
Читать полностью »

Данная заметка может оказаться полезной для людей, который пишут bare-metal код и используют ThreadX в своих задачах (по собственному выбору или по навязыванию SDK). Проблема в том, что что бы эффективно отлаживать код под ThreadX или другую многопоточную операционную систему нужно иметь возможность видеть эти самые потоки, иметь возможность посмотреть стек-трейс, состояние регистров для каждого потока.

OpenOCD (Open On Chip Debugger) заявляет поддержку ThreadX, но не сильно явно оговаривает её широту. А штатно, на момент написания статьи, в версии 0.8.0, это всего два ядра: Cortex M3 и Cortex R4. Мне же, волею судеб, пришлось работать с чипом Cypress FX3 который построен на базе ядра ARM926E-JS.

Под катом рассмотрим что нужно сделать, что бы добавить поддержку вашей версии ThreadX для вашего CPU. Акцент делается на ARM, но, чисто теоретически, вполне может подойти и для других процессоров. Кроме того, рассматривается случай, когда доступа к исходникам ThreadX нет и не предвидится.
Читать полностью »

Разбираем протокол 2 wire JTAG

2-wire JTAG (он же двухпроводной JTAG, он же CompactJTAG, он же cJTAG) – это новомодный интерфейс, являющийся частью стандарта IEEE 1149.7-2009. Он обеспечивает ту же и даже большую функциональность, что и обычный JTAG (IEEE 1149.1), но использует всего два сигнала вместо четырех.

К сожалению, ни в русскоязычном, ни в англоязычном сегментах Интернета нет никакой информации об этом стандарте, кроме нескольких статей, написанных маркетологами. Тем не менее некоторое время назад мне по долгу службы пришлось с этим стандартом разобраться, и теперь у вас есть уникальный шанс ознакомится с результатами моих изысканий.
Читать полностью »

Разработка и отладка UEFI драйверов на Intel Galileo, часть 2: готовим плацдарм
Здравствуйте, уважаемыее.
Опрос в первой части показал, что тема разработки UEFI-драйверов достаточно интересна сообществу, поэтому я приступаю к написанию дальнейших частей этого цикла. В этой речь пойдет о подготовке платы Intel Galileo к работе, необходимом и желательном железе и ПО, сборке и установке BSP. В результате получится недорогая аппаратная платформа, пригодная для аппаратной отладки UEFI-драйверов и доступная любому энтузиасту.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js