Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по OpenOCD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
NikAn
Добрый вечер (ночь/утро/день)!

Пытаю отладить чип 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'нуть МК?


Заранее благодарен.
Ivan_Kov
Цитата(NikAn @ Jun 24 2008, 18:19) *
1) Насколько я понял, OpenOCD коннектится к отладочной логике чипа через jtag и некакие резиденты в ram контроллера не загружает. Правильно я понял?

Типа того.

Цитата(NikAn @ Jun 24 2008, 18:19) *
2) .....

Подозреваю, что вы напутали что-то или с заливкой прошивки, или с настройками линкера

Цитата(NikAn @ Jun 24 2008, 18:19) *
3) как reset'нуть МК?

для сброса есть 2 варианта:
1) monitor reset, monitor halt
2) monitor soft_reset_halt
NikAn
За 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
вот тут есть тема
http://electronix.ru/forum/index.php?showtopic=49252
я недавно настраивал отладку через OpenOCD, возможно вы сможете что то подчерпнуть, в том числе из конфигурационных файлов.
NikAn
Доброе утро (день/вечер/ночь)!

За пэдээфку спасибо. Сейчас для ресета пользуюсь командой soft_reset_halt. Аппаратный ресет (monitor reset) устроить так и не получается.

Я сейчас в эклипс пытаюсь сделать такую штуку:
Выбираю внешний инструмент с именем, например, "prog". При этом запускается OpenOCD, выполняется скрипт с командами для прошивки контроллера и OpenOCD вырубается. Скрипт пытаюсь прицепить к событию "post_halt" (т.к. ресет не работает). Подскажите, в чем может быть косяк.

Еще такой вопрос: нет ли у кого бинарников OpenOCD для маздая с поддержкой пар.порта по-новее? А то у меня версия r520.


Заранее благодарен
anti
Подскажите, а что настроить в связке openocd-gdb, что бы по 'stepi' отладчик заходил или не заходил в обработчик прерывания.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.