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

Можно ли одним JTAG отлаживать МК и ПЛИС?

теоретически, нужно переводить устройство в режим BYPASS, для этого нужно знать/задавать длину регистра инструкций у "другого" устройства (ее можно и измерить, но это не важно)

ПЛИСовые софты умеют это делать, по-крайней мере умели. а вот с процессорными у меня не получилось.

 

OpenOCD вполне умеет. Кроме того с его помощью получается вполне успешно прошивать конфигурационный SPI-flash 25-й серии (W25Q32 и т.п.) на Spartan-3E/Spartan-6/Virtex-6 с помощью того же JTAG-адаптера.

 

Да-да, я тоже открыл Universal Scan, из вашей темы, спасибо iosifk. Сегодня, кстати, файл bsdl для STM32 своего скачал. Пригодится.

 

У Universal Scan проблемы с поддержкой сторонних JTAG-адаптеров и с работой под 64-разрядными версиями Windows (подглючивает).

Вот бы найти ему достойную замену, умеющую грузить BSDL и работать с периферийным сканированием в "ручном" режиме. Мечты.

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


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

Без больших заморочек при таком подключении TAP'ов получится работать только с одним из устройств в .. м-м-м, назовем это сессией работы с чипом. При этом для того, чтобы ST-Link позволял Vivado общаться с Artix'ом, нужно будет еще приспособить XVC (упоминался в треде maks'ом). Т.е., например, запустили Vivado'вский программер, залили прошивку в FPGA, закрыли программер (ну, или как-то по-другому отпустили кабель). Потом запустили STM'вский IDE, и дальше уже в нем работаем с ST-Link. Такой сценарий будет работать.

 

А вот если нужно одновременно и с FPGA работать, и с STM32 - без спец. софта не обойтись. Например, рулить процессором и одновременно ловить что-нибудь ChipScope'ом просто так не выйдет.

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


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

У Universal Scan проблемы с поддержкой сторонних JTAG-адаптеров и с работой под 64-разрядными версиями Windows (подглючивает).

Вот бы найти ему достойную замену, умеющую грузить BSDL и работать с периферийным сканированием в "ручном" режиме. Мечты.

Ну какие же мечты? Я на своем сайте выкладывал такие исходники. Правда там только для LPT-адаптера... Для FT2232 я тоже делал, но сейчас уже наверное и не найду...

 

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


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

Ну какие же мечты? Я на своем сайте выкладывал такие исходники. Правда там только для LPT-адаптера... Для FT2232 я тоже делал, но сейчас уже наверное и не найду...

 

Под отдельную плату написать программу для периферийного сканирования можно, но во-первых неудобно, во-вторых оправдано по времени только для серийного тестирования. А если говорить про исследование прототипов/наладку опытных образцов/обучение, то нужно что-то с интуитивно-понятным интерфейсом, а-ля Universal Scan. В идеале, поддерживающее возможность автоматизации тестирования с помощью SVF или сценариев на каком-либо встроенном языке. Как это, например, грамотно сделано в OpenOCD, в котором живет микро-интерпретатор TCL (Jim TCL).

 

Такие средства есть, например Asset ScanWorks. Но, на мой взгляд, они уж слишком усложнены, по сравнению с Universal Scan, которому не хватает совсем чуть-чуть, чтобы быть очень удобным и гибким средством отладки и периферийного сканирования.

 

Без больших заморочек при таком подключении TAP'ов получится работать только с одним из устройств в .. м-м-м, назовем это сессией работы с чипом. При этом для того, чтобы ST-Link позволял Vivado общаться с Artix'ом, нужно будет еще приспособить XVC (упоминался в треде maks'ом).

 

Кстати, по поводу XVC нужно сказать, что под ISE 14.7 + Impact он нормально с цепочками из нескольких элементов не работает, т.к. не умеет корректно переводить элементы цепочки в BYPASS и потом работать с получившейся усеченной цепочкой. Chipscope + XVC работает нормально, но у него свой сервер для работы с JTAG через XVC.

 

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


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

OpenOCD вполне умеет. Кроме того с его помощью получается вполне успешно прошивать конфигурационный SPI-flash 25-й серии (W25Q32 и т.п.) на Spartan-3E/Spartan-6/Virtex-6 с помощью того же JTAG-адаптера.

 

А в каком состоянии пины ПЛИС при прошивке W25Q32 через OpenOCD?

Я после прочтения этой темы сильно задумался как шить флешки внутрисхемно... и не перейти ли вообще на загрузку ПЛИС из МК.

 

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


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

А в каком состоянии пины ПЛИС при прошивке W25Q32 через OpenOCD?

 

Пины находятся в нужном состоянии, т.к. временная прошивка ПЛИС, используемая в процессе прошивки SPI-flash, есть в исходниках и не совсем не сложно при трансляции сконфигурировать на нужное состояние неиспользуемых пинов.

 

... и не перейти ли вообще на загрузку ПЛИС из МК.

 

Это не всегда возможно, т.к. для ряда применений время до старта ПЛИС является критичным. Например, для плат расширения PCI/PCI Express. МК в этом случае гарантированное не успеет прогрузить рабочую прошивку в ПЛИС.

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


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

извиняюсь, за занудство.

а что удалось кому-то запустить JLINK с IAR-ом так, что в цепочке еще ПЛИС? где это сконфигурить или вообще можно узнать подробности?

 

а с GDB сервером через OpenOCD наверно можно, но как-то у меня ни работа IAR-а через gdbserver, ни OpenOCD (делал через него отладку элвисовского проца - так и не успел довести до ума, сдулся проект) особо положительных впечатлений не оставили...

 

-----------

 

ну и всякие сигналтапы/чипскопы для ПЛИС, тоже не очень понятно, как их конфигурить. если в загрузчиках (импакт и т.п.) можно было добавить в цепочку "чужой" чип, то с анализаторами как-то не видел явного способа...

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


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

ну и всякие сигналтапы/чипскопы для ПЛИС, тоже не очень понятно, как их конфигурить. если в загрузчиках (импакт и т.п.) можно было добавить в цепочку "чужой" чип, то с анализаторами как-то не видел явного способа...

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

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


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

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

 

Ничего подобного XVC не делает, т.к. это просто средство для подключения абстрактного JTAG-адаптера, работающего со вполне реальной JTAG-цепочкой.

 

Что касается Chipscope, то он при инициализации цепочки позволяет задать длины IR неизвестных ему элементов, а дальше он их переводит в BYPASS и спокойно работает.

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


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

Ничего подобного XVC не делает, т.к. это просто средство для подключения абстрактного JTAG-адаптера ...

Да простит меня великий All за некоторую вольность в терминологии и отход от академичности в этом треде, но я это и имел в виду,- просто немного абстрагировался от деталей :).

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


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

Да простит меня великий All за некоторую вольность в терминологии и отход от академичности в этом треде, но я это и имел в виду,- просто немного абстрагировался от деталей :).

 

