NikAn 0 24 июня, 2008 Опубликовано 24 июня, 2008 · Жалоба Добрый вечер (ночь/утро/день)! Пытаю отладить чип LPC2468 при помощи GDB+OpenOCD (через Wiggler). Здесь я новичек, поэтому возник ряд вопросов: 1) Насколько я понял, OpenOCD коннектится к отладочной логике чипа через jtag и некакие резиденты в ram контроллера не загружает. Правильно я понял? 2) Допустим прога для контроллера имеет следующий вид: Vectors: LDR PC, Reset_Addr # остальные векторы прерываний Reset_Addr: .word Reset_Handler # остальные константы прерываний Reset_Handler: LDR R0, Top_Stack # инициализация стеков # глухой цикл LOOP: B LOOP Контроллер зависает в последнем цикле. В консоли GDB я пишу monitor halt, затем monitor reg. Дебагер показывает, что теневые регистры содержат 0x00000000, хотя в программе они инициализируются. Если же глухой цикл поместить перед инициализацией стеков и выйти из него принудительно (командой monitor step <loop+4>) а потом прошагать код вручную, теневые регистры содержат правильные значения. Че за лажа? 3) как reset'нуть МК? Заранее благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovalchuk_i_v 0 25 июня, 2008 Опубликовано 25 июня, 2008 · Жалоба 1) Насколько я понял, OpenOCD коннектится к отладочной логике чипа через jtag и некакие резиденты в ram контроллера не загружает. Правильно я понял? Типа того. 2) ..... Подозреваю, что вы напутали что-то или с заливкой прошивки, или с настройками линкера 3) как reset'нуть МК? для сброса есть 2 варианта: 1) monitor reset, monitor halt 2) monitor soft_reset_halt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NikAn 0 25 июня, 2008 Опубликовано 25 июня, 2008 · Жалоба За soft_reset_halt огромное спасибо. При запросе справки OpenOCD о ней почему-то умалчивает. На сколько я понял, OpenOCD сам записывает в PC 0x00000000 и переводит проц в режим супервизора. А вот с monitor reset не получается. Файл конфигурации для OpenOCD содержит команду reset_config trst_and_srst srst_pulls_trst. При вводе monitor reset контроллер улетает черт знает куда и выдает такое сообщение: requested reset would assert trst value captured during scan didn't pass the requested check: captured: 0x00 check_vavue 0x01 check_mask: 0x0f Но в файле конфигурации у меня написано: jtag_device 4 0x1 0xf 0xe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 25 июня, 2008 Опубликовано 25 июня, 2008 · Жалоба вот тут есть тема http://electronix.ru/forum/index.php?showtopic=49252 я недавно настраивал отладку через OpenOCD, возможно вы сможете что то подчерпнуть, в том числе из конфигурационных файлов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NikAn 0 7 июля, 2008 Опубликовано 7 июля, 2008 · Жалоба Доброе утро (день/вечер/ночь)! За пэдээфку спасибо. Сейчас для ресета пользуюсь командой soft_reset_halt. Аппаратный ресет (monitor reset) устроить так и не получается. Я сейчас в эклипс пытаюсь сделать такую штуку: Выбираю внешний инструмент с именем, например, "prog". При этом запускается OpenOCD, выполняется скрипт с командами для прошивки контроллера и OpenOCD вырубается. Скрипт пытаюсь прицепить к событию "post_halt" (т.к. ресет не работает). Подскажите, в чем может быть косяк. Еще такой вопрос: нет ли у кого бинарников OpenOCD для маздая с поддержкой пар.порта по-новее? А то у меня версия r520. Заранее благодарен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anti 0 10 октября, 2008 Опубликовано 10 октября, 2008 · Жалоба Подскажите, а что настроить в связке openocd-gdb, что бы по 'stepi' отладчик заходил или не заходил в обработчик прерывания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться