2016-08-17 9 views
3

У меня возникла проблема с надежной настройкой отладки. Я видел другие темы на некоторых форумах по сети с похожим названием, но обстоятельства кажутся разными.причина 7 - цель требует сброса - ненадежная настройка отладки

Установка:

  • Linux (Xubuntu) 64bit
  • Eclipse CDT, Неон 4.6.0
  • "GDB Hardware Debugging" плагин от затмения "установить новое программное обеспечение", сконфигурированный для сброса & задержки 3сек , остановка; Символы нагрузки (все галочки, ни пользовательских команд)
  • рычажного ни-EABI-GCC 4.8.3 инструмент цепи
  • OpenOCD, недавно скачал, работает в собственной консоли, сконфигурированный для моего точного MCU с скриптом предоставленной ими & st-link
  • STM32L476RG MCU с жестким поплавком, который используется.
  • ST-Link V2 отладчик (автономные)

Теперь, есть последовательность, с которой я, после некоторой борьбы каждый раз, может подключиться с помощью отладчика, но ступая и чтение переменных Безразлично» t работайте настолько надёжно, что я буду доверять тому, что вижу на секунду. Но даже дойти до того момента, когда стек вызовов не будет заполнен очевидными бессмысленными записями и только очень немногие из них, утомительно.

Пример:

  • флэш-устройство с прошивкой. Это обычно работает без проблем.
  • Запустить openocd.
  • Начать отладку в Eclipse.
  • OpenOcd показывает соединение, а затем говорит: «неопределенная причина отладки 7 - цель нуждается в сбросе»
  • Независимо от того, чтобы нажать кнопку «возобновить» в Eclipse, чтобы программа прошла мимо фальшивого верхнего фрейма стека.
  • Нажмите «suspend» (по-прежнему поддельный в callstack), затем «завершите».
  • Ctrl + C из OpenOcd.
  • Вручную (аппаратное) сбросить MCU stm32.
  • Restart OpenOcd.
  • Запустите отладку снова в Eclipse.

OpenOCD выход:

 
GNU ARM Eclipse 64-bits Open On-Chip Debugger 0.10.0-dev-00287-g85cec24-dirty (2016-01-10-10:31) 
Licensed under GNU GPL v2 
For bug reports, read 
    http://openocd.org/doc/doxygen/bugs.html 
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '. 
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD 
adapter speed: 500 kHz 
adapter_nsrst_delay: 100 
none separate 
none separate 
Info : Unable to match requested speed 500 kHz, using 480 kHz 
Info : Unable to match requested speed 500 kHz, using 480 kHz 
Info : clock speed 480 kHz 
Info : STLINK v2 JTAG v24 API v2 SWIM v4 VID 0x0483 PID 0x3748 
Info : using stlink api v2 
Info : Target voltage: 3.192646 
Info : stm32l4x.cpu: hardware has 6 breakpoints, 4 watchpoints 
Info : accepting 'gdb' connection on tcp/3333 
Info : device id = 0x10076415 
Info : flash size = 1024kbytes 
undefined debug reason 7 - target needs reset 

Теперь с некоторой удачей, я наконец-то есть соединение несколько рабочего отладчик, на некоторое время. Но это может потребовать некоторых повторений. Почему «нажмите возобновить» между ними, когда ясно, что соединение плохое? Не уверен, это, по-видимому, увеличивает вероятность того, что на следующей итерации у меня будет связь, много.

Возможно, соответствующее примечание: У MCU есть ЖК-дисплей, подключенный к нему, и из этого я могу видеть, когда он сбрасывается. По какой-то причине начальная отладка в Eclipse, по-видимому, не перезагружает устройство, хотя флажок сброса проверяется в конфигурации отладки. Если я открываю telnet-соединение с OpenOCD в терминале и выполняю «перезагрузку», устройство перезагружается.

Что может быть причиной нечетного поведения моей установки?

+0

Попробуйте включить «reset halt» в вашем openocd .cfg или набрав «остановку сброса монитора» в gdb. –

ответ

0

OpenOCD Клиент, которого вы используете? Я сделал ошибку, используя хост gdb, и я получил эту ошибку. И после того, как я изменил свой путь отладчика до местоположения моего arm-none-eabi-gdb в «Конфигурации отладки» вашего затмения, проблема исчезла.

С вашего поста вы только упомянули вы использовали arm-none-eabi-gcc набор инструментов, так что не знаете, если вы установите gdb в arm-none-eabi-gdb в «Debug Configurations», которая является отдельной от настроек проекта ToolChain.

2

Другая версия OpenOCD мне помогла. Встретил аналогичную проблему с OpenOCD 0.10.0 от http://gnuarmeclipse.github.io. Сначала он работал, и проблема появилась. Удалили его и установили сборку с http://www.freddiechopin.info.