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

 
 
 
Reply to this topicStart new topic
> Проблемы с отладкой STM32 в Eclipse, STM32+Eclipse+OpenOCD
ADA007
сообщение Apr 23 2013, 16:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Доброго времени суток, уважаемые коллеги.

Столкнулся с проблемой отладки камня STM32F103VCT6. Все настройки производил по этой статье .
С отличием в том, что у меня Debian 2.6.36-amd64 и вместо j-link платка на ftdi2232d.

Проблема вся в последнем этапе настройки. Когда я запускаю отладку - я не получаю останов на брейкпоинтах.
И вообще, в меню threads у меня вместо main-a просто ссылки на физические адреса памяти программы. laughing.gif

Подскажите, что я упустил, если это дело в настройке?

Для большей ясности картины, выкладываю скриншоты... Первый скрин - когда только запустился отладчик - эта картина висит, пока не нажать на паузу выполнения программы - тогда возникает второй скрин. Хочу отметить, что в разделе Variables переменная counter не появляется...но регистры вроде как вычитываются с камня.



помогите кто чем может....
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 23 2013, 20:39
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Такое ощущение, что в .elf отсутствует отладочная информация. Поищите нужную галочку в настройках компилятора. Что-нибудь из серии Debug info, dwarf2 или подобного


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ADA007
сообщение Apr 24 2013, 19:03
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(Сергей Борщ @ Apr 23 2013, 23:39) *
Такое ощущение, что в .elf отсутствует отладочная информация. Поищите нужную галочку в настройках компилятора. Что-нибудь из серии Debug info, dwarf2 или подобного

Пробую менять опции в Eclipse...их там несчетное множество... Но пока что безрезультатно. 05.gif

Снес Eclipse и проделал все заново - результат тот же. smile3046.gif
Go to the top of the page
 
+Quote Post
ADA007
сообщение Apr 25 2013, 20:25
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(ADA007 @ Apr 24 2013, 22:03) *
Пробую менять опции в Eclipse...их там несчетное множество... Но пока что безрезультатно. 05.gif

Снес Eclipse и проделал все заново - результат тот же. smile3046.gif

А еще при сборке проекта я обнаружил ошибку....Может это все дело в ней?
Когда нажимаю кнопку Run в Eclipse => получаю окно ошибки следующего содержания....
Код
Problem Occurred
'Lauching Test.elf' has encountered problem
Error while launching command: gdb --version

и в консоли сообщение
Код
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.cpp.product

Error
Wed Apr 24 22:09:39 EEST 2013
Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 26 2013, 06:52
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (ADA007 @ Apr 25 2013, 23:25) *
Когда нажимаю кнопку Run в Eclipse => получаю окно ошибки следующего содержания....
А может быть вам надо нажимать кнопочку debug, предварительно настроив debug configurations?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ADA007
сообщение Apr 26 2013, 08:53
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(Сергей Борщ @ Apr 26 2013, 09:52) *
А может быть вам надо нажимать кнопочку debug, предварительно настроив debug configurations?


Да...может быть....я их нажимаю в последовательности Ctrl+B => Run => Run OpenOCD => Run Debug...

Кстати, вчера пробовал сделать проект мигания светодиодом...но после входа в режим Debug и нажав на кнопку на Pause ... я увидел точно такую же картину как и раньше...
Здесь явно что-то не так!!! Не должны же разные программы давать одинаковый результат....

