скрытое меню

Настраиваем трассировку SWO для LPC1768

В качестве подопытного берем плату от старого принтера Атол-FPrint-55 (AT028.01.01), поскольку осталось их в немеренном количестве после перехода на новые модели кассовых аппаратов. А контроллер там на минуточку Cortrex-M3.

Дело в том , что платы для разработки контроллеров LPC на алиэкспресс большая и дорогая редкость, по сравнению с STM32 и что-то в районе минимум 3000р. (как я к сожалению понял). А тут просто валяются по ногами платы на LPC 1758 выведенными USB, RS232 (кстати если кому нужны обращайтесь).

Программирование контроллера LPC1758 на плате принтера Атол 55

Найти контакты JTAG/SWD не составило труда, т.к. они выведены на плате в дырки с шагом 2,54мм под IDC 16 разъем.
Подключаем выводы прямо к ULINK2 :

фотка 1

фотка 2

Настраиваем прошивку в среде Keil5

Не забываем подать штатно питание на плату AT028.01.01 .

Сразу получаем приятную новость - определяется SWD интерфейс программирования с ARM CoreSight SW-DP

фотка 3

И также имеем интерфейс программирования JTAG с ARM CoreSight JTAG-DP

фотка 4

И тут же можно запустить отладчик - все работает!

Начинается хождение по мукам с трассировкой через вывод SWO ядром Coresight

Трассировка SWO ядром Coresight через ULINK2

Сначала видим что трассировка не идет через ULINK2 ("Trace: Communication Error")

фотка 5

Трассировка SWO ядром Coresight через JLink - начинает что-то приниматься

Уже идет какая-то каша, но это лучше чем ничего и ошибок Trace: Communication Error не

фотка 6

Трассировка через утилиту SEGGER идет сразу нормально

Самое главное , что утилита J-Link SWO Viwer от Segger делает измерение скорости и определяет частоту SWO. Как под другому у LPC узнать частоту SWO для меня остается загадкой (в отличии от STM32).

фотка 7

Интересно , что частоту контроллера Segger определятет как 99980+-1 , т.е. нам надо выставлять 100MHz похоже, а не 12MHz (как написано на кварце рядом с мк). Как он определяет частоту SWO - это тоже загадка, по-видимому методом подбора.

И вот пошли точки точно так как и должно быть ( с задержкой примерно 1 сек)

фотка 8

Респект Segger-у ! (и очень внимательно теперь мониторим его сайт, Embedded Studio - среда разработки например)

И теперь мы знаем, как настраивать частоту отладки SWO в Keil

Теперь понятно где у нас было неправильное значение указано - это на закладке Trace в поле Core Clock (почему-то я решил ,что там должна быть частота внешнего кварца). И далее галочка Autodetect max SWO Clock уже даст примерно похожее на 6MHz значение.

И трассировка сразу пошла нормально в Keil-е под JLink-ом.

фотка 9

И также трассировка пошла в Keil-е под ULINK2

фотка 10

Но ST-Link не дает даже прошить LPC1768 и выдает Error: Flash Download failed - "Cortex-M3".

А сколько времени убито на поиски ответа почему не идет трассировка....

И вот теперь программируй и отлаживай сколько угодно товарищ...

фотка 11

Век живи - век учись.

Яндекс.Метрика