реклама на сайте
подробности

 
 
> Вопросы по OpenOCD
NikAn
сообщение Jun 24 2008, 14:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 24-06-08
Пользователь №: 38 525



Добрый вечер (ночь/утро/день)!

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


Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Ivan_Kov
сообщение Jun 25 2008, 06:25
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 30-10-06
Из: г. Курск
Пользователь №: 21 787



Цитата(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
Go to the top of the page
 
+Quote Post
NikAn
сообщение Jun 25 2008, 11:32
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 24-06-08
Пользователь №: 38 525



За 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
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 25 2008, 12:13
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



вот тут есть тема
http://electronix.ru/forum/index.php?showtopic=49252
я недавно настраивал отладку через OpenOCD, возможно вы сможете что то подчерпнуть, в том числе из конфигурационных файлов.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
NikAn
сообщение Jul 7 2008, 07:11
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 24-06-08
Пользователь №: 38 525



Доброе утро (день/вечер/ночь)!

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

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

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


Заранее благодарен
Go to the top of the page
 
+Quote Post
anti
сообщение Oct 10 2008, 12:06
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 28-02-07
Пользователь №: 25 754



Подскажите, а что настроить в связке openocd-gdb, что бы по 'stepi' отладчик заходил или не заходил в обработчик прерывания.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016