Jump to content

    

Как в отладчике Keil передать команду JLink

По прочтению статьи Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M, решил попробовать рецепт на ядре M4 мк LPC4337.

Столкнулся со следующей трудностью: сервер отладки, который запускается IDE в начале отладочного сеанса не находит автоматически адрес структуры _SEGGER_RTT в ОЗУ. Ввести адрес вручную на вкладке RTTerminal окна "Control panel" не получается - там какое-то странное поле ввода, которое само постоянно обновляется (у меня версия софта 5.00I).

 

В мануале от сеггера предлагают заставить отладчик самостоятельно передать адрес:

In some cases J-Link cannot locate the RTT buffer in the known RAM region.

In this case the possible region or the exact address can be set manually via a J-Link exec command:

    Set ranges to be searched for RTT buffer: SetRTTSearchRanges <RangeStart [Hex]> <RangeSize >[, <Range1Start [Hex]> <Range1Size>, ...] (e.g. "SetRTTSearchRanges 0x10000000 0x1000, 0x2000000 0x1000")
    Set address of the RTT buffer: SetRTTAddr <RTTBufferAddress [Hex]> (e.g. "SetRTTAddr 0x20000000")
    Set address of the RTT buffer via J-Link Control Panel -> RTT

J-Link exec commands can be executed in most applications, for example in J-Link Commander via "exec <Command>", in J-Link GDB Server via "monitor exec <Command>" or in IAR EW via "__jlinkExecCommand("<Command>");" from a macro file.

 

вот только как это сделать в Кейле тут не указано.

 

Кстати,

Если попытаться с помощью JLinkRTTViewer открыть еще одну сессию (при запуске этой утилиты можно указать адрес структуры _SEGGER_RTT) то отладочный вывод идет, но после выхода из отладочного режима в кейле и закрытия JLinkRTTViewer, кейл падает.

 

Если же запускать JLinkRTTViewer так, чтобы он подключалась к уже запущенному отладочному процессу и потом автоматически реконнектился к нему, то естественно вывода нет - поскольку адрес структуры не найден, и задать его во вьюере нельзя.

 

Прошу указать способ, как в отладчике кейла послать команду JLink серверу?

 

 

Share this post


Link to post
Share on other sites

 

К сожалению не оно.

 

При этом запускается еще одна копия отладочной DLL и контрольной панели. В ней можно установить адрес командой exec SetRTTAddr и подключиться вьюером. Но при начале отладки будет запущена новая копия отладочной Dll, которая адрес уже не знает, загрузка и отладка будет идти через нее и после кейл упадет.

 

 

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