CMSIS-DAP на STM32F4Discovery

Тут уже лет 5 назад упоминали о таком, но мало ли. CMSIS-DAP какой-то канонный опенсорсный интерфейс отладки от ARM для кортексов на базе протокола USB HID. Т.е. не привязанный к конкретному производителю контроллеров и не требующий драйвера.
Более мощная версия этой штуки (со всякими балалайками, типа популярной нынче прошивки через MSD, или USB-UART) развивается mbedом и называется DAPLink.




Распиновка SWD:
PD7 — Reset
PB3 — SWCLK
PB5 — SWDIO

Распиновка JTAG:
PD7 — Reset
PB3 — TCK
PB4 — TDI
PB5 — TMS
PB6 — TDO

P.S. Кстати, может, кто не знает, но атмеловский EDBG-отладчик (и ему подобные) сделан на этой основе, и даже выложен протокол расширения на атмеловские чипы. В т.ч. AVR, XMega, AVR32, включая и отладку по JTAG/debugWire/PDI/SWD, и прошивку по тому же самому+ISP/TPI и что там ещё. Насколько я помню, debugWire кто-то расковыривал в интернете.
Т.ч. энтузиасты могут попробовать это дело объединить, особенно, если у них есть работающий образец такого отладчика, который можно проснифать с помощью USB Logger и логическим анализатором, и, теоретически, получить опенсорсный отладчик на любом усбшном контроллере.

UPD: в аттаче ещё то же самое для STM32F3Discovery и STM32F103.

Комментарии (6)

RSS свернуть / развернуть
ИМХО, наркоманство. Может атмелам и в помощь, но STM32 таскать на борту кусок кода… Хммм. Поясните, если не сложно.
0
Ну, контроллеры и сделаны для того, чтоб таскать на своём борту код…

В текущем виде — это отладчик-программатор для Cortex-M/A по JTAG/SWD. Не без странностей, но работает.
Про атмел это общие соображения — у них в отладчиках сделано расширение этой штуки под свои протоколы, что вполне реально повторить. Самое сложное — программные брекпоинты. Фз, как они там сделаны. В крайнем случае, для лайт-версии можно и забить на них. Там один или два аппаратных есть…
Т.е. этот программатор уже в атмел студии в списке программаторов числится, разве что не работает.
0
Вот интересный проект по теме. Без странностей и вполне работоспособный. Я его пару лет назад ковырял, когда свой программатор делал.
0
Да, я тут гуглил интересное и находил его =) Но он есть под эту плату вполне себе скомпилированный и, наверное, даже рабочий.
Бинарник я себе скачал — потребуется, воспользуюсь =) Правда, в кейле он не поддерживается, надо использовать другую среду.

Но цель — в изучении USB на примерах разных несложных устройств, так что CMSIS-DAP тут хорошо вписывается.
0
Что-я вообще не понял зачем это. Ведь во всех средах разработки есть и отладчик и программаторы есть.
0
В средах они есть, а вот в физическом воплощении отладчик под рукой не всегда имеется. Тем, у кого есть что-то вроде J-Link это нафиг не надо.

ARM Cortex-M сейчас много кто производит, STM32 (но если есть такая плата, то и ST-Link имеется для них), SAM от атмелов, LPC от NXP, всякое от Техаса, некоторые PSoC от Cypress, и т.д. Они имеют один и тот же протокол для отладки — JTAG/SWD. И Кейл/IAR/GDB эту штуку умеют пользовать, чтобы прошивать и отлаживать эти самые армовские контроллеры.
Таким образом, имея одну лишь дискавери в данном случае (не обязательно эту, портировать можно подо что угодно, хоть под AVR — примеры USB-HID есть для любого устройства с USB, надо всего-то поменять дескрипторы и обработку пакетов), можно получить возможность щить и отлаживать и ARM от других производителей, которые ST-Link не умеет.
А если есть время и желание, можно портировать теоретически любой опенсорсный программатор, коих дофига, и некоторые из них портируются достаточно просто. А если очень большое желание, много времени и образец — то и не только опенсорс.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.