Отладка кода C на уровне рук-эльфов с использованием Zylin в Eclipse CDT - PullRequest
1 голос
/ 19 августа 2010

Я использую Eclipse CDT со встроенной отладкой Zylin (native) и arm-elf-gdb 6.6 на OS X 10.5.8. У меня есть OCD-отладчик, подключающийся к плате с процессором ARM.

Eclipse может останавливаться на первой точке останова и собирать переменные из памяти, но любые последующие точки останова или одношаговые сбои. Я могу установить точки останова нормально при использовании командной строки GDB, но установка точек останова в том же месте дает мне эти ошибки в Eclipse:

Warning:
Cannot insert breakpoint 2.
Error accessing memory address 0x3f6: Unknown error: -1.

И мое OCD соединение умирает с "Error: unexpected error -308"

Я использую один и тот же сценарий OCD в обоих случаях.

Единственные различия, которые я вижу, заключаются в том, что (1) Eclipse использует Zylin и протокол mi для связи с gdb, и (2) мой сценарий gdb вызывается по-другому следующим образом:

При запуске из GDB я использую файл сценария, который заканчивается этими двумя строками:

load        filename.out
symbol-file filename.out

В Eclipse я копирую содержимое этого файла сценария в «Debug Configurations | Commands» (я пробовал оба поля «Initialize» Commands »и« Run 'Commands ». Я заменяю последние две строки на load и укажите filename.out в поле «Конфигурация отладки | Главное | Приложение C / C ++».

Буду признателен за любые предложения о том, как заставить Zylin + Eclipse вести себя хорошо. Благодаря.

1 Ответ

0 голосов
/ 25 ноября 2010

Я использую то же решение на LPC2103.

Перейти к Eclipse в Zylin Debug Configurations > Embedded Debug (Native):

Основная вкладка: Приложение C / C ++ = you_elf_file.elf

Вкладка отладчика: Отладчик GDB = arm-elf-gdb;Набор команд GDB = Standard;Протокол = mi2

Команды:

Команды «Инициализация»:

target remote localhost:3333

monitor arm7_9 dcc_downloads enable
monitor arm7_9 fast_memory_access enable
monitor arm7_9 dbgrq enable

monitor reset halt
monitor wait_halt
monitor sleep 500
load

Команды «Выполнение»:

continue

Я использую параллельный порт Wiggler и OpenOCD [Open On-Chip Debugger 0.4.0] с cfgs, поставляемыми вместе с установкой:

openocd -f interface/parport.cfg -f target/lpc2103.cfg

Это работает для меня большую часть времени.

...