Добро пожаловать на форумы поддержки Tiny Tools! Доступ к вложениям в разделах поддержки имеют только официальные пользователи готовых решений Tiny Tools. Обязательно прочтите FAQ и заполните поля профиля (мы не общаемся с анонимами). Список форумов
Объявлений: 2
• Страница 1 из 2 • 1, 2
Последние новости
Темы
Ответы
Просмотры
Последнее сообщение
[ На страницу: 1 … 79, 80, 81 ]
Покупки с AliExpress
Любой более-менее интересующийся электроникой человек сегодня знает, что такое «прошивка». Многие из этой категории встречались с ситуацией «прошивка слетела». Самым неприятным подвидом ситуации является состояние «кирпич». Под катом немного теории и практики «раскирпичивания» с использованием устройства-героя обзора.
Я не занимаюсь профессионально ремонтом электроники и не пытаюсь заработать на этом денег. Но исследовательский зуд вкупе с минимальными познаниями в области электроники и информатики иногда толкает меня на залезание в потроха какому-нибудь очередному дивайсу (и как следствие, незапланированные покупки). Предыстория.
Как-то в гостях у знакомого я наткнулся взглядом на валяющийся в куче хлама спутниковый тюнер, еще вполне себе современный.
Выяснилось, что аппарат неисправен со следующими симптомами: когда-то грузился со второго раза, потом стал грузиться с третьего, потом с пятого, потом с десятого, потом перестал совсем. В сервисе за ремонт заломили неадекватную сумму, в результате просто был куплен новый тюнер, а этот брошен в кучу хлама. На предложение купить его за символическую сумму владелец с радостью согласился, в результате я стал обладателем неисправного тюнера Skyway Light с практически полным комплектом — нашелся пульт, блок питания и даже выносной ИК-приемник.
Первое включение.
Как ни странно, но включился он у меня не с двадцатого раза, а всего лишь с третьего. Отсканировал каналы и начал показывать. Но при попытке запустить приложение Youtube повис. Десять следующих перезагрузок методом перетыкания питания ни к чему не привели. Прошлый владелец не обманул.
Подозрение первое. Питание.
В интернете полно отчетов по оживлению тюнеров методом восстановления питающих напряжений. Обычно хватает замены вспухших электролитических конденсаторов в «холодной» части блока питания. Но это явно обещало быть не моим случаем. Во-первых, блок питания выносной, замена его на однотипный от исправного тюнера не помогла. Во-вторых, никаких крупных электролитических конденсаторов на плате не нашлось, в основном мелкие сигнальные в аналоговых цепях.
Подозрение второе. Прошивка.
Обновить прошивку не удалось ни с флэш-драйва методом зажатой кнопки «вниз», ни через COM-порт с помощью программы Porter Express. В первом случае индикатор чтения на флэшке мигал несколько секунд, после чего наступала тишина. Во втором программы выдавала сообщение «ошибка записи» без какого-либо объяснения, что ее не устраивает. Так я подобрался к третьему подозрению.
Подозрение третье. Чип флэш-памяти.
Натолкнули на эту мысль сразу несколько фактов. Во-первых, в консоли загрузки, которая стала доступна после подключения по COM-порту, при старте вываливалось сообщение «CRC error». Во-вторых, при попытке снять конфигурацию тюнера при помощи Porter Express слитый файл получался каждый раз другим, не совпадающим в предыдущим при побайтовом сравнении.
Что делать дальше?
Беглое изучение Aliexpress показало, что такую микросхему можно купить за небольшие деньги. Но вот тут обнаружилась главная проблема: просто купить флэшку мало. Ее нужно прошить. Либо на программаторе, либо прямо на плате. В моем случае это чип Spansion S29GL256P90TFCR2 — параллельная флэш-память в корпусе TSOP-56. Поиск такого программатора ни среди друзей-электронщиков, ни в веб-магазинах по адекватной цене не увенчались успехом. Остается единственный вариант — прошить флэшку прямо на плате после запаивания. И тут впервые мысленно была произнесена фраза, которая обычно на форумах электроники звучит как приговор: «поможет только JTAG».
Немного про JTAG.
Практически в каждой современной системе-на-чипе есть возможность отладки и тестирования. Чаще всего она реализована в виде последовательного интерфейса с сигналами ввода, вывода, тактирования, выбора и сброса, который и называют JTAG. Обычно эти выводы разведены на плате в виде пинов или контактных площадок. Проблема в том, что стандартизирован только электрический интерфейс. Команды для управления конкретным чипом индивидуальны, мало того, большинство производителей их не разглашают и выяснять их приходится методом реверсивного инжиниринга. Именно поэтому в паблике практически нет инструментов для работы с современными популярными чипсетами.
Заказ адаптера.
Гугление коммерческих продуктов, которые умеют работать с моим чипсетом ST40, привело меня на ресурс ejtag.ru, где обитает комьюнити по ремонту и находится небольшой интернет-магазин. Присмотрев для себя самый дешевый адаптер и убедившись, что он умеет работать с ST40, начал переговоры с жабой приступил к процессу покупки. Процесс отличается от того, к чему мы привыкли в популярных интернет-магазинах. Никаких пэйпэлов и диспутов. Регистрируемся, кладем товар в корзину, оформляем заказ. Через некоторое время приходит сообщение с номером WM-кошелька и суммой для оплаты. Оплачиваем, приходит подтверждение оплаты, через несколько дней — уведомление об отправке. Остается только ждать. Гарантия сделки — доброе имя продавца.
Получение, распаковка, регистрация.
Пластиковый пакет почты России, внутри обернутый пупыркой и положенный в антистатический пакет адаптер, кабель USB A male — Mini USB, шлейф с десятипиновой колодкой (будет виден на других фото, на момент съемки был подцеплен к тюнеру), переходник для прошивки последовательных флэшек самых популярных серий — 25-й, 93-й и в теории 24-й.
Для оценки размеров
Фото внутренностей
Внутри микроконтроллер с системой команд 8051 и микросхема буферов.
На скриншоте виден весь процесс покупки, включая запрос регистрационного кода после получения:
Заказ новой флэшки на Aliexpress.
Развернуто описывать не буду. Заказывал тут, шло почти два месяца, пришло в пластиковом блистере, который лежал в стандартном пакете.
Заказывал 2 штуки, на случай если одну убью при перепайке.
Перепайка флэшки.
Пайка мелких чипов многократно описана на Youtube. Залогом успеха здесь являются наличие паяльной станции с феном, хороший флюс, прямые руки. Вкратце: сдуваем старый чип, лудим площадки легкоплавким припоем, наносим флюс, дуем феном (с правильным потоком и температурой воздуха) до посадки чипа на место, проходим сверху обычным паяльником для надежности.
На фото видно, что получилось не очень. Ножки чуть сдвинулись, да и от вида неотмытого флюса некоторые ремонтники могут прижать руку к лицу. Но для личного пользования сойдет.
Прошивка.
Распиновка JTAG для моего тюнера есть на форуме магазина. Подпаиваемся к контактным площадкам на плате.
Все готово к прошивке.
Запускаем программу.
Выбираем тип процессора в списке. Нажимаем кнопку «Соединиться».
В списке пробегает куча служебной информации, кнопки «Считать» и «Записать» и «Стереть» становятся активными. Обычно рекомендуют прошить только загрузчик, а потом уже через него прошиться обычным образом с USB-флэшки. Но я залил полный дамп, 32 мегабайта — лень было возиться с распаковкой отдельного загрузчика. Прошивка заняла около получаса, результат на фото:
Тюнер запустился, дальше дело техники.
Резюме.
Прибор безусловно рекомендуется к обладанию как небольшим мастерским, так и одиночкам-энтузиастам, не боящимся приобретать устройства в состоянии «кирпич».
Бонус: полный список процессоров, поддерживаемых адаптером
mysku.ru
Поиск • www.ejtag.ru
Запрос
Ключевые слова: Вы можете использовать +, чтобы определить слова, которые должны быть в результатах, и – для слов, которых в результатах быть не должно. Вы можете разделить слова символом | для поиска любого слова из списка. Используйте * в качестве шаблона для частичного совпадения.
Искать все слова Искать любое слово/поиск с языком запросов
Поиск по автору: Используйте * в качестве шаблона.
Искать в форумах: Выберите форум или форумы, в которых будет произведён поиск. Поиск в подфорумах производится автоматически, если вы не отключили соответствующую опцию ниже.
МагазинCPLD EJTAG Tiny ToolsUSB-S EJTAG Tiny ToolsUSB-F EJTAG Tiny ToolsUSB SPI Tiny ToolsUSB PinFind Tiny ToolsEasy NAND Tiny Tools Раздел TV/AV NAND File Editor Вопросы по использованию программатораОбщий раздел eJTAG по ремонту Ремонт SAT техники Ремонт LAN техники Ремонт компьютерной техникиUpload (общий)Upload (закрытый) SAT Dumps DVB-T Dumps Wi-Fi, LAN, AP, Routers SchematicКурилка Купи-Продам!
Параметры запроса
Искать в подфорумах:
Да Нет
Искать:
В названиях тем и текстах сообщений Только в текстах сообщений Только по названию темы Только в первом сообщении темы
Поле сортировки:
АвторВремя размещенияФорумНазвание темыЗаголовок сообщения по возрастанию по убыванию
Показывать результаты как:
Сообщения Темы
Искать сообщения за:
Все дни1 день7 дней2 недели1 месяц3 месяца6 месяцев1 год
Показывать первые:
Все имеющиеся025501002003004005006007008009001000символов сообщений
Любой более-менее интересующийся электроникой человек сегодня знает, что такое «прошивка». Многие из этой категории встречались с ситуацией «прошивка слетела». Самым неприятным подвидом ситуации является состояние «кирпич». Под катом немного теории и практики «раскирпичивания» с использованием устройства-героя обзора.
Я не занимаюсь профессионально ремонтом электроники и не пытаюсь заработать на этом денег. Но исследовательский зуд вкупе с минимальными познаниями в области электроники и информатики иногда толкает меня на залезание в потроха какому-нибудь очередному дивайсу (и как следствие, незапланированные покупки).
Предыстория.
Как-то в гостях у знакомого я наткнулся взглядом на валяющийся в куче хлама спутниковый тюнер, еще вполне себе современный.
Выяснилось, что аппарат неисправен со следующими симптомами: когда-то грузился со второго раза, потом стал грузиться с третьего, потом с пятого, потом с десятого, потом перестал совсем. В сервисе за ремонт заломили неадекватную сумму, в результате просто был куплен новый тюнер, а этот брошен в кучу хлама. На предложение купить его за символическую сумму владелец с радостью согласился, в результате я стал обладателем неисправного тюнера Skyway Light с практически полным комплектом — нашелся пульт, блок питания и даже выносной ИК-приемник.
Первое включение.
Как ни странно, но включился он у меня не с двадцатого раза, а всего лишь с третьего. Отсканировал каналы и начал показывать. Но при попытке запустить приложение Youtube повис. Десять следующих перезагрузок методом перетыкания питания ни к чему не привели. Прошлый владелец не обманул.
Подозрение первое. Питание.
В интернете полно отчетов по оживлению тюнеров методом восстановления питающих напряжений. Обычно хватает замены вспухших электролитических конденсаторов в «холодной» части блока питания. Но это явно обещало быть не моим случаем. Во-первых, блок питания выносной, замена его на однотипный от исправного тюнера не помогла. Во-вторых, никаких крупных электролитических конденсаторов на плате не нашлось, в основном мелкие сигнальные в аналоговых цепях.
Подозрение второе. Прошивка.
Обновить прошивку не удалось ни с флэш-драйва методом зажатой кнопки «вниз», ни через COM-порт с помощью программы Porter Express. В первом случае индикатор чтения на флэшке мигал несколько секунд, после чего наступала тишина. Во втором программы выдавала сообщение «ошибка записи» без какого-либо объяснения, что ее не устраивает. Так я подобрался к третьему подозрению.
Подозрение третье. Чип флэш-памяти.
Натолкнули на эту мысль сразу несколько фактов. Во-первых, в консоли загрузки, которая стала доступна после подключения по COM-порту, при старте вываливалось сообщение «CRC error». Во-вторых, при попытке снять конфигурацию тюнера при помощи Porter Express слитый файл получался каждый раз другим, не совпадающим в предыдущим при побайтовом сравнении.
Что делать дальше?
Беглое изучение Aliexpress показало, что такую микросхему можно купить за небольшие деньги. Но вот тут обнаружилась главная проблема: просто купить флэшку мало. Ее нужно прошить. Либо на программаторе, либо прямо на плате. В моем случае это чип Spansion S29GL256P90TFCR2 — параллельная флэш-память в корпусе TSOP-56. Поиск такого программатора ни среди друзей-электронщиков, ни в веб-магазинах по адекватной цене не увенчались успехом. Остается единственный вариант — прошить флэшку прямо на плате после запаивания. И тут впервые мысленно была произнесена фраза, которая обычно на форумах электроники звучит как приговор: «поможет только JTAG».
Немного про JTAG.
Практически в каждой современной системе-на-чипе есть возможность отладки и тестирования. Чаще всего она реализована в виде последовательного интерфейса с сигналами ввода, вывода, тактирования, выбора и сброса, который и называют JTAG. Обычно эти выводы разведены на плате в виде пинов или контактных площадок. Проблема в том, что стандартизирован только электрический интерфейс. Команды для управления конкретным чипом индивидуальны, мало того, большинство производителей их не разглашают и выяснять их приходится методом реверсивного инжиниринга. Именно поэтому в паблике практически нет инструментов для работы с современными популярными чипсетами.
Заказ адаптера.
Гугление коммерческих продуктов, которые умеют работать с моим чипсетом ST40, привело меня на ресурс ejtag.ru, где обитает комьюнити по ремонту и находится небольшой интернет-магазин. Присмотрев для себя самый дешевый адаптер и убедившись, что он умеет работать с ST40, начал переговоры с жабой приступил к процессу покупки. Процесс отличается от того, к чему мы привыкли в популярных интернет-магазинах. Никаких пэйпэлов и диспутов. Регистрируемся, кладем товар в корзину, оформляем заказ. Через некоторое время приходит сообщение с номером WM-кошелька и суммой для оплаты. Оплачиваем, приходит подтверждение оплаты, через несколько дней — уведомление об отправке. Остается только ждать. Гарантия сделки — доброе имя продавца.
Получение, распаковка, регистрация.
Пластиковый пакет почты России, внутри обернутый пупыркой и положенный в антистатический пакет адаптер, кабель USB A male — Mini USB, шлейф с десятипиновой колодкой (будет виден на других фото, на момент съемки был подцеплен к тюнеру), переходник для прошивки последовательных флэшек самых популярных серий — 25-й, 93-й и в теории 24-й.
Для оценки размеров
Фото внутренностей
Внутри микроконтроллер с системой команд 8051 и микросхема буферов.
На скриншоте виден весь процесс покупки, включая запрос регистрационного кода после получения:
Заказ новой флэшки на Aliexpress.
Развернуто описывать не буду. Заказывал тут, шло почти два месяца, пришло в пластиковом блистере, который лежал в стандартном пакете.
Заказывал 2 штуки, на случай если одну убью при перепайке.
Перепайка флэшки.
Пайка мелких чипов многократно описана на Youtube. Залогом успеха здесь являются наличие паяльной станции с феном, хороший флюс, прямые руки. Вкратце: сдуваем старый чип, лудим площадки легкоплавким припоем, наносим флюс, дуем феном (с правильным потоком и температурой воздуха) до посадки чипа на место, проходим сверху обычным паяльником для надежности.
На фото видно, что получилось не очень. Ножки чуть сдвинулись, да и от вида неотмытого флюса некоторые ремонтники могут прижать руку к лицу. Но для личного пользования сойдет.
Прошивка.
Распиновка JTAG для моего тюнера есть на форуме магазина. Подпаиваемся к контактным площадкам на плате.
Все готово к прошивке.
Запускаем программу.
Выбираем тип процессора в списке. Нажимаем кнопку «Соединиться».
В списке пробегает куча служебной информации, кнопки «Считать» и «Записать» и «Стереть» становятся активными. Обычно рекомендуют прошить только загрузчик, а потом уже через него прошиться обычным образом с USB-флэшки. Но я залил полный дамп, 32 мегабайта — лень было возиться с распаковкой отдельного загрузчика. Прошивка заняла около получаса, результат на фото:
Тюнер запустился, дальше дело техники.
Резюме.
Прибор безусловно рекомендуется к обладанию как небольшим мастерским, так и одиночкам-энтузиастам, не боящимся приобретать устройства в состоянии «кирпич».
Бонус: полный список процессоров, поддерживаемых адаптером
Добро пожаловать на форумы поддержки Tiny Tools! Доступ к вложениям в разделах поддержки имеют только официальные пользователи готовых решений Tiny Tools. Обязательно прочтите FAQ и заполните поля профиля (мы не общаемся с анонимами). Список форумов
Всего Всего сообщений: 61100 Тем: 2553 Объявлений: 2 Прилепленных тем: 96 Вложений: 8575 Тем за день: 1 Сообщений в день: 17 Посетителей за день: 2 Тем на участника: 0 Сообщений на участника: 10 Сообщений на тему: 24 Пользователей: 6248 Новый пользователь: Evkliptik
Календарь
Июн 2021
Пн
Вт
Ср
Чт
Пт
Сб
Вс
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Наша команда
Последние боты
Yandex [Bot] менее минуты назадBing [Bot] 8 минут назадGoogle [Bot] 13 минут назадMailRu [Bot] Сегодня, 17:51BLEX [Bot] Сегодня, 07:46
Ссылки
Поиск • www.
ejtag.ru
Запрос
Ключевые слова: Вы можете использовать +, чтобы определить слова, которые должны быть в результатах, и – для слов, которых в результатах быть не должно. Вы можете разделить слова символом | для поиска любого слова из списка. Используйте * в качестве шаблона для частичного совпадения.
Искать все слова Искать любое слово/поиск с языком запросов
Поиск по автору: Используйте * в качестве шаблона.
Искать в форумах: Выберите форум или форумы, в которых будет произведён поиск. Поиск в подфорумах производится автоматически, если вы не отключили соответствующую опцию ниже.
МагазинCPLD EJTAG Tiny Tools (закрыт)USB-S EJTAG Tiny Tools (закрыт)USB-F EJTAG Tiny ToolsUSB SPI Tiny ToolsUSB PinFind Tiny ToolsEasy NAND Tiny Tools Раздел TV/AV NAND File Editor Вопросы по использованию программатораОбщий раздел eJTAG по ремонту Ремонт SAT техники Ремонт LAN техники Ремонт компьютерной техникиUpload (общий)Upload (закрытый) SAT Dumps DVB-T Dumps Wi-Fi, LAN, AP, Routers SchematicКурилка Купи-Продам!
Параметры запроса
Искать в подфорумах:
Да Нет
Искать:
В названиях тем и текстах сообщений Только в текстах сообщений Только по названию темы Только в первом сообщении темы
Поле сортировки:
АвторВремя размещенияФорумНазвание темыЗаголовок сообщения по возрастанию по убыванию
Показывать результаты как:
Сообщения Темы
Искать сообщения за:
Все дни1 день7 дней2 недели1 месяц3 месяца6 месяцев1 год
Показывать первые:
Все имеющиеся025501002003004005006007008009001000символов сообщений
Схему универсальный программатор isp jtag.
USB-S EJTAG Tiny Tools
В последнее время, как среди профессиональных разработчиков, так и в рядах начинающих электронщиков широкое распространение получили ARM микроконтроллеры. Очень большой популярностью пользуются разработки фирмы NXP. Эта фирма производит огромный спектр изделий – от дешёвых и малопотребляющих до высокопроизводительных, поддерживающих такие интерфейсы как USB и Ethernet.
Хочу предложить вниманию читателей свою разработку, которой лично я пользуюсь, пожалуй, чаще всего. Это простой внутрисхемный программатор, который легко можно изготовить собственными руками. Программатор предназначен для программирования широкораспространённых ARM микроконтроллеров фирмы NXP серии LPC2xxx. Это микроконтроллеры с ядрами ARM7, Cortex-M0 и Cortex-M3. Кроме этого, с его помощью можно программировать недорогие 8-битные микроконтроллеры из серии LPC9xx, за исключением самых простейших из серии LPC901. Подробнее со списком можно ознакомиться здесь. www.ru.nxp.com/products/microcontrollers Программатор подключается к порту USB и не требует дополнительного питания. Он собран всего на двух микросхемах и одном транзисторе. Устройство может использоваться не только для программирования платы с микроконтроллером, но и для связи с ней по эмулируемому последовательному порту.
Рис. 1. Схема принципиальная электрическая, часть первая.
Программатор собран на основе микросхемы фирмы FTDI – FT232RL www.ftdichip.com/Products/ICs/FT232R.htm Для успешного программирования не забудьте скачать и установить драйвер микросхемы, который подходит для применяемой Вами операционной системы. Ищите его здесь: www.ftdichip.com/FTDrivers.htm Фильтр L1 можно заменить на резистор сопротивлением 10 … 22 Ом. Светодиоды VD1, VD3, сопротивления R3, R4 можно исключить, если не требуется индикация передачи и приёма пакетов данных по USB.
Рис. 2. Схема принципиальная электрическая, часть вторая.
Для программирования микроконтроллеров серии LPC2000 используется разъём X3, для программирования LPC900 X1.
Рис. 3. Схема принципиальная электрическая, часть вторая для программирования микроконтроллеров только серии LPC2000.
Микроконтроллеры серии LPC900 используются не часто, если Вам требуется программировать только ARMы LPC2000 вторую часть схемы можно очень сильно упростить. Упрощённая часть показана на рисунке 3.
Рис.4. Монтажная схема.
Рис.5. Внешний вид программатора. В качестве светодиодов можно применить как SMD, так и выводные. В качестве транзистора подойдёт практически любой, прямой проводимости, подходящий по цоколёвке.
Список используемых деталей, схема и трассировки платы в формате PCAD 2006, расположены в прилагаемом архиве. docs.google.com/open?id=0B8EEcNDjnzhhUUZJbjc2cEx3NHM Программирование можно производить с помощью бесплатно распространяемой программы Flash Magic www.flashmagictool.com Подробнее о подключении разных микроконтроллеров к программатору и процессе внутрисхемного программирования я расскажу в
Существует довольно много конфигураций различных программаторов, которые позволяют переписать программные наработки в микроконтроллер. Они могут быть различными, рассчитанными на профессионалов или, наоборот, иметь упрощенный интерфейс. К последним программаторам относится и герой этой статьи. Вы узнаете не только, что он представляет собой, но и как сделать программатор JTAG своими руками. Вы найдёте схемы и фотографии, как должен выглядеть результат.
Чем является JTAG-программатор?
Он представляет собой упрощенный вариант профессионального AVR JTAG ICE, который, как можно догадаться по его названию, предназначен для программирования микроконтроллеров семейства AVR. Его главное отличие в том, что собрать его может даже непрофессионал, и конечная стоимость будет многократно ниже, чем при покупке заводского. По сути, представленный в статье механизм – китайская реплика, поэтому этот программатор AVR ещё и можно купить. Поэтому не кривя душой можно сказать, что существует ещё и вариант покупки. Но сборка своими руками позволит избежать возможных негативных последствий вследствие дешевизны и низкого качества покупаемых деталей при производстве.
Почему выбирают именно программатор JTAG?
Главное – его низкая стоимость и лёгкость в сборке. JTAG-программатор может программировать все устройства, имеющие интерфейс JTAG. Для работы через компьютер необходима среда разработки AVR Studio 4-й или больше версии. С ними этот программатор AVR сможет работать.
Недостатки программатора
Самые последние версии семейств микроконтроллеров, без дополнительной работы, не программируются. Также существуют значительные проблемы с теми представителями, у которых меньше 40 ног и 16 Кб памяти. Как можно заметить, круг потенциальных клиентов довольно ограничен. Но несколько популярных моделей как раз подпадают под него, так что он пригодится.
Схема
Схема программатора простая, для работы необходима ATMega16 и немного дополнительной электроники. В качестве интерфейса может быть использовано MAX232 (для работы с COM) и FT232RL (для работы с USB). Стоит оговориться, что при использовании второго варианта подключать питание через USB не рекомендуют. В таких случаях из-за ошибки или недосмотра могут получить напряжение защитные диоды, и на выводах FT232RL будет Это чревато выходом из строя или программатора, или объекта программирования. Решается этот нюанс подачей питания через плату.
Для большей простоты тем, кто не имеет достаточной квалификации, программатор рассчитан на MAX232, но для другого варианта требуется только установить другой разъем.
Настройка
Учитывая, что есть необходимые схемы, следует только вытравить плату. Далее всё аккуратно подсоединяется, припаивается на места, и проверяется работа программатора путём прошивки загрузчика. Затем следует с AVR Studio обновить прошивку для JTAG-программатора до последней версии или до тех пор, пока надо. К адаптеру подключается программатор. Если он работает – значит можно переходить к следующему разделу, в котором обрисованы нюансы работы и программирования. Следует учесть, что все необходимые провода есть, они только нестандартно расположены.
В качестве подготовки к работе следует выставить Fuse биты. Они зависят от нотации, в которой производится работа. Для лучшего понимания представляем вот такую таблицу:
Прямая нотация (Даташит, UniProf)
Инверсная нотация (AVR DUDE GUI, PonyProg)
А как понять, какую выбрать? Ответ на вопрос прост: следует подключиться к микроконтроллеру и начать читать эти самые биты. Обратите внимание на SPIEN – если есть галочка напротив него, то это значит, что нотация инверсная. Если её нет – значит, она прямая. Если всё было сделано правильно, то программатор готов, чтобы прошивать микроконтроллеры. Но если он в последующем не сможет сделать прошивку – перечитайте и проверьте всё ещё раз.
Работа с программатором
Для большей понятливости будет приведён пример программирования мигания светодиодов. Первоначально следует запустить студию и создать новый проект. Затем выбрать язык программирования (в данном случае ассемблер) и задать имя проекта. Программа сама сможет определить, что вы используете JTAG-программатор. В качестве платформы следует выбрать его, а в окошечке рядом – программируемый им микроконтроллер. Далее всё довольно обычно – следует только вбить текст для программы. Чтобы читатели могли проверить работоспособность, предлагаем опробовать JTAG-программатор указанным в статье кодом. Можно увидеть, что диоды начали мигать очень быстро, что неудивительно, ведь здесь не предусмотрена задержка. Итак, программатор, инструкция его создания и использования есть. Вам остаётся только воплотить полёт своей фантазии.
Немного о практике. Для проверки подключите к порту А 3 светодиода. Затем к плате подключается: четыре провода интерфейса (TCK, TDI, TMS, TDO) и 2 силовых Vcc идут на плюс, а GND подключается к земле. Всё, питание есть, можно идти дальше. В студии необходимо провести компиляцию кода и его запуск. Проект быстро скомпилируется, тут же будет прошит и начнёт работать. Чтобы следить за процессом исполнения, можно нажать F11, и тогда можно наблюдать, на каком ряду кода сейчас программа. Для этого достаточно поднести курсор к ряду, который включает светодиод, и он загорится. Существует ещё много экспериментов. Помните, что для того чтобы что-то сделать, необходимо работать. Пускай продвижение будет медленным, но со временем вы сможете получить именно то, что хотите, главное – не опускать руки и продолжать экспериментирование с упором на теоретическую базу (без неё никак).
Самодельная и доступная альтернатива продаваемому программатору от STMicroelectronics. Является выдержкой и компиляцией нескольких статей и схем найденных в интернете. Реализация в минимально возможном форм-факторе.
У любого разработчика встраиваемого софта должен быть программатор для устройств которые он использует. В моём случае микроконтроллеры фирмы STMicroelectronics, а так же Milandr (российские процессоры на ядре ARM).
Покупка данного девайса весьма затратна, особенно если сравнивать с себестоимостью компонентов – печатной платы и радиодеталей.
Решено было сделать программатор самостоятельно. За основу легли схемы отладочных плат для различных МК, в итоге получился полнофункциональный отладочный модуль и не только для stm32, но и для stm8 и даже миландровских чипов (проверено пока только на К1986ВЕ92, но думаю и другие тоже будут шиться и отлаживаться).
Основные функции:
программирование и отладка STM32;
программирование и отладка STM8;
программирование и отладка ARM Миландр.
Интерфейсы программирования:
SWD – до 4 МГц;
JTAG;
SWIM.
Сам программатор можно рассмотреть на фото выше. Провода растянутые по плате это лишь последующие доработки связанные с отсутствием необходимого светодиода (слева) и с необходимостью программировать платы без подачи на них питания (справа).
Схема устройства максимально проста и понятна:
Ядром является контроллер stm32f103, который и используется во всех отладочных платах. На его входах и выходах устройства, я имею ввиду разъем для подключения программируемого микроконтроллера, установлены диоды для защиты от статики, диоды выбраны достаточно маленькие, но легко доступные и без особых сложностей впаиваемыми, даже людьми с ослабленным зрением, сам я впрочем и не жалуюсь со своими единичками на обоих глазах.
В качестве разъема для подключения к компьютеру используется microUSB, выбор пал только лишь из-за его современности по сравнению с его мини братом. У меня же самого на плате стоит именно мини, когда собирал заложенного микро не было в наличии. Плата выглядит следующим образом:
После сборки и проверки на короткое замыкание подключаем устройство к компьютеру и видим что ничего не происходит, разве что программатор определяется как неизвестное устройство, причина в отсутствии прошивки.
Для обеспечения работы необходимо зашить по в микроконтроллер, для этого нам понадобиться usb-uart переходник, бутлоадер и утилита для прошивки .
Если с утилитой и переходником проблем на возникает, то с загрузчиком все несколько иначе – так как сама прошивка в контроллерах на отладочных платах заблокирована от считывания и вытащить у меня не получилось. Благо живем в современном мире, где есть интернет.
Решение было найдено на одном из многочисленных форумов – бинарник прошивки. Правда была проблема, после прошивки контроллера программатор определялся, но работать не хотел, зато спокойно прошивался через st-link utility, было решено подчистить файл прошивки, удалив все лишнее, оставив только сам загрузчик.
Как можно догадаться все удалось и теперь загрузчик можно взять .
Для заливки используем разъем P1, выводы 3 и 4 которого замыкаем вместе, переводя микроконтроллер в режим загрузки по usart1. Подключаем uart переходники подаем питание на плату программатора, можно через usb разъем.
В утилите выбираем используемый последовательный порт и следуем остальным инструкциям. Этот процесс в картинках описывать нет смысла – все довольно тривиально.
После окончания прошивки отключаем все вспомогательные устройства и подключаем программатор к компьютеру, он должен нормально определиться. Теперь осталось обновить прошивку программатора с помощью
AVR JTAG Programmer – представляет собой сильно упрощенный вариант профессионального программатора AVR JTAG ICE от фирмы Atmel.
И в отличии от своего профессионального собрата может быть собран буквально на “коленках” и стоимость его многократно ниже.
А если быть еще точнее, то этот программтор не что иное как китайская реплика, имеющая обозначение как AVR JTAG под
брендом LCSOFT и которую можно без проблем купить в зарубежных интернет магазинах и аукционах. Данный программатор
с базовой прошивкой предназначен для программирования микроконтроллеров фирмы Atmel по интерфейсу JTAG. Рабочей средой для программатора
является среда разработки программного обеспечения AVR Studio v4.xx. В принципе в интернете можно встретить и другием программы сторонних разработчиков.
Однако стоит отметить, что последние серии микроконтроллеров ему не доступны, такие как например серии AT90USB и вследствии чего эти микроконтроллеры
запрограммировать не удасться.
После небольшого лирического отступления стоит рассказать почему мой взор пал на этот программатор.
Все дело в том, что когда я делал свой проект Devboard Z80 , то программировать микроконтроллер можно было только через
JTAG интрефейс. Поэтому в процессре работы над проектом девборды я просмотрел интернет на предмет доступности программатора.
И мой взгляд остановился на этом недорогом программаторе. И все бы ничего, но когда я занялся другим своем проектом, а именно
разработкой компьютера ZXM-Zephyr , то не обратил внимание на то, что примененый мной микроконтроллер AT90USB1287 не поддерживается
данным программатором. После безуспешных поисков в интернете на предмет возможного обновления прошивки данного программатора было решено
попробовать сделать самому прошивку и какую нибудь простенькую программу для программирования микроконтроллера AT90USB1287 хотя бы
в рамках проекта ZXM-Zephyr .
Первым моим шагом в изучении этого программатора стала зарисовка его схемы и создание
рисунка печатной платы. Далее поискав в интернете информацию о том как программировать микроконтроллеры через JTAG, нашел два проекта с примерами,
которые и легли в основу моей прошивки для этого программатора. После создания прошивки написал небольшую утилиту под операционную систему
Windows. Все свои изыскания по этой теме я решил выложить на свою страницу, возможно они пригодятся еще кому нибудь.
В заключении хочется добавить, что данный программатор по сути стал
неким конструктором, с помощью которого можно программировать не только микроконтроллеры фирмы Atmel, но также и других
фирм. Или даже другие микросхемы с интрефейсом JTAG. Нужно лишь только приложить немного усилий – написать необходимую
под себя прошивку.
Краткая спецификация: Проект:
1. Схема электрическая принципиальная в формате P-CAD 2002
– скачать 2. Печатная плата в формате P-CAD 2002
– скачать 3. Электрическая и монтажная схемы, перечень
элементов в формате pdf – скачать 4. Библиотека элементов формате P-CAD 2002
– скачать
Прошивки:
1. Прошивка микроконтроллера ATmega16А штатная, которой зашиваются при производстве китайских реплик
– скачать 2. Прошивка микроконтроллера ATmega16А, которая находилась в пакете AVR Studio v4.17.
– скачать 3. Прошивка микроконтроллера ATmega16А для программирования микроконтроллеров фирмы Atmel и имеющие интерфейс JTAG.
Важное замечание – необходима внешняя управляющая программа! Версия прошивки v01.00
–
Одним из самых мощных отладочных инструментов в микроконтроллерной среде является JTAG — внутрисхемный отладчик .
Суть тут в чем — через JTAG адаптер микроконтроллер подключается напрямую к среде программирвания и отладки, например к AVR Studio . После чего микроконтроллер полностью подчиняется студии и дальше шагу не может ступить без ее разрешения. Доступна становится пошаговое выполнение кода, просмотр/изменение всех регистров, работа со всей периферией и все это в реальном микроконтроллере, а не в программной эмуляции. Можно ставить точки останова (breakpoints) на разные события — для ICE1 три штуки. В общем, сказка, а не инструмент.
К сожалению в AVR микроконтроллерах JTAG доступен далеко не везде, как правило контроллеры с числом ног меньше 40 и обьемом памяти меньше 16КБ такого удовольствия лишены (там, правда, часто бывает debugWire, но на коленке сделать его адаптер еще никому не удалось, а фирменный JTAG ICEII или AVRDragon стоят довольно больших денег). А поскольку у меня в ходу в основном Tiny2313, Mega8, Mega8535 и прочая мелочевка, то мне JTAG что собаке пятая нога — не поддерживается он в этих МК.
Тем не менее, поддашвись многочисленным просьбам, я сварганил этот агрегат и сейчас покажу вам как им пользоваться. Велосипед изобретать я не стал и взял широко известный проект от scienceprog.com
Однако я не обломался развести плату и под FT232RL суть та же.
Теперь надо прошить контроллер. Вообще, по науке, сначала прошивается bootloader , потом из AVR Studio делается обновление прошивки JTAG ICE до последней версии. Но я нашел путь проще, на сайте pol-sem.narod.ru был обнаружен уже готовый HEX файл который просто надо залить в МК и все.
Поэтому цепляем к нашему адаптеру программатор, благо все штыри нужные (MISO, MOSI, GND, RST, SCK, Vcc ) есть. А то что они не в нужном порядке стандартного AVR ISP разьема, так это не беда — я временно распотрошил колодку своего программатора и одел отдельные пины как надо. Однократная же процедура, чего мучаться разводить еще и ISP разъем.
Заливаем прошивку. Выставляем Fuse биты.
Тут надо быть внимательными, так как существует несколько нотаций FUSE — прямая (по даташиту, где 0 = ON, 1=OFF) и инверсная (1 = ON, 0 = OFF). В прямой нотации работает UNIPROF, в инверсной нотации работает PonyProg и USBASP _AVRDUDE_PROG. Определить в какой нотации работает твой программатор очень просто. Дjстаточно подключиться к своему МК и нажать кнопку чтения Fuse битов и посмотреть на бит SPIEN если галка стоит — нотация инверсная . Потому как по дефолту SPIEN включен всегда (без него невозможно прошить МК через ISP внутрисхемно).
Прошиваются Fuse следующим образом:
Бит
Прямая нотация (UniProf, Даташит)
Инверсная нотация (PonyProg, AVR DUDE GUI)
OCDEN
[v]
JTAGEN
[v]
SPIEN
[v]
CKOPT
[v]
EESAVE
[v]
BOOTSZ1
[v]
BOOTSZ0
[v]
BOOTRST
[v]
BODLEVEL
[v]
BODEN
[v]
SUT1
[v]
SUT0
[v]
CKSEL3
[v]
CKSEL2
[v]
CKSEL1
[v]
CKSEL0
[v]
Если прошивать голый бутлоадер, то надо включить бит BOOTRST и подключившись через студию сделать обновление прошивки JTAG, залив через AVRProg файл upgrade. ebn (лежит он где то в каталоге AVR Studio). А после прошивки выключить BOOTRST.
Все, девайс готов к работе. Теперь осталось его только испытать в деле.
Работа с JTAG AVR ICE Особо заморачиваться я не буду, так что покажу на простом примере мигания светодиодов. Запускаем студию, создаем новый проект. Выбираем язык программирования, пусть это будет Assembler. Задаем имя проекта.
Include “m16def.inc” ; Используем ATMega16
LDI R16,0xFF ; Порт А на выход.
OUT DDRA,R16
Main: SEI ; Разрешаем прерывания.
SBI PORTA,0 ; Зажгли диод 0
SBI PORTA,1 ; Зажгли диод 1
SBI PORTA,2 ; Зажгли диод 2
NOP
CBI PORTA,0 ; Погасили диод 0
CBI PORTA,1 ; Погасили диод 1
CBI PORTA,2 ; Погасили диод 2
NOP
RJMP Main ; Зациклились
Вот так вот просто. Если ее скомпилить, прошить и запустить, то диоды будут моргать с бешеной частотой, так как никаких задержек не предусмотрено. А что же будет из под JTAG ?
Беру свою новоиспеченную отладочную плату на Mega16 , подключаю к порту А три светодиода. Подключаю к плате JTAG адаптер — четыре провода интерфейса (TDO,TDI,TMS,TCK ) и два силовых Vcc на плюс и GND на землю — JTAG адптер запитан от целевой платы и все готово к работе.
Можно трассировать! Тыкаю по F11 — прога исполняется по одной команде, показывая стрелочкой где я нахожусь в данный момент. После каждого выполнения команды SBI — у меня на плате зажигается соответствующий светодиод. Круто, блин! Как в каком-нибудь только без глюков и все вживую! Пробежался дальше по тексту — после CBI диоды погасли, как и положено. Вот как это выглядит вживую:
ЫЫЫ!!! ШИМ!!! Ставлю прогу на паузу, меняю биты в OCR2 запускаю снова — коэффициент заполнения изменился. Хы. Ручное управление:)
Так что с JTAGом если хочешь получить по быстрому какую нибудь фиговину вроде генератора даже не надо прогу писать — взял и включил вручную что тебе нужно. Богат AVR периферией:)
Прошивка микроконтроллера через JTAG JTAG ICE можно также использовать для прошивки микроконтроллера и установки FUSE битов. Для этого надо запустить AVR PROG (Tools — Program AVR — Connect…) и выбрать там JTAG ICE ну и COM порт, хотя обычно канает Auto.
Наигрался, зафотографировал для статьи, упаковал в красивый корпус. Даже не поленился и обложечку сфигачил. Очень уж мне игрушка понравилась.
Файлы к статье:
Вот так и развращаютя эмбеддеры. Сначала к JTAG пристрастятся, потом ради одного лишь JTAG прееходят на более мощный кристалл там, где хватит и Tiny, а дальше Си, Си++, потом.NET какой нибудь на виртуальной машине… И вот уже операционная система весом в несколько гигабайт и требующая гигазы ОЗУ ни у кого не вызывает шока и ужаса. А ведь это страшно, господа! Прогресс, мать его. Не развращайтесь благами цивилизации, будте аскетичны и разумны. И не забывайте об оптимизации как программной, так и аппаратной.
В чем разница между JTAG и EJTAG?
JTAG – это больше, чем проверка памяти и регистров, см. EEVBlog 499 – Что такое JTAG и Boundary Scan?
[JTAG] был первоначально разработан инженерами-электронщиками для тестирования печатных плат с использованием граничного сканирования . .. [и] также широко используется для отладочных портов IC. На рынке встроенных процессоров практически все современные процессоры реализуют JTAG, когда у них достаточно контактов. Разработка встраиваемых систем опирается на отладчики, обменивающиеся данными с чипами с помощью JTAG, для выполнения таких операций, как одиночный шаг и точка останова.
EJTAG является расширением MIPS JTAG
EJTAG повторно использует выводы граничного сканирования IEEE JTAG для базового интерфейса отладки. Для поддержания низких затрат на кристалле и минимизации издержек на целевую систему MIPS EJTAG использует широко используемые выводы IEEE JTAG для своих функций отладки. Используя специальную встроенную схему отладки, EJTAG обеспечивает контроль работы, точки останова как для данных, так и для команд, трассировку счетчика программ в реальном времени. Кроме того, отдельные лицензиаты могут добавлять дополнительные функции при желании. Такие функции могут включать сложные точки останова и функции профилирования выполнения.
Оперативная отладка предоставляет некоторые новые инструменты для отладки встроенных процессоров, которые позволяют избежать ограничений традиционных аппаратных средств отладки. Например, невозможно использовать логический анализатор для слежения за операциями, которые происходят между процессором и внутрикристальным кэшем данных и инструкций. Но встроенная EJTAG может отслеживать эти операции. Кроме того, использование внутрисхемных эмуляторов в высокоскоростных системах часто проблематично, поскольку они влияют на характеристики нагрузки шины системы и могут вызывать «связанные с инструментом» ошибки в системе. Кроме того, они редко доступны для единственной в своем роде системы на кристалле. Наконец, некоторые решения требуют специальных микросхем связи, которые обеспечивают дополнительные управляющие сигналы и шины. Но это дополнительные накладные расходы на разработку как чипов, так и плат, и это добавляет больше драгоценного времени к производственному циклу. EJTAG получает те же результаты без дополнительного времени и затрат.
EETimes: ненавязчивая отладка на кристалле …
Информация о сайте www.ejtag.ru
Здесь вы сможете провести полный анализ сайта, начиная с наличия его в каталогах и заканчивая подсчетом скорости загрузки. Наберитесь немного терпения, анализ требует некоторого времени. Введите в форму ниже адрес сайта, который хотите проанализировать и нажмите “Анализ”.
Если вы хотите показать результаты в каком либо форуме, просто скопируйте нижестоящий код и вставьте в ваше сообщение не изменяя.
[URL=https://2ip.ru/analizator/?url=www.ejtag.ru][IMG]https://2ip.ru/analizator/bar/www.ejtag.ru.gif[/IMG][/URL] Аппаратное обеспечение
– В чем разница между JTAG и EJTAG?
JTAG – это больше, чем просто проверка памяти и регистров, см. EEVBlog 499 – Что такое JTAG и пограничное сканирование?
[JTAG] был первоначально разработан инженерами-электронщиками для тестирования печатных плат с использованием граничного сканирования … [и] также широко используется для портов отладки IC. На рынке встраиваемых процессоров практически все современные процессоры реализуют JTAG, когда у них достаточно контактов. При разработке встроенных систем отладчики взаимодействуют с микросхемами с помощью JTAG для выполнения таких операций, как пошаговое выполнение и установка точек останова.
EJTAG является расширением MIPS для JTAG
EJTAG повторно использует выводы IEEE JTAG Boundary Scan для базового интерфейса отладки
Чтобы снизить затраты на внутри кристалла и минимизировать накладные расходы целевой системы, MIPS EJTAG использует широко используемые выводы IEEE JTAG для своих функций отладки. Используя специальную схему отладки на кристалле, EJTAG обеспечивает управление запуском, точки останова как для данных, так и для инструкций, трассировку счетчика программ в реальном времени. Кроме того, отдельные лицензиаты могут при желании добавлять дополнительные функции.Такие функции могут включать сложные точки останова и функции профилирования выполнения.
On-chip debug предоставляет некоторые новые инструменты для отладки встроенных процессоров, которые позволяют избежать ограничений традиционных инструментов отладки оборудования. Например, невозможно использовать логический анализатор для отслеживания операций, которые происходят между ЦП и внутренними кэшами данных и инструкций. Но встроенный EJTAG может отслеживать эти операции. Кроме того, использование внутрисхемных эмуляторов с высокоскоростными системами часто проблематично, поскольку они влияют на характеристики загрузки шины в системе и могут вызвать в системе ошибки, связанные с инструментами.Кроме того, они редко доступны для единственной в своем роде системы на кристалле. Наконец, для некоторых решений требуются специальные микросхемы, обеспечивающие дополнительные управляющие сигналы и шины. Но это дополнительные накладные расходы на дизайн как микросхемы, так и платы, и это увеличивает драгоценное время на цикл продукта. EJTAG дает те же результаты без дополнительных затрат времени и средств.
EETimes: ненавязчивая отладка на кристалле …
В чем разница между jtag и Ejtag?
jtag vs ejtag
& highlight =
& highlight =
& highlight =
& highlight =
& highlight =
Обзор Распространение высокопроизводительных 32- и 64-разрядных процессоров RISC стало благом для разработчиков следующего системы генерации в цифровой бытовой электронике, информационных устройствах, телевизионных приставках и приложениях для автоматизации делопроизводства.Благодаря новым методологиям проектирования и достижениям в производственных процессах, мощные процессоры RISC теперь могут быть легко интегрированы в различные специализированные ASIC. Но с этой новой возможностью приходит традиционное бремя предоставления эффективных средств отладки и разработки.
С одной стороны, мощное программное обеспечение и инструменты разработки, которые поставляются с 32-разрядной и 64-разрядной процессорной архитектурой MIPS RISC, такие как высокооптимизированные компиляторы и интегрированные среды разработки, а также программное обеспечение для модульных операционных систем реального времени делают разработку программного обеспечения Полегче.Но, в отличие от традиционного прикладного программного обеспечения для рабочих станций или ПК, которое выполняется на той же платформе, на которой оно разработано, встроенное системное программное обеспечение будет выполняться в отдельной целевой системе с чрезвычайно ограниченными ресурсами памяти и ввода-вывода. Отладка и интеграция аппаратного и программного обеспечения могут стать серьезным препятствием для быстрой разработки прототипа и, в конечном итоге, для выхода в окно рыночных возможностей.
MIPS Technologies, Inc. и лицензиаты архитектуры MIPS разработали самый широкий в отрасли спектр новых 32-разрядных и 64-разрядных реализаций процессоров, охватывающих весь спектр цены, производительности и опций встроенной периферии. Через лицензиатов полупроводников MIPS OEM-производители систем могут выбрать подходящую конфигурацию процессора и выбрать из широкого спектра периферийных опций. Затем они могут быстро внедрить эту конструкцию в специализированные ASIC, обеспечивающие оптимальное энергопотребление и компактный размер для своего приложения.
Но как быстро и недорого отладить единственную в своем роде систему на кристалле? Как правило, средства разработки оборудования отстают от появления архитектур нового поколения на значительное время и обычно следуют только тогда, когда существует большое сообщество разработчиков.Когда вы разрабатываете единственную в своем роде систему, вам нужен более быстрый вариант.
MIPS Technologies, Inc. и консорциум MIPS RISC разработали специализированную технологию аппаратной отладки под названием MIPS EJTAG. EJTAG недорог, прост в реализации и предоставляет возможности ненавязчивой отладки для любой процессорной системы на кристалле MIPS RISC, которая включает его. Он был опубликован для использования в качестве отраслевого стандарта и задокументирован в MIPS Licensees, MIPS EJTAG Debug Solution, Ver.2.0, доступный у MIPS Technologies, Inc. и других лицензиатов MIPS RISC. Помимо спецификаций, EJTAG внедряется в нескольких новых процессорах MIPS, включая семейство TinyRISC от LSI Logic, семейство TX49 от Toshiba и 32-разрядные процессорные ядра JADE от MIPS Technologies, Inc.
EJTAG повторно использует контакты сканирования границ IEEE JTAG для Базовый интерфейс отладки Чтобы снизить затраты на кристалл и минимизировать накладные расходы целевой системы, MIPS EJTAG использует широко используемые выводы IEEE JTAG для своих функций отладки.Используя специальную схему отладки на кристалле, EJTAG обеспечивает управление запуском, точки останова как для данных, так и для инструкций, трассировку счетчика программ в реальном времени. Кроме того, отдельные лицензиаты могут при желании добавлять дополнительные функции. Такие функции могут включать сложные точки останова и функции профилирования выполнения.
Встроенная отладка предоставляет несколько новых инструментов для отладки встроенных процессоров, которые позволяют избежать ограничений традиционных инструментов отладки оборудования. Например, невозможно использовать логический анализатор для отслеживания операций, которые происходят между ЦП и внутренними кэшами данных и инструкций.Но встроенный EJTAG может отслеживать эти операции. Кроме того, использование внутрисхемных эмуляторов с высокоскоростными системами часто проблематично, поскольку они влияют на характеристики загрузки шины в системе и могут вызвать в системе ошибки, связанные с инструментами. Кроме того, они редко доступны для единственной в своем роде системы на кристалле. Наконец, для некоторых решений требуются специальные микросхемы, обеспечивающие дополнительные управляющие сигналы и шины. Но это дополнительные накладные расходы на дизайн как микросхемы, так и платы, и это увеличивает драгоценное время на цикл продукта.EJTAG дает те же результаты без дополнительных затрат времени и средств.
EJTAG использует спецификацию 5-контактного JTAG IEEE 1149.1 для связи вне кристалла. Эти сигналы, называемые портом тестового доступа или TAP, включают TRST (сброс), TCK (часы), TMS (выбор тестового режима), TDI (вход данных) и TDO (выход данных). Внутренне, как показано на рисунке 1, EJTAG предоставляет набор регистров инструкций, данных и управления, а также схемы для доступа к шинам адреса и данных.
Посмотрите ссылку:
h ** p: // www.amslink.com/file/mipsart1.html
❗
mips Профиль EJTAG – Программист искал
EJTAG
: Расширение MIPS
JTAG.
Он использует инфраструктуру, предоставляемую стандартом IEEE 1149.1 JTAG Test Access Port (TAP) для предоставления внешнего интерфейса, и расширяет набор инструкций MIPS и архитектуры привилегированных ресурсов, чтобы обеспечить стандартную архитектуру программного обеспечения для интегрированной отладки системы.
《
смотри, мипсы бегут
》
Перед прочтением этой статьи прочтите:
jtag
Стандарт интерфейса
. docx
«EJTAG»
Перед отладкой поддержки
—
Инструкция точки останова и
CP0
Пункт наблюдения
МИПС
Архитектура в
EJTAG
До ввода в эксплуатацию блок, казалось, существовал много лет, поэтому есть некоторые традиционные функции отладки, в том числе
перерыв
Директива, которая просто приводит к исключению,
Процессор
Но также для достижения оборудования до четырех точек наблюдения, несколько
CP0
Регистры управления, каждая точка наблюдения указывает виртуальный адрес, для проверки каждой операции выборки, сохранения и загрузки, это вызовет исключение, если адреса совпадают, и
EJTAG
По сравнению с точкой наблюдения, а не сопоставлением нечетких адресов, конечно, после того, как точка наблюдения просто вызывает аномальный триггер, ее нельзя использовать для отладки обработки исключений.
Компоненты и опции EJTAG
Аппаратная поддержка EJTAG состоит из нескольких отдельных компонентов: расширения ядра процессора MIPS, тестового порта доступа EJTAG, регистра управления отладкой и блока аппаратной точки останова.
Расширения ядра процессора EJTAG
Процессор MIPS или ядро, поддерживающее EJTAG
должен поддерживать:
• Режим отладки, связанные исключения и выделенный вектор отладки
• Расширения набора команд: SDBBP (точка останова отладки программного обеспечения) и DERET (возврат исключения отладки)
• Регистры CP0: Debug, DEPC и DESAVE
Следующие зависящие от реализации
параметры
:
• Отладочный сегмент с отображением в память (dseg) (необязательно)
• Функция пошагового выполнения не является обязательной.Наличие или отсутствие возможности одноэтапного выполнения указывается для отладки программного обеспечения через регистр отладки CP0.
• Запрос на прерывание отладки от TAP через тестовый сигнал DINT или через зависящий от реализации внутренний сигнал является необязательным.
•
Порт тестового доступа (TAP) не является обязательным.
.
• Аппаратный блок точки останова (HBU) не является обязательным. Обратите внимание, что это необходимо, если реализована CBT.
• Блок Complex Break and Trigger (CBT) не является обязательным.
•
Регистр управления отладкой (DCR) не является обязательным.
. Обратите внимание, что это требуется, если реализован HBU или CBT.
• Функция PC Sampling EJTAG не является обязательной.
• Функция Fast Debug Channel EJTAG не является обязательной.
В режим отладки входит только исключение отладки. Выход из него происходит либо в результате выполнения инструкции DERET, либо в результате сброса или мягкого сброса.
Когда процессор работает в режиме отладки, он имеет доступ к тем же ресурсам, инструкциям и регистрам CP0, что и в режиме ядра.Ограничения на доступ в режиме ядра (ненулевые ссылки сопроцессора, доступ к расширенной адресации, управляемой UX, SX, KX и т. Д.) В равной степени применяются к режиму отладки, но режим отладки предоставляет некоторые дополнительные возможности, описанные в этой главе.
Другие режимы процессора (режим ядра, режим супервизора, режим пользователя) в совокупности считаются режимом без отладки. Программное обеспечение отладки может определить, находится ли процессор в режиме без отладки или в режиме отладки, с помощью бита DM в регистре отладки.
курок
отлаживать
К ненормальным условиям относятся: выполнение инструкций (
перерыв
,
SDBBP
), Аппаратные точки останова, внешние
ВМЯТИНА
Прерывать
отлаживать
Процесс обработки исключений
Адресное пространство режима отладки
Доступ в режиме отладки к несопоставленному адресному пространству идентичен режиму ядра.Сопоставленные адреса доступны как в режиме ядра.
Кроме того, необязательный некэшированный и неотображенный сегмент отладки dseg (область EJTAG) появляется в диапазоне адресов от 0xFFFF FFFF FF20 0000 до 0xFFFF FFFF FF3F FFFF. Таким образом, сегмент dseg появляется в части kseg сегмента совместимости.
Зависящее от реализации значение бита NoDCR в регистре отладки указывает на присутствие сегмента dseg. Если сегмент dseg отсутствует, то все транзакции от процессора в режиме отладки переходят в адресное пространство режима ядра.Программное обеспечение отладки должно проверить бит DebugNoDCR перед попыткой доступа к сегменту dseg.
Сегмент dseg подразделяется на сегмент dmseg (память EJTAG) и сегмент drseg (регистры EJTAG). Сегмент dmseg используется, когда зонд обслуживает сегмент памяти. Сегмент drseg используется при доступе к отображенным в память регистрам отладки.
Доступ к dmseg (память EJTAG) Диапазон адресов
когда ProbEn равен 0 для доступа к сегменту dmseg, отладочное программное обеспечение обращалось к сегменту dmseg
когда бит ProbEn был равен 0, что указывает на отсутствие доступного зонда для обслуживания запроса.Программное обеспечение отладки должно прочитать состояние бита ProbEn в регистре DCR, прежде чем пытаться ссылаться на сегмент dmseg. Однако доступ к сегменту dmseg, когда ProbEn равен 0, может произойти, потому что существует внутренняя гонка между программным обеспечением отладки, выбирающим бит ProbEn как 1, и зондом, сбрасывающим его в 0. Следовательно, зонд не может предполагать, что ссылка на сегмент dmseg никогда не возникает, если бит ProbEn динамически сбрасывается в 0. Если программное обеспечение отладки ссылается на сегмент dmseg, когда ProbEn равен 0, ссылка зависает, пока она не будет удовлетворена зондом.
Доступ к drseg (регистры EJTAG) Диапазон адресов
Получение инструкций из drseg не допускается. Работа процессора НЕ ОПРЕДЕЛЕНА, если процессор пытается получить команду из сегмента drseg.
Когда бит NoDCR равен 0 в регистре отладки, это означает, что процессору разрешен доступ ко всему сегменту drseg, и поэтому ответ происходит на все транзакции в сегменте drseg.
Регистр DCR по смещению 0x0000 в сегменте drseg всегда доступен, если присутствует сегмент dseg.Ожидается, что отладочное программное обеспечение будет читать регистр DCR, чтобы определить, какие еще регистры с отображением в память существуют в drseg.
Исключения в режиме отладки
Обработка исключений, сгенерированных в режиме отладки, за исключением сбросов и программных сбросов, отличается от тех исключений, сгенерированных в режиме без отладки, тем, что обновляются только регистры отладки и DEPC. Все остальные регистры CP0 не изменяются из-за исключения, сделанного в режиме отладки. Вектор исключения равен вектору исключения отладки (см.
Раздел 2.3.2 на странице 44
), а процессор остается в режиме отладки.
Только некоторые события исключения режима без отладки вызывают исключения в режиме отладки. Остальные события заблокированы.
Обработчик отладки несет ответственность за сохранение содержимого регистров Debug, DEPC и DESAVE до того, как могут возникнуть вложенные записи в обработчик в векторе исключения отладки. Обработчик возвращается к обработчику исключения отладки с помощью инструкции перехода, а не DERET, чтобы процессор оставался в режиме отладки.
Исключения при неточных ошибках
В режиме отладки возможны исключения из-за неточных ошибок из-за ошибки шины при выборке инструкций или доступа к данным, ошибки кеша или проверки машины.
Бит IEXI в регистре отладки блокирует неточные исключения ошибок при входе или повторном входе в режим отладки. Они могут быть повторно включены обработчиком исключений отладки после сохранения достаточного контекста, чтобы обеспечить безопасный повторный вход в режим отладки и обработчик отладки.
Ожидающие исключения из-за ошибок шины выборки команд, ошибок шины доступа к данным, ошибок кэша и машинных проверок указываются и контролируются битами IBusEP, DBusEP, CacheEP и MCheckP в регистре отладки.
EJTAG представляет новую инструкцию точки останова, SDBBP, которая отличается от инструкций MIPS32 и MIPS64 BREAK тем, что результирующее исключение, такое как одношаговые и аппаратные исключения отладки точки останова, описанные ниже, переводит процессор в режим отладки и может получить связанный с ним код обработчика. из памяти EJTAG.
Отлаживать—-
Биты конфигурации и управления имеют
DEPC —– исключение отладки
После окончания обратного адреса для
Deret
Инструкции по использованию
DSAVE —-
для
отлаживать
Служба обработчика исключений в качестве временного регистра содержит другие регистры памяти общего назначения, так что другой регистр общего назначения готов к использованию.
Ниже приведены некоторые
Отлаживать
Реестр:
Регистр отладки используется для управления исключением отладки и предоставления информации о причине отладки.
исключение.
Только бит DM и поле EJTAGver действительны при чтении из режима без отладки; значение всех остальных битов и полей НЕПРЕДСКАЗУЕМО. Работа процессора НЕ ОПРЕДЕЛЕНА, если регистр отладки записан из неотладочной
режим.
Некоторые биты и поля обновляются только при исключениях отладки и / или исключениях в режиме отладки, как показано ниже:
• DSS, DBp, DDBL, DDBS, DIB, DINT обновляются как при отладочных исключениях, так и при исключениях в режимах отладки.
• DExcCode обновляется при исключениях в режиме отладки и не определен после исключения отладки.
• Halt и Doze обновляются при исключении отладки и не определены после исключения в режиме отладки.
• DBD обновляется как при отладке, так и при исключениях в режимах отладки.
NoDCR:
Только чтение
немного
Указывая
dseg
это существует
LSMN
:Если ты хочешь
dseg
Исчез, установив
немного
для
1
,Несмотря на то
отлаживать
Режим также, чтобы получить доступ к области памяти, которую нужно покрыть, что сделало бы
EJTAG
Большая часть системы управления не может быть использована, поэтому только на определенном
загрузить / сохранить
Инструкция до и после использования
IEXI
: Этот
немного
Ставить
1
При задержке неточного исключения.Когда по умолчанию установлен вход в режим отладки.
1
Ясно, уходя
0
, Но можно написать, как только станет понятно, было отложено исключение происходит сразу дома
1
Когда задерживается ненормальным ненормальным
отложить бит
Просмотр на:
DSS, DBp, DDBL, DDBS, DIB, DINT
:
причина
отлаживать
Причина аномалии, только чтение
немного
, Запишите, что вызывает
отлаживать
аномальный
DExcCode
: Записи
отлаживать
Другое ненаступление аномалий
отлаживать
Причина исключения при нормальных обстоятельствах записывается в
причина
регистр
ExcCode
Поле, сначала введите
отлаживать
Аномальное, неопределенное поле
Порт доступа для тестирования EJTAG
EJTAG
Этот белый в
JTAG
На основе инструкции увеличения и регистров, соответствующих дополнительным функциям отладки, поэтому
КРАН
с участием
Контроллер TAP
Одинаковы:
Здесь выберите несколько терминов
Регистр данных (TAP Instruction DATA, ALL или FASTDATA)
Регистр данных чтения / записи используется для передачи кода операции и данных во время обращений к процессору. Ширина регистра данных составляет 32 бита для 32-битных процессоров и 64 бита для 64-битных процессоров.
Значение, считываемое в регистре данных, допустимо, только если доступ процессора для записи ожидает, и в этом случае регистр данных содержит значение сохранения. Значение, записанное в регистр данных, используется только в том случае, если доступ процессора для ожидающего чтения завершается после этого, и в этом случае записанное значение данных является значением для выборки или загрузки. Такое поведение подразумевает, что регистр данных не является той ячейкой памяти, где ранее записанное значение может быть прочитано впоследствии.
Адресный регистр (АДРЕС инструкции TAP или ВСЕ)
Регистр адреса только для чтения предоставляет адрес для доступа процессора. Ширина регистра соответствует размеру физического адреса в реализации процессора (от 32 до 64 бит). Конкретная длина определяется путем сдвига в адресном регистре, потому что длина нигде не указывается.
Значение, прочитанное в регистре, действительно, если доступ к процессору ожидает; в противном случае значение не определено.
Два или три младших бита регистра используются с полем Psz из регистра управления EJTAG, чтобы указать размер и позицию данных ожидающей передачи доступа процессора. Эти биты не берутся напрямую из адреса, на который ссылается загрузка / сохранение.
Регистр управления EJTAG (ECR) (УПРАВЛЕНИЕ инструкциями TAP или ВСЕ)
32-битный регистр управления EJTAG (ECR) обрабатывает сброс процессора и индикацию мягкого сброса, индикацию режима отладки, начало, конец и размер доступа, а также индикацию чтения / записи.ЕКР также:
• контролирует расположение вектора отладки и индикацию обращений к обслуживаемому процессору,
• разрешает запрос прерывания отладки,
• указывает на режим пониженного энергопотребления процессора, и
• допускает зависящие от реализации сбросы процессора и периферийных устройств.
Регистр управления EJTAG не обновляется / записывается в состоянии Update-DR, если не произошел сброс; то есть Rocc (бит 31) либо уже равен 0, либо записывается в 0 одновременно. Это условие обеспечивает правильную обработку обращений к процессору после сброса.
Регистр управления отладкой
Регистр управления отладкой (DCR) – это регистр с отображением в память, который может быть реализован как часть ядра процессора или внешнего логического блока. Он указывает на доступность и статус функций EJTAG. Отображенная в память область, содержащая DCR, доступна программному обеспечению только в режиме отладки.
Наличие или отсутствие DCR указывается в регистре отладки CP0.
Аппаратный блок точки останова
Модуль аппаратной точки останова реализует отображенные в память регистры, которые управляют аппаратными точками останова инструкций и данных. Отображенная в память область, содержащая регистры аппаратных точек останова, доступна программному обеспечению только в режиме отладки.
Наличие или отсутствие возможности аппаратной точки останова указывается для отладки программного обеспечения в DCR.
Аппаратные перерывы в инструкциях имеют преимущество перед перерывами отладки программного обеспечения в том, что их можно установить в любой адресной области.Более того, если память не может быть изменена путем вставки кодов SDBBP, все же можно использовать аппаратные разрывы. Аппаратные точки останова на данные позволяют прерывания при загрузке / сохранении.
EJTAG реализует два типа простых разрывов:
• Разрывы команд, в которых пауза может быть установлена при выборке команды с определенного виртуального адреса.
• Разрывы данных, в которых разрыв может быть установлен для ссылки загрузки / сохранения с определенного виртуального адреса, который дополнительно может быть квалифицирован значением данных.
Может быть реализовано до 15 каналов прерывания каждого типа, и каждый канал прерывания может быть запрограммирован с адресом, маской адреса, ASID и типом ссылки.
Спецификация EJTAG версии 4.00 и выше также определяет сложные точки останова. Есть много различных типов сложных точек останова, определяющих сложную главу разрыва. Как и простые разрывы, сложные разрывы могут вызывать сигнал запуска, который можно использовать для включения или отключения трассировки через архитектуру MIPS PDtrace.
Канал быстрой отладки
EJTAG версии 5.0 добавляет дополнительный механизм Fast Debug Channel (FDC) для передачи данных между отладочным хостом / зондом и целью. Механизм FDC позволяет пользователю настроить передачу данных, а затем возобновить нормальную работу. Передача данных происходит в фоновом режиме, и целевой ЦП может либо периодически проверять статус передачи, либо прерываться в конце передачи.
Механизм FDC добавляет две структуры «первым пришел – первым обслужен» (FIFO), которые отображаются в карту физических адресов целевого ЦП.Зонд использует новую инструкцию FDC TAP для доступа к этим FIFO, в то время как сам ЦП обращается к ним, используя доступ к памяти.
По сравнению с ранее существовавшим механизмом FASTDATA (см.
Раздел 4.4.3 «Инструкция FASTDATA»
), основным преимуществом FDC является то, что он не требует блокировки ЦП, когда зонд читает или записывает в FIFO передачи данных. Это значительно снижает нагрузку на ЦП и снижает нагрузку на код, выполняемый на ЦП, при передаче данных.
Блок комплексной точки останова и триггера (CBT)
Наличие или отсутствие этого необязательного блока указывается битом (10) в регистре DCR. Каждая из перечисленных функций этого блока является необязательной, и наличие или отсутствие этой функции указывается битами в регистре CBTcontrol, который представляет собой регистр с отображением адресов drseg по адресу 0x8000.
ПК образец
ПК
Выборка обеспечивает способ, не влияющий на нормальное выполнение действий по сбору статистической информации, работает система,
ПК
Периодическая выборка текущего ракурса
ПК
Значение, это значение может быть извлечено из записей для проверки на месте, а затем, позволяя программисту увидеть чувство единства в конфигурации программного обеспечения гистограммы выборки в течение некоторого времени.
Процессор
Что происходило в течение большей части рабочего цикла.Эта функция не только полезна, но и очень хорошо знакома: в последние несколько лет появились системы на основе прерываний.
ПК
Отбор проб, это способ проведения удара. По частоте дискретизации
DCR
Зарегистрируйте числовые поля для управления.
PDtrace
PDtrace
Вы можете отслеживать выполнение программы,
образец ПК
Только записанная казнь
ПК
,но
PDtrace
Данные отслеживания могут быть прочитаны даже для чтения и записи значений адресов.
Отслеживание реализации не требует большого количества данных, если предполагается, что программа анализа двоичного кода отслеживала программу, поэтому, когда порядок выполнения просто необходимо знать
Процессор
Порядок того, насколько далеко, при столкновении с условным переходом, нужно только знать, выполняются ли условия, но регистру инструкции перехода для классов, записи дорожки требуется полный адрес.
Прослеживание информации в небольшой памяти на кристалле в течение некоторого времени, хотя и просто и быстро, но из-за того, что кэш на кристалле очень мал, обычно выполняется только запись. Когда информация трассировки может поступать в местный зонд, возможно, она была записана.
Одношаговое исполнение
EJTAG обеспечивает поддержку пошагового выполнения программ и операционных систем, не требуя, чтобы код находился в ОЗУ.
EJTAG Как управлять cpu
1.Будет использовать зонд
JTAG
Настраивать
ECR
Отметка регистрации (
ProbTrap
), Так что вход в исключение отладки
0XFF20 0200 —–
роды
dmseg
Тогда зонд может быть предоставлен
ECR
(
EjtagBrk
) Ввод запроса исключения отладки или установленной точки останова отладки или аппаратного запуска в исключение отладки точки наблюдения, когда исключение отладки
dmseg
Начинается выборка команд, так что управление датчиком получается.
2.
Вы можете отправить зонд
EJTAGBOOT
Command, а затем дождитесь следующего
Процессор
После сброса
Процессор
Мы пошли из
dmseg
Прочтите инструкцию.
Как зонд ( dmseg ) Выполнить код
1. шт.
Сторона машины, читая
ejtag
из
ECR
Контрольный регистр
(ir = 10)
, Внимание также переведет строку в новое значение, прочитайте, чтобы увидеть
DM (бит3)
Ли
1,
Это шоу, которое уже есть в системе
отлаживать
Режим
, перейти 3,
иначе
перейти 2
2.
написать
ECR (ir = 10),
Настраивать
ПробТрап (бит14) 1,
Делать
отлаживать
Точки вектора исключения
FF20 0200
(роды
dmseg
), Тогда положим
EjtagBrk
для
(бит12)
1, запрос к системе
отлаживать
аномальный,
перейти 1
3.Вид
ECR
регистр
PrAcc (бит 18)
Это 1 для
1
Это указывает
Процессор
к
ejtag dmseg
Решать вопросы доступа
, ECR
регистр
PRnW (бит19)
Он указывает на чтение или запись,
Psz (бит 30:29)
Укажите ширину доступа
, перейти 4,
иначе
перейти 1
4.
читать
ejtag
из
адрес reg (ir = 8)
К
адрес
Переменная, получить
Процессор
Адрес, который вы хотите посетить
,
Если операция записи
goto 5,
В противном случае прочтите
goto 6
5.
читать
ejtag
из
регистр данных (ir = 9),
Прочтите содержание написанного мне
,
Если адрес больше чем
0xff200200, (адрес-0xff200200) / 4
да
codebuf
Компенсировать
офф,
тогда
codebuf [offs] = данные,
Если адрес меньше
0xff200200, параметр, стек = данные
Ждать
, перейти 7
6.Если адрес больше чем
0xff200200, (адрес-0xff200200) / 4
да
codebuf
Компенсировать
офф,
тогда
data = codebuf [offs],
Если адрес меньше
0xff200200, данные = параметр, стек
Ждать
,
будут
данные
Писать
ejtag data reg (ir = 10), goto 7
7.
написать
ECR
Регистр очищен
PrAcc
Немного, так
Процессор
Операция доступа к памяти завершена.
ПОРТ EJTAG
МОЖЕТ УПРОСТИТЬ ПРОТОТИПИРОВАНИЕ
Как сообщает Electronic Engineering Times, с использованием встроенного микропроцессора
количество ядер в конструкции "система на кристалле" существенно растет, но
проблемы эффективной эмуляции и отладки встроенного оборудования и
программное обеспечение.Следовательно, системные инженеры и программисты должны иметь больше
сложные инструменты для выполнения необходимой внутрисхемной эмуляции и
отладки задач, а также для повышения продуктивности программиста, чтобы остаться
конкурентоспособный.
В частности, самая большая оставшаяся проблема - это сложная задача.
эмуляции и отладки программного обеспечения в реальной среде после того, как
кремний доступен. Встроенные ядра ЦП продолжают быть более сложными, поскольку
они достигают более высокой производительности: более крупные программы варьируются от 8 до 16
Мбайт.Расширенный JTAG (Joint Test Action Group) или отладка на кристалле являются популярными.
Метод установлен для процессоров на базе MIPS. Эта аппаратно-программная отладка
подход включает усовершенствованный модуль JTAG и блок поддержки отладки (DSU).
Модуль EJTAG использует стандартные контакты JTAG, расширенные контактами для
выводит информацию трассировки в реальном времени, а также контролирует регистры прерывания DSU и
Ресурсы ЦП. DSU встроен в ЦП MIPS и позволяет контролировать
внутреннее состояние ЦП MIPS, которое приводит к исключениям прерывания отладки или
триггеры.EJTAG был недавно обновлен, чтобы обеспечить системного инженера и
программисту значительно более богатый набор функций. Эти дополнения сложны
точки останова и трассировка программного счетчика в реальном времени, которая поддерживается четырьмя
до 20 дополнительных пинов. Захваченное значение счетчика программы может быть синхронизировано
из ЦП 1, 2, 4 или 8 бит за раз. Часы трассировки - это процессор
часы, разделенные на 1, 2, 3 или 4. От трех до 12 бит информации о состоянии
синхронизируется со значением программного счетчика.Обе функции получают
повышенное внимание системной инженерии для эффективной отладки программ.
Сложная точка останова используется программистом для запуска трассировки или
запускать точку останова. Сложные точки останова, а также простые могут быть
используется для запуска операции трассировки (ЦП продолжает работать, выводя
значения счетчика программы) или операция прерывания, при которой процессор останавливается или
вводит исключение отладки программного обеспечения.
С другой стороны, трассировка программного счетчика в реальном времени позволяет
программист, чтобы продолжить выполнение программы, но все еще видеть поток
программа.Следовательно, создается набор значений, нацеленных на адрес
каждая полученная инструкция. Вооружившись этими данными, программист может
восстановить последовательность инструкций, которые встроенный ЦП использовал по порядку
для проверки конкретной операции.
LSI Logic включает сложные точки останова и возможность трассировки в реальном времени в
его новая встроенная поддержка внутрисхемной эмуляции и отладки SerialICE-2.
Этот инструмент - первый раз, когда этот уровень сложной точки останова был
включен для отладки на кристалле и впервые является программируемым состоянием
машина была реализована, чтобы установить условие триггера.Сложный
такие встроенные функции, как эти, значительно расширяют возможности программистов.
продуктивность, поскольку они могут значительно быстрее обнаруживать ошибки в программе.
Эти встроенные возможности отладки фактически предоставляют программистам два уровня
из инструментов: симулятор набора команд с аппаратной / программной симуляцией
и внутрисистемная отладка.
Даже до появления кремния программисты могут использовать набор команд
симулятор, чтобы начать тестирование производительности программы и определить, как
компромиссы будут выполнены в разделах программы.Косимуляция
среда подводит программистов к точке, где они могут выполнять программу
против предлагаемого оборудования в среде моделирования. Следовательно, они могут
начать отладку до того, как кремний станет доступен. SerialICE-2 предоставляет им
средство для завершения отладки и тестирования кремния и получения
их окончательный дизайн чипа.
До сих пор простые программные точки останова устанавливались на значение адреса.
во многих средах отладки MIPS. Простое и сложное оборудование
точки останова и программный счетчик трассировки в реальном времени производят встроенный эмулятор
возможность, которая повышает отладку и эмуляцию на кристалле до уровня
автономный эмулятор.Сложные точки останова и трассировка счетчика программ
особенно важные функции отладки, когда программист осознает свою или
ее программа выполняется очень неправильно из-за комбинации событий.
Например, он или она может столкнуться с логической ошибкой в программе, вызванной
адрес, который неправильно рассчитан и получает неправильный указатель
значение. И это происходит только при превышении значения индекса.
Следовательно, теперь программист запускает поиск определенного набора
адреса с определенным набором значений данных.Но этот набор условий
происходит только после того, как в этом конкретном цикле было вычислено определенное число
раз, потому что программист индексирует через определенную матрицу.
Виновником подобного случая является неясная ошибка, чрезвычайно серьезная.
трудно отследить, если программист не может установить многоуровневый набор
условия для срабатывания. Вот где действительно продуктивность программиста
сияет. С одной стороны, программист может вручную пройти через эти
операций и установите несколько простых точек останова для проверки всего
проблемный массив, элемент за элементом.С другой стороны, он или она может установить
сложная точка останова, которая устанавливает различные условия запуска на разных
указывает на рассматриваемый массив и обращает внимание на неуловимую ошибку
значительно быстрее.
В ASIC на основе MIPS блок EJTAG может быть как ведущим, так и ведомым на
встроенная шина, а DSU встроен в ЦП MIPS. На базе MIPS
система-на-кристалле с использованием ядра процессора TinyRISC CW4101, например,
блоки EJTAG и DSU находятся во встроенном ядре ЦП MIPS.В
Модуль EJTAG использует пять контактов интерфейса JTAG для управления DSU.
Эти контакты являются входом тестовых часов (TCK), входом выбора тестового режима (TMS), тестовым
ввод данных (TDI), вывод тестовых данных (TDO) и вход тестового сброса (TRST).
Встроенный ЦП последовательно обращается к внешней памяти на пробнике процессора.
через контакты JTAG, что исключает использование системной памяти для отладки
рутины. Пробник процессора - это аппаратная система, содержащая быстрые
память трассировки в реальном времени для записи выходных данных и логики трассировки счетчика программ
для управления встроенным блоком отладки через интерфейс EJTAG.В
зонд процессора управляется программным счетчиком или рабочей станцией и
подключение к цели осуществляется через интерфейс EJTAG.
Встроенная логика отладки во встроенном ядре ЦП включает в себя необходимые
логика для аппаратных точек останова, исключения отладки, памяти и регистра
отображение / модификация и трассировка счетчика программ. Эта программа счетчика трассировки
позволяет отслеживать выполнение процессора даже при включенных кэшах. Когда
внутренний кеш включен, обычные внутрисхемные эмуляторы не могут использовать
циклы внешней шины для анализа выполнения программы.Причина в том, что этот автобус
используется только для пополнения кеша, что делает выполнение программы незаметным.
Однако встроенная логика отладки EJTAG обнаруживает и сообщает о любых изменениях в
поток программы. Ветви кода выводятся через порт отладки EJTAG в
в реальном времени и фиксируются в памяти трассировки процессора в реальном времени
зонд. Программное обеспечение главного компьютера затем восстанавливает адреса всех
выполняемые инструкции путем постобработки необработанных данных трассировки. В зависимости от
программное обеспечение хоста, список трассировки отображается как исходные строки C и / или
строки кода сборки.DSU поддерживает три различных типа прерывания каналов. Каждый привык
сравнить адрес и / или информацию о данных с содержанием
шины встроенного ядра процессора. Канал разрыва адреса инструкции сравнивает
на виртуальный адрес инструкции. Канал прерывания данных сравнивается с
адрес данных и сопроводительные данные. Эти автобусы содержат действительные данные, когда
они используются либо для загрузки, либо для хранения инструкции. Третий
канал разрыва шины процессора можно настроить для сравнения с физическим
адрес инструкции и некэшированный код инструкции, физический адрес данных
и некэшированные данные для хранения или загрузки, а также физический адрес и данные для хранения
область кеша.Программируемый конечный автомат запускает каждое сложное прерывание и условия
контролировать переход между состояниями. Разрыв или срабатывание может произойти, когда
конкретное состояние и условия соблюдены. Условия определяются путем объединения
существующие разрывы EJTAG для команд, данных и шины процессора. Каждый
condition получает входные данные от всех разрывов. Условия верны, когда
данная комбинация перерывов верна. Может быть от одного до восьми сложных
блоки точки останова в реализации.Сигналы состояния из всех состояний отправляются в каждое состояние. Штат
изменение происходит на основе схемы «если-то-еще-если-то» и возможных
использование счетчика для части «если-то». Каждое состояние может быть активным или
неактивен, и одновременно может быть активным несколько состояний.
Количество активных состояний в сеансе отладки представляет собой количество
сложные конечные автоматы прерывания и постоянны во время сеанса отладки.
Затем изменение состояния происходит, когда активное состояние в конечном автомате
переводит свой токен активности в неактивное состояние.Может быть один
восемь состояний в реализации.
GoodFET – MIPS EJTAG
Это приложение используется для программирования и отладки процессоров MIPS.
реализация протокола EJTAG.
Распиновка такая же, как у полевого транзистора MSP430, поэтому потребуется переходник.
для отладки целей, таких как маршрутизаторы Linksys WRT54G.
Клиенты
Простой клиент на Python доступен в svn как `goodfet.mips ‘.
Статус
Это совершенно новая цель, и еще не подтверждена
полезный или даже функциональный.
Развитие
Перед любой транзакцией глагол SETUP (0x10) должен быть отправлен на
приложение JTAG, чтобы правильно настроить направления контактов ввода / вывода. После
что глаголы START (0x20) и STOP (0x21) могут использоваться для ввода и
выйти из TAP. HALTCPU (0xA0) и RELEASECPU (0xA1) следует использовать для
Остановить ЦП во время доступа к памяти, после чего отпустить.
Все операции чтения и записи 32-битные, но может быть добавлена поддержка 64-битных
как только мы приобретем тестовое оборудование. IR_SHIFT (0x80) и DR_SHIFT
(0x80) доступны для прямого доступа к JTAG, но более высокого уровня
функции также реализованы для удобства и скорости.
Глаголы
Поддерживаются следующие глаголы.
Hex
#define
Описание
0x02
PEEK
Прочитать слово из памяти в int32 [0].
0x03
POKE
Записать int32 [1] в память по адресу in32 [0].
0x10
НАСТРОЙКА
Настройте контакты ввода / вывода.
0x20
НАЧАТЬ
Начать отладку с помощью JTAG.
0x21
ОСТАНОВИТЬ
Завершить отладку JTAG.
0x7E
NOK
Нет работы
0x80
IR_SHIFT
Сдвинуть ИК.
0x81
DR_SHIFT
Сдвинуть DR.
0xC1
SETINSTRFETCH
Установить ЦП в состояние выборки инструкций.
0xC2
SETPC
Установите счетчик программ.
0xE0
WRITEMEM
Псевдоним для POKE.
0xE1
WRITEFLASH
Записать слово во флеш-память.
0xE2
READMEM
Псевдоним для PEEK.
0xE3
ERASEFLASH
Массовое стирание
0xF0
COREIP_ID
0xF1
DEVICE_ID
чтение записанное значение и WRITEM_LASHКлиентские реализации
должен выдавать ошибку во время программирования, если возвращаемое значение не соответствует
письменная стоимость. При недостаточной записи обычно остается 0xA100.
Эмуляторы, отладчики и системы трассировки Ashling для встраиваемых систем
Системы с ядрами MIPS TM
Эшлинг Vitra , Genia , Opella и Инструменты разработки PathFinder поддержка разработки на всех популярных ядрах MIPS TM .
Подробнее об инструментах для SmartMIPS.
Продукты Ashling, разработанные в сотрудничестве с MIPS TM Inc.
предоставляют мощные современные инструменты для разработки микропроцессоров и SoC
основан на новейшей технологии MIPS TM .
Полный набор инструментов разработки Ashling обеспечивает отладку на уровне исходного кода,
контроль времени выполнения и возможность отладки трассировки в реальном времени на основе MIPS TM Встроенные отладочные модули EJTAG.
Мощный отладчик исходного уровня для MIPS TM , основанный на Ashling’s
уникально мощный пользовательский интерфейс PathFinder. PathFinder работает с полной
линейка эмуляторов Vitra, Genia и Opella, а также программное обеспечение MIPSsim от MIPS Inc.
Симулятор. Предоставляется поддержка всех популярных компиляторов для MIPS TM .
архитектура.
Сетевой эмулятор Vitra и трассировка в реальном времени (полная
Лист данных Vitra)
Очень мощный эмулятор реального времени
и Trace для MIPS TM – разработка ядра
Полная среда для
разработка, отладка, оптимизация и тестирование для критичных к производительности
Приложения MIPS TM , которым требуются инструкции и трассировка данных
отладка
Память трассировки доступна в
Варианты от 64K-кадров до 512K-кадров (каждый кадр имеет ширину 128 бит)
Расширенные настраиваемые триггеры
и трассировка, включая внешний триггерный выход, внешний триггерный вход и внешний
Элементы управления отслеживанием данных
Удаленная отладка по TCP / IP
Обеспечивает загрузку программы, запуск, остановку,
аппаратные и программные точки останова, отображение и изменение регистров, а также
Отладка на уровне исходного кода
Поддерживает мультипроцессор и
отладка сопроцессора
Подключается к главному ПК с помощью
Подключение через Ethernet, RS232 или USB
Работает на MIPS на базе TM системы, которые включают встроенные модули отладки EJTAG MIPS TM (поддерживаются все версии) и MIPST PCTRACE (EJTAG v2.0x) или PDTRACE (EJTAG
v2.6x) встроенные интерфейсы трассировки в реальном времени.
Genia Networked JTAG Emulator (полный
Технические данные Genia)
Автономный MIPS TM эмулятор
Подключается к главному ПК с помощью
Подключение через Ethernet, RS232 или USB
Удаленная отладка по TCP / IP
Обеспечивает загрузку программы, запуск, остановку,
аппаратные и программные точки останова, отображение и изменение регистров, а также
Отладка на уровне исходного кода
Поддерживает мультипроцессор и DSP
отладка сопроцессора
Работает на MIPS на базе TM системы, которые включают встроенные модули отладки EJTAG MIPS TM
Genia можно легко обновить до
Vitra с возможностью трассировки, добавив карту расширения трассировки в реальном времени.
Opella JTAG Emulator начального уровня (полная
Технический паспорт Opella)
Недорогой эмулятор и
Отладчик исходного уровня для MIPS TM
Подключается к главному компьютеру через USB 1.1
подключение
Обеспечивает загрузку программы, запуск, остановку,
аппаратные и программные точки останова, отображение и изменение регистров, а также
Отладка на уровне исходного кода
Поддерживает мультипроцессор и DSP
отладка сопроцессора
Работает на MIPS на базе TM системы, которые включают встроенные модули отладки EJTAG MIPS TM .
Продукт
Витра
Genia
Опелла
PathFinder
Краткое описание
Эмулятор с режимом реального времени
Инструкция / данные Trace
Масштабируемый эмулятор с
контроль времени работы
Контроль времени выполнения начального уровня
эмулятор
Отладчик уровня исходного кода
Аппаратное обеспечение
Блок эмулятора Vitra
Эмулятор Genia
Блок эмулятора Opella
–
Эмулятор
Контроль во время выполнения и отладка с трассировкой в реальном времени
Вернуться на главную страницу Ashling |
Вернуться на главную страницу Testech
| Компилятор
| ОСРВ
| Эмулятор / Отладка
Аппаратное обеспечение для отладки на кристалле
MIPS | Электронный дизайн
Архитектура MIPS, одна из первых RISC, прошла долгий путь в плане совершенства и производительности.Это основная архитектура, лицензированная MIPS Technologies для поставщиков микросхем и FPGA. MIPS зарекомендовал себя как компактный и высокопроизводительный ЦП в телекоммуникационных системах, принтерах, периферийных устройствах и встроенных серверах. Теперь он поставляет ИС, микропроцессоры, микроконтроллеры и ASSP, а также ядра ASIC.
Процессоры
MIPS поставляются с поддержкой отладки программного обеспечения. Но с его развертыванием в качестве ядра ASSP, микроконтроллера и ASIC, ресурсы отладки на кристалле MIPS теперь включают модули EJTAG и PDTRACE. EJTAG предоставляет полный ресурс отладки на основе JTAG / TAP, а PDTRACE поддерживает EJTAG с возможностью полной трассировки инструкций и данных.
Команда точки останова MIPS BREAK вызывает исключение, как и специальные инструкции прерывания и необязательные регистры наблюдения. Регистры наблюдения могут быть запрограммированы так, чтобы вызывать конкретное исключение при любом доступе или сохранять конкретное 64-битное двойное слово. Кроме того, необязательный MMU на основе TLB может быть запрограммирован для перехвата любого доступа или, более конкретно, любого хранилища к странице памяти. Им нужен программный монитор для изменения памяти программ, вставки точек останова и выполнения других функций.
В режим отладки входит исключение отладки, которое может быть вызвано инструкцией точки останова отладки (SDBBP), одношаговой функцией после выполнения инструкции, аппаратной точкой останова по инструкциям или данным или прерыванием отладки. (Сигнал EJ_DINT или через интерфейс TAP).
Выход из режима отладки выполняется с помощью инструкции возврата исключения отладки (DRET). Аппаратное обеспечение отладки содержит три регистра (DEBUG, DEPC и DE-SAVE) в наборе регистров сопроцессора MIPS 0.
EJTAG поддерживает внешнюю память JTAG. В режиме отладки ЦП может ссылаться на I или D не в тестируемой системе. Память EJTAG отображается на процессор как физическая память, но ссылки преобразуются в транзакции TAP. Новая инструкция EJTAG SDBBP переводит процессор в режим отладки и может извлекать связанный код обработчика из памяти EJTAG.Отображенный в память сегмент отладочной памяти (dmemseg) также доступен как подсегмент сегмента отладочной памяти (dseg).
EJTAG основан на интерфейсе EJTAG / TAP. В режиме отладки пользователи могут изменять память или регистры, а также выполнять инструкции с хоста. EJTAG включает интерфейс / контроллер TAP, аппаратную точку останова и регистр управления отладкой. ЦП может перейти в режим отладки; EJTAGBOOT и NORMALBOOT устанавливаются, если вы получаете прерывание отладки при сбросе.
Дополнительный аппаратный блок PDTRACE обеспечивает возможность трассировки ядер MIPS.Для работы требуется блок управления трассировкой (TCB). TCB является интерфейсом для датчика и вне микросхемы. Он предоставляет дополнительный буфер трассировки и выполняет сжатие. В настоящее время он находится в стадии разработки. Регистр управления трассировкой управляет оборудованием PDTRACE. Установка бита в регистре включает различные возможности трассировки. PDTRACE должен поддерживать полную трассировку на скоростях выполнения процессора, по крайней мере, для трассировки инструкций.
Трассировка инструкций отслеживает выполнение инструкций и сигнализирует об изменениях в ПК.Он не должен выводить каждый адрес полученной инструкции, только дельты, которые изменяют блоки трассировки программы. Он сообщает об изменениях ПК на предмет ошибочных прогнозов, например, ветки, которые не следовали прогнозируемому поведению, от 5% до 15% примерно от 20% кода (для минимальной полосы пропускания) или все измененные ПК. PDTRACE поддерживает 16/32-битную шину трассировки для TCB. Периодически PDTRACE синхронизирует адреса трассировки с TCB. Адреса данных также сжимаются.
PDTRACE поддерживает несколько конвейеров (многозадачные процессоры).Набор выходных сигналов дублируется для каждого конвейера. Вопросы инструкции согласованы; все выданные инструкции должны быть выполнены (или сжаты) до того, как будет принят следующий набор выданных данных трассировки.