Jump to content

    

Проблема с программатором J-Link в среде IAR

Не могу запустить отладку программы под управлением программатора J-Link в среде IAR. Отлаживаемая программа должна располагаться в микроконтроллере LPC1758 с ядром Cortex-M3. После запуска среды IAR и установки необходимых опций проекта в соответствии с документацией на J-Link сеанс отладки я начинаю с того, что после компиляции нажимаю кнопку "Download and Debug".

При этом IAR записывает программу с помощью J-Link flash download в микроконтроллер - судя по всему, заливка программы проходит нормально. Однако потом выдается сообщение Failed to measure CPU clock frequency с тремя кнопками внизу (Прервать, Повтор и Пропустить). Нажимаю Прервать - J-Link flash download остается в памяти, и его приходится снимать через Диспетчер задач. Нажимаю Повтор или Пропустить - сообщение повторяется еще раз (J-Link flash download удаляется из памяти), после чего вроде бы IAR начинает сеанс отладки (устанавливает курсор на первую строчку ассемблерного кода). А затем при нажатии любой отладочной кнопки забивается стек и программа зависает.

Может, я где-то что-то не учел? Поиски в help-системе IAR тоже ничего конкретного не дали.

Share this post


Link to post
Share on other sites

После того, как я поставил новую, последнюю версию EWARM 5.5 и вместо пришедших с программатором драйверов подключил драйвера из инсталляции EWARM, J-Link спокойно соединился и работает. Позор Segger!

Share this post


Link to post
Share on other sites

Что-то я сомневаюсь, чтобы Segger что-то слажал. Работаю со связкой IAR ARM 5.4 + J-Link 4.14 всё прошивается и дебажится без проблем.

Камень SAM3S, атмеловский Cortex-M3.

 

Сдаётся мне, что у вас до этого была версия драйверов от Segger, которые банально не поддерживали Cortex.

Share this post


Link to post
Share on other sites

У меня была похожая ситуация при отладке по JTAGу.

 

С отладочнй платой на LPC1768 всё работало отлично. Когда подключился к LPC1754 (младший брат LPC1758) на своей плате - высвечивалась та же ошибка.

 

Причиной всему вывод процессора RTCK, который заводиться на стандартный JTAG разъём. Этот вывод в 100-выв. корпусе имеется, а в 80-выв. отсутствует.

Если в IAR-e установить фиксированную скорость JTAG - всё пашет и без этой лапы. Видимо J-Link через эту лапу подгоняет скорость обмена по JTAG.

 

Для обхода этого глючка проверил два варианта (и оба оказались работоспособными):

1. Использовать "Fixed speed". (для примера взял 100 КГц)

2. Отлаживаться через SWD и Auto-speed.

 

Для себя остановился на втором варианте.

 

Использую IAR 5.41, MT-Link v6, Segger 4.08e

Share this post


Link to post
Share on other sites

Уважаемые, кто откликнулся!

Проблема разрешилась,но совсем другим образом. Я установил новую версию IAR 5.5 и вместо поставленных с программатором драйверов применил те, которые пришли вместе с IAR. И отладка пошла.

Все то, о чем мне написали, я тоже увидел - смотрел тщательно, ничего не пропустил, ни RTCK, ни FixedSpeed, пробовал все - но все это не помогало понять сути глюка.

Всем спасибо!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this