Как стать автором
Обновить

Доработка китайского ST-Link v2: добавляем интерфейс вывода отладочной информации SWO и ногу Reset

Время на прочтение 2 мин
Количество просмотров 104K
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 26

Комментарии 26

Спасибо! Именно этого и не хватало для отладки.
Не за что :)
Как раз на днях собирался заказать себе этот отладчик, теперь ясно сразу как дорабатывать.
Спасибо!
На здоровье!)
в 90% ресет не нужен. в 80% не нужен и отладочный вывод. так что не рекомендую сразу лезть и дорабатывать. хотя да, ручки они такие, чешутся.

А почему не рекомендуете?

велика вероятность что он помрет раньше чем пригодится доработка.
По мне так лучше оригинал взять. У этого ведь не только SWO нет, но и VPP, которым он, по сути, подгоняет свои логические уровни под уровни отлаживаемой платы.

Кстати, а в чем делался демо-пример. У меня Keil при любом использовании printf генерирует дико глючную и виснущую прошивку, которую невозможно отлаживать.
Оригинал дороже, да и на всех отладочных платах, которые мне известны питание проца всегда 3.3В. В итоге данный программатор хорошо снижает порог вхождения в STM32.

Использую STM32CubeMX + IAR
В 99% случаях питание 3.3 вольта. Остальное — настолько редкая экзотика, что в расчет можно не брать.
оригинал кстати легко умирает. у меня лежит пачка китайцев и оригинал. применяю оригинал как раз таки только там, где нужно нестандартное питание
Кстати, делал такую доработку после того, как китайский ST-Link отказался работать с SystemWorkbench. На форуме http://www.openstm32.org/ мной описано подключение вывода Reset. Мой коллега даже отказался от работы с SystemWorkbench, потому что не смог запустить отладку.
Подскажите, а как определяется скорость на SWO? На скрине у вас 72 МГц — она совпадает с частотой HSE/HSI таргета, или на такой частоте работает отладчик?
А я даже не задумывался. Выставляется частота работы микроконтроллера 72MHz, а частота SWO (в частности в среде IAR) у меня стоит на Auto
Ну то есть таргет (отлаживаемый МК) у вас работает на 72 МГц, и на этой частоте идут данные из SWO, я верно понял?
Таргет да, а вот на какой частоте идут данные из SWO я сказать не могу
А как можно выводить таким образом данные в Linux? Если используется openOCD или GDB+texane_st-link?
С Linux'ом не работал, наверняка можно.
К сожалению, в openOCD не допилили поддержку SWO через STlink.
Попробуйте прошить STlink в JLink (есть официальная прошивка от segger.com).
У меня JLink (копия), консолька через openOCD работает.
Одна проблема с этими ST-Mini — дохнут они быстро. У меня уже коробочка сдохших накопилась
а не проводили исследования на тему причин смертей?
Оригинал тоже не сильно долговечный. Выше писал уже что пучек китайцев лежит. Изол вроде живет уже долго. Но им пользуюсь крайне редко.
Для ленивых любителей отладочных printf-ов: в EmBitz есть такая неблагозвучная (для русского уха) штука как EBmonitor. Работает без SWO. Есть нюансы, но в общем случае — очень удобно.
Так и в IAR можно выводить отладочную информацию через библиотеку semihosting, в таком случае физически нога SWO не нужна, но есть свои минусы в скорости работы
Вот-вот, semihosting тормозит ядро на время вывод. Ebmonitor же практически не влияет на скорость, но зато может терять сообщения. Вдобавок это фишка только EmBitz.
Но очень удобно. Вспоминаю сколько времени я убил на semohosting в Keil — аж трясет :)
Поэтому лучше купить дешевый китайский программатор, доработать и пользоваться аппаратной функцией уже в любой среде.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории