|
Проблемы с отладкой STM32 в Eclipse, STM32+Eclipse+OpenOCD |
|
|
|
Apr 23 2013, 16:53
|

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

|
Доброго времени суток, уважаемые коллеги. Столкнулся с проблемой отладки камня STM32F103VCT6. Все настройки производил по этой статье . С отличием в том, что у меня Debian 2.6.36-amd64 и вместо j-link платка на ftdi2232d. Проблема вся в последнем этапе настройки. Когда я запускаю отладку - я не получаю останов на брейкпоинтах.И вообще, в меню threads у меня вместо main-a просто ссылки на физические адреса памяти программы. Подскажите, что я упустил, если это дело в настройке? Для большей ясности картины, выкладываю скриншоты... Первый скрин - когда только запустился отладчик - эта картина висит, пока не нажать на паузу выполнения программы - тогда возникает второй скрин. Хочу отметить, что в разделе Variables переменная counter не появляется...но регистры вроде как вычитываются с камня. помогите кто чем может....
|
|
|
|
|
 |
Ответов
(1 - 12)
|
Apr 25 2013, 20:25
|

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

|
Цитата(ADA007 @ Apr 24 2013, 22:03)  Пробую менять опции в Eclipse...их там несчетное множество... Но пока что безрезультатно.  Снес Eclipse и проделал все заново - результат тот же.  А еще при сборке проекта я обнаружил ошибку....Может это все дело в ней? Когда нажимаю кнопку 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".
|
|
|
|
|
Apr 26 2013, 08:53
|

Местный
  
Группа: Свой
Сообщений: 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 кода и по тем же адресам памяти программы. Архив с двумя проектами прилагаю...
|
|
|
|
|
Apr 30 2013, 08:19
|

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

|
Цитата(Сергей Борщ @ Apr 29 2013, 09:30)  Как страшно жить... Да я только начинаю ..поэтому рад буду и тому, что он хоть как-то работает... Хе  ..только было обрадовался ... На следующий день запускаю тот же проект и ловлю в консоли после заливки elf-а Код Error: address + size wrapped(0xfffffffe, 0x00000004) Кто встречался с данной проблемой? и КАК её решить? если это вообще решаемо... Пы.Сы. Гуглом пользоваться умею...уже кучу тем нашел по поводу этой ошибки и ни одного толкового решения! Помогите ! Сами же opeOCD ссылаются на баг в GDB на своем форуме... в общем крайнего не найти как всегда.
|
|
|
|
|
Apr 30 2013, 11:37
|

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

|
QUOTE (ADA007 @ Apr 30 2013, 12:47)  Т.е. это исключение у меня возникает сразу же после заливки elf-a. Но те строчки, что вы показали - это не обработчик исключения. Это какой-то цикл копирования, причем расположенный в системной памяти. Это встроенный загрузчик. И раз вы в него попадаете - значит у вас неправильный уровень на ноге BOOT0. И в листинге вы при копировании потеряли по одному f в адресе в двух последних строчках. А я уж испугался - один раз гляну на листинг - вижу системные адреса. Второй раз гляну - адреса несуществующей памяти. Ну, думаю, похоже у меня что-то с головой. Пока не понял, что смотрю на адрес то в первой, то в последней строках А сообщение отладчика может возникать по какой-то другой причине. Например - если процессор находился в исключении перед заливкой образа.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|