Казнить нельзя помиловать. ;)

 

Я пробовал сделать демона для XVC, который бы как раз делал виртуальную цепочку для JTAG, скрывая "лишние" кристаллы. Но не доделал, т.к. нашлось решение для программирования SPI Flash через OpenOCD, а ChipScope и так работал. Т.е. Ваш вариант тоже возможен, если очень захотеть. Готовых решений такого рода я не нашёл (с эмуляцией виртуальной цепочки).

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


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

Как понял, гарантии, что я Xilinx-овским JTAG-ом доберусь до Artix-а через STM32, дать нельзя.

И еще, для работы с STM32 можно использовать SW цепи, совпадающие с JTAG. Но, чтобы использовать SWO (JTDO), надо его иметь подключенным к STM32.

Значит, лучше я подключу в цепь JTAG сначала Artix, его JTDO передам в JTDI STM32, а JTDO c STM32 выдам на разъем JTAG.

И, на всякий случай, пущу линию JTDI с JTAG в обход Artix, закончу площадкой, или джамперами (о!) переключусь на JTDI STM32.

Годится?

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


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

Как понял, гарантии, что я Xilinx-овским JTAG-ом доберусь до Artix-а через STM32, дать нельзя.

 

Можно, т.к. родной кабель работает без проблем. Максимум будут нужны BSDL-файлы для неизвестных Xilinx'овскому софту.

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

 

И еще, для работы с STM32 можно использовать SW цепи, совпадающие с JTAG. Но, чтобы использовать SWO (JTDO), надо его иметь подключенным к STM32.

Значит, лучше я подключу в цепь JTAG сначала Artix, его JTDO передам в JTDI STM32, а JTDO c STM32 выдам на разъем JTAG.

И, на всякий случай, пущу линию JTDI с JTAG в обход Artix, закончу площадкой, или джамперами (о!) переключусь на JTDI STM32.

Годится?

 

Запас карман не тянет, можно предусмотреть обход. Хуже не будет.

 

 

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


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

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

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

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

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

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

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

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

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

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