Вечером отпишусь на каких именно командах он застряет....
---------------------------------------------------------------------------------------
Программа с циклом (размер elf 46.2Kб)
Код
1ffff1ec  : str  r0, [r1, #0]
1ffff1ee  : ldrh.w r3, [r2, #2048]
1fffff2    : lsls r3, r3 , #26
1fffff4    : bpl.n 0x1ffff1ec


Программа мигания светодиодом (размер elf 6.3 Mb)
Но при постановке на паузу в отладчике я кручусь на тех же 4-х строчках asm кода и по тем же адресам памяти программы.

Архив с двумя проектами прилагаю...
Прикрепленные файлы
Прикрепленный файл  workspace.tar.gz ( 3.37 мегабайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
ADA007
сообщение Apr 28 2013, 18:59
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Всем спасибо за помощь. Разобрался я с этим stm-ом wink.gif
Надо было скрипт линкеру правильный подкинуть... reset от отладочного кобеля подкинуть на проц....ну и пути полные к файлам прописывать везде в конфигах....

Всем удачи, если у кого возникнет подобная проблема.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 29 2013, 06:30
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (ADA007 @ Apr 28 2013, 21:59) *
ну и пути полные к файлам прописывать везде в конфигах....
Как страшно жить... И после переноса проекта все пути снова править? Нет, это у вас что-то в консерватории не так.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ADA007
сообщение Apr 30 2013, 08:19
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(Сергей Борщ @ Apr 29 2013, 09:30) *
Как страшно жить...

Да я только начинаю ..поэтому рад буду и тому, что он хоть как-то работает...

Хе rolleyes.gif ..только было обрадовался ... На следующий день запускаю тот же проект и ловлю в консоли после заливки elf-а smile3046.gif
Код
Error: address + size wrapped(0xfffffffe, 0x00000004)


Кто встречался с данной проблемой? и КАК её решить? если это вообще решаемо...

Пы.Сы. Гуглом пользоваться умею...уже кучу тем нашел по поводу этой ошибки и ни одного толкового решения! Помогите !
Сами же opeOCD ссылаются на баг в GDB на своем форуме... в общем крайнего не найти как всегда.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 30 2013, 09:28
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (ADA007 @ Apr 30 2013, 11:19) *
Сами же opeOCD ссылаются на баг в GDB на своем форуме... в общем крайнего не найти как всегда.
Да, это бага в gdb. Не обращайте внимания. Фактически она не дает отладчику при исключении правильно раскрутить стек и найти точку возникновения исключения. Если вам захочется узнать, откуда вы попали в исключение - смотрите содержмое SP, смотрите память по этому адресу, находите сохраненные при возникновении исключения регистры и адрес возврата.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ADA007
сообщение Apr 30 2013, 09:47
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(Сергей Борщ @ Apr 30 2013, 12:28) *
Да, это бага в gdb. Не обращайте внимания....

Да я бы и не обращал, если б все работало. crying.gif ...а так у меня после возникновения этой ошибки контроллер на бряки не реагирует и , ели нажать паузу в отладчике - я попадаю на те же 4-и asm строчки кода, которые я описывал выше...и крутится он там до посинения...Т.е. это исключение у меня возникает сразу же после заливки elf-a.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 30 2013, 11:37
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (ADA007 @ Apr 30 2013, 12:47) *
Т.е. это исключение у меня возникает сразу же после заливки elf-a.
Но те строчки, что вы показали - это не обработчик исключения. Это какой-то цикл копирования, причем расположенный в системной памяти. Это встроенный загрузчик. И раз вы в него попадаете - значит у вас неправильный уровень на ноге BOOT0.

И в листинге вы при копировании потеряли по одному f в адресе в двух последних строчках. А я уж испугался - один раз гляну на листинг - вижу системные адреса. Второй раз гляну - адреса несуществующей памяти. Ну, думаю, похоже у меня что-то с головой. Пока не понял, что смотрю на адрес то в первой, то в последней строках wacko.gif

А сообщение отладчика может возникать по какой-то другой причине. Например - если процессор находился в исключении перед заливкой образа.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ADA007
сообщение May 1 2013, 19:24
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(Сергей Борщ @ Apr 30 2013, 14:37) *
... значит у вас неправильный уровень на ноге BOOT0...


Да...Вы совершенно правы...у меня на boot0 было 3V .... сделал 0V и все работает, как часы. yeah.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 06:00
Рейтинг@Mail.ru


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