Pull to refresh

Comments 26

Вау. Вряд ли будет нужда (стлинка или перешитых стмок выше крыши, хотя изоляция, хм) и дойдут руки повторить (тем более под руками все на квалкомах, т.е. портить), но респект за саму идею :)

Впрочем одни пикчи (я роутер а не...) и текст заслуживают + :)
Спасибо.
Мир же не только на arm контроллерах держится, есть другие архитектуры, есть ПЛИС, есть микросхемы памяти. Все это надо программировать и отлаживать, а с помощью связки openocd + linux можно изготовить универсальный программатор\отладчик и бонусом заиметь еще пару плюшек)

На PearlMini мы программируем FPGA из Linux через JTAG. Причём повесили линии на SPI интерфейс. В результате сделали небольшой вспомогательный модуль, который SPI интерфейс представит в виде /dev/spi0. Потом, пока идёт фаза изучения цепочки, когда режим работы диалоговый, мы используем пины в режиме GPIO/BitBang для эмуляции JTAG. Когда дело доходит до отсылки bitstream, переключаемся в режим SPI и гоним данные на максимальной скорости. Битсрим около 1.6Мб, скорость загрузки около 900мс.


Изначально был чистый BitBang, там около минуты или даже больше грузилось.

Интересный опыт. Если есть возможность использовать готовый интерфейс SPI то конечно надо задействовать. А что использовали в качестве SPI? Что-то типа FTDI микросхему?

Видел еще интересный проект kuku.eu.org/?projects/stm8spi/stm8spi
Там задействовали SPI интерфейс Raspberry как отладочный SWIM интерфейс для микроконтроллеров STM8. Правда реализовали только загрузку прошивки.
А что использовали в качестве SPI? Что-то типа FTDI микросхему?

Нет, это встроенная периферия. Apollo Lake — полноценный x86_64 процессор, но SoC :-) У нас там Intel Atom E39xx или что-то вроде стоит. Сам FPGA реализует PCIe устройство, оно разведено на PCB. Раньше прошивку грузили из SPI флешки, подключенной к FPGA, здесь решили отказаться в целях экономии и повышения надёжности — всё равно система нами контролируется, так почему бы не грузить код из неё же. После погрузки битстрима: PCI Rescan и вуаля! Устройство на шине, грузим драйвер :)


Вообще, линейка Epiphan Pearl — по сути x86_64 компьютеры, при желании и Ubuntu поставить можно и даже периферия работать начнёт как надо (HDMI выход есть, USB 3.0 есть, так что и клавиатуру, и мышку, и монитор подключить можно).


Правда реализовали только загрузку прошивки.

В нашем случае только цель загрузки прошивки и стояла. К сожалению SPI не достаточно, что бы работать в диалоговом режиме и полностью реализовать JTAG. Только если постоянно переключаться между режимами GPIO ←→ SPI. GPIO для диалогового режима, SPI для посылки больших объёмов данных на устройство. Собственно у нас так и сделано, есть два вызова: tx_block_slow() и tx_block_fast(). Во втором переключаемся в SPI, по завершению передачи — обратно в GPIO. Логика выбора проста: если размер больше 4*8 байт — переключаемся в быстрый режим. Число взято с потолка.


Кстати, GPIO режим в результате реализовали через /dev/mem. Получилось не очень переносимо, но решили оставить унификацию до востребования. В таком режиме работы с GPIO BitBang добились времени загрузки прошивки в 10 сек.

Это Qt Creator с тёмной темой.
хорошая идея, у меня как раз валяется роутер подходящий для openwrt, надо будет попробовать.

новая жизнь старых медленных (802.11b/g) роутеров %)

Такое надо на Хабр в песочницу постить…
Было бы интересно почитать о настройке IDE и прочих программных средств для удаленной отладки по JTAG.
вотхорошее руководство . Единственно там, на мой взгляд, используется непривычная система сборки qbs.
К сожалению для qmake не смог найти примера, а самомоу составлять не было мотивации.
Вы неправильно меня поняли, или глаза меня подводят, но я в статье по ссылке не увидел ничего про удаленную отладку. Интересна именно ситуация, описанная вами в первом предложении статьи. Подробная история о том, как кто-то заботливо прицепил к целевому контроллеру недорогую железку, позволяющую пробросить настоящий JTAG или SWD через интернет и дебажить контроллер из другой точки планеты.
Сейчас через vpn зашел на устройство, зупустил openocd и подцепился gdb клиентом. Вся удаленная отладка сводится к поднятию VPN или GRE тунеля.
поддержка JTAG тоже есть, в коде она реализована. Не было подопытного, что бы продемонстрировать работу.
может, и есть. Только после одного упоминания во вступлении больше нигде о нем ничего нет.
Есть ещё virtualhere, http://www.virtualhere.com/, пробрасывает USB. На TP-Link MR3020 работает просто замечательно. Есть под очень многие платформы, в том числе и под openWRT. Удобный клиент. Один минус — денег стоит. Вот бы что-то подобное, но бесплатно.
Сейчас для топикстартера и остальных гордых собой гениев переведу, как видят эту статью люди со стороны или начинающие:
«Есть такая штуковина АБВ, у неё тут ГДЕЖ и можно запросто использовать ИКЛМ! Сейчас я туда засуну ЙЦУК и получится ЁПРСТ!». И ты сидишь такой, думаешь: ведь почти все слова знакомые, а смысла — ноль!
И наоборот: сидит специалист, смотрит на текст и хмыкает: «ичо? подумаешь, поковырял левым мизинцем в правой ноздре!».

Господа, выражать своё тщеславие на публичных серверах — полезный грех, но делать это надо ПОНЯТНЫМ ЯЗЫКОМ. И в каждом слове постоянно думать о ЦА! (вот сам лезь и переводи, что это означает!)
Для профи ваша статья — пшик, они это делают уже лет 10. Начинающий не может понять, чего вы добились (и добились ли вообще — может тупо прочли инструкцию к рутеру). Вы как-то плавно объясняйте, ЛУЧШЕ СО СХЕМАМИ, что вы достигли и какая от этого польза читающим.
Я сейчас немного практикую программировать вот эти все малины-ардуины, но в упор не понимаю, как рутер может быть «JTAG». Он может быть ADSL, Wi-Fi. А «пробросить USB через сеть» — это как и зачем? Что, можно флэшку воткнуть в сетевой разъём? Или наоборот — сетевой кабель воткнуть в USB? А что делать тем, у кого нет Sagem? Всё, волшебство не работает? Или работает, но вы забыли сказать главное? Вот-вот, бросил статью в вечность, а вы там разбирайтесь!
Статья откровенно технарская в самом отрицательном смысле — узкоспециализированная свалка терминов для одной задачи, да ещё на каком-то странноватом оборудовании. Я бы на вашем месте переписал её для людей — чувствую, что там есть полезное, но где оно — я не вижу.
На Geektimes полно статей, которые не поймет основная масса или группа идей.Если вы этого не понимаете, то возможно оно вам и не надо? В данной статье все вполне нормально описано.
>немного практикую программировать вот эти все малины-ардуины
Возможно поэтому вы и не понимаете
Я не могу назвать себе опытным программистом, и подобное я бы не сделал, точнее даже не догадался бы сделать. Но тем не менее, статья лично для меня понятна.
Весь прикол в том и состоит, что в статье не описано НИЧЕГО сверхъестественного. Для профи. Спрошу ещё раз, раз не понимаете смысла моего коммента: ДЛЯ КОГО эта статья? Полуначинающих? Недопрофессионалов? Домашних Кулибиных-самоучек? Абзацы, где идёт самая суть, описаны на птичьем языке. «Я взял АБВ и залил в ГДЕ». Люди может и знают, что такое АБВ, но не могут понять его связи с остальным алфавитом. Вот я и попросил писать статью чуть более развёрнуто — гиктаймс — не помойка для тщеславных подростковых испражнений, это технический ОБУЧАЮЩИЙ ресурс — люди находят здесь интересные материалы и пытаются поднять свой уровень. Из данной статьи почти ничего непонятно — для чего тогда её писали?
Привет, увы у меня для вас плохая новость
Если вам не знакомы с аббревиатурами SWD и JTAG, то как не расписывай статью то полезнее она не станет
Какие схемы вам нужны? как подключить 4 провода? Если вы были бы уже знакомы с вышеупомянутыми аббревиатурами, то вопросов не возникало.
нет Sagem — выдам… (вы точно до конца дочитали?)
Ну и борцам за «рутер», хотелось бы видеть официальный документ, в котором подтверждалось правописание слова. Это скорее всего должен быть словарь, официально одобренный гос структурой. Без этого будет просто пустой холивар.
Привет, увы у меня для вас плохая новость


Извините, вы бы как-то научились разговаривать на правильном языке? Либо «Здравствуйте» и далее обращение на «вы», либо дворовое «привет» и на «ты». Хотите — перейдём на «ты», т.к. видно, что культурой тут не обременены.

Если вам не знакомы с аббревиатурами SWD и JTAG, то как не расписывай статью то полезнее она не станет


Да-да. Сказал человек, который в статье вообще JTAG не использовал! К чему эти понты, милейший? Вы серьёзно думаете, что вас на всю Россию десять человек, знающих JTAG? :)) Да вообще не в нём суть, если так подумать — весь смысл в словах «удалённая отладка», но который так и остался где-то в дебрях вашего сознания — не умеете вы доносить смысл, только жонглирование терминами.

Какие схемы вам нужны? как подключить 4 провода?


Вот видите, к чему приводит узкое мировоззрение — для вас «схема» — это провода. А есть схема метро, представляете? :) А есть схема, где можно было бы понятно обрисовать — где у вас рутер, где микросхема и почему всё это называется «удалённым», да ещё с бросанием USB.

Про рутер не надо умничать, молодой человек! Вы сами знаете, что обделались по полной — не бывает JTAG рутеров. JTAG — тестовый интерфейс, никакого отношения к маршрутизации пакетов он отношения не имеет. Поэтому в заголовке слову JTAG вообще не место, если уж быть точным.

Это грустно… очень грустно, что вместо принятия критики вы огрызаетесь, будто действительно написали недооценённый шедевр! Всё уже сделано до вас, понимаете? Нет только грамотных статей, где одни НОРМАЛЬНЫЕ люди объясняли другим НОРМАЛЬНЫМ как достичь чего-то. Наверное ещё лет 10 и вы поймёте, почему грубость ничего не решает — на общем ресурсе надо созидать, а не понтоваться.
Уважаемый, смиритесь, что кому-то дано, а кому-то не дано и проходите мимо. Авторы пишут всегда на своем уровне, если хотят написать что-то для совсем начинающих, то делают отметку «туториал». Возможно вам стоит посмотреть именно на такие статьи?
Иначе если следовать вашей логике, то на том же хабре — все самовлюбленные скоты и надо его закрыть. Там ведь уровень статей и их изложение на порядок выше, чем на гиктаймсе. И все это не из желания «понтоваться», просто достаточно вспомнить историю — хабр для профессиональных разработчиков, гик часть их оттянул на себя, отсюда закономерность — самые интересные статьи пишут как раз не любители ардуины, а вполне себе инженеры чтобы поделиться с такими же инженерами.

Автор написал практически готовый howto, зачем разжевывать каждый термин? Для этого есть другие статьи.

Статья классная, пишите ещё!
Если вы так отлаживаете, то вам и про программирование МК наверняка есть что рассказать :-)

Не понял как это использовать для отладки чипа на квадрокоптере, да и как то слишком тяжко… я пробросил com порт через esp8266, которая размером с 2 руб монету, и прошиваю летающий микроконтроллер через него вполне сносно…
Sign up to leave a comment.

Articles