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

 
 
 
Reply to this topicStart new topic
> Eclipse RealView J-Link(проблема с отладкой)
XRuZzz
сообщение Dec 19 2011, 14:26
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



Инструменты:
Eclipse
CDT
RealView Compiler +plugin к eclipsу
jlink GDB server
Sourcery gdb

Переношу проект из Keil в Eclipse подключил плагин RealView(www.arm.com/eclipse)
В Keil всё прекрасно работает с отладкой.
Скомпилировал проект.
Бинарники и Elf файлы на выходе Keil и Eclipse различаются по содержанию (но размер примерно одинаковый).
Бинарник скомпилированный в eclipse работает.


Но когда запускаем отладку вываливаются сообщения:
warning: Loadable segment "MAPPED_IRQ" outside of ELF segments
warning: Loadable segment "RW_IRAM1" outside of ELF segments

потом отладка запускается и почему то не происходит вызов конструктора который вызывается до main.

И в отладке после того как выходим из инициализации watchdog вылетаем на вызове методов включения leds на адрес 0xfffffff8

вот инициализация GDB
Код
monitor endian little
monitor flash device = LPC1766
monitor flash download = 1
monitor flash breakpoints = 1
monitor speed 1000
monitor reg r13 = (0x00000000)
monitor reg pc = (0x00000004)


пример логов когда отладка зависает во вложениях


Для начала хочется понять хотя бы где проблема в GDB servere или в компиляции проекта.

вложения
eclipse1 - до улетания по адрессу 0xFFFFFFF8
eclipse2 - после
eclipse2 - настройки GDB
scr4000 - сравнение образов в памяти : слева, который зашил keil до запуска отладки. справа то что зашивает eclipse



Разница во флагах компиляции минимальная
в Eclipse для RealView добавлены только эти опции которых нету в Keil

armcc --debug
--diag_style=ide

armasm --debug
--diag_style=ide

armlink --libpath=RV31\LIB
--diag_style=ide


Сообщение отредактировал XRuZzz - Dec 19 2011, 14:19
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение

Прикрепленное изображение
Прикрепленное изображение

Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  j_linkGDBlog.txt ( 18.88 килобайт ) Кол-во скачиваний: 14
Прикрепленный файл  j_linkGDBlog2.txt ( 44 килобайт ) Кол-во скачиваний: 192
Прикрепленный файл  j_linkGDBlog2.txt ( 44 килобайт ) Кол-во скачиваний: 268
Прикрепленный файл  j_linkGDBlog.txt ( 18.88 килобайт ) Кол-во скачиваний: 112
 
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 20 2011, 12:50
Сообщение #2





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



разобрался с флагом debug(в keil вместо него использовался -g) но проблема не ушла, терь в eclipse вместо -debug стоит -g)
Может кто знает как подключить openocd через swd к контроллеру LPC1766?

Хотя ситуация немного изменилась(см вложения)
время от времени в консоли появляется сообщение
warning: RMT ERROR : failed to get remote thread list.1
что такое RMT и откуда мы должны получать список потока?



Сообщение отредактировал XRuZzz - Dec 20 2011, 12:41
Прикрепленные файлы
Прикрепленный файл  jlinkGDBserver.txt ( 253.1 килобайт ) Кол-во скачиваний: 81
 
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 21 2011, 11:51
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



создал простенькую программку :D ,но проблема не исчезает. Отладка сразу после старта улетает по адресу в котором нет инструкций
Код
#include <string.h>
#include <stdio.h>
#include "lpc17xx.h"
int main(void)
{
    unsigned long i;
    SystemInit();
    LPC_GPIO2->FIODIR = 1 << 12;
    while(1)
    {
        LPC_GPIO2->FIOSET = 1 << 12;
        for (i=1;i<0xFFFFF;i++);
        LPC_GPIO2->FIOCLR = 1 << 12;
        for (i=1;i<0xFFFFF;i++);
    }
}

Прикрепленные файлы
Прикрепленный файл  jlinkGDBserver2.txt ( 33.62 килобайт ) Кол-во скачиваний: 401
 
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 21 2011, 19:24
Сообщение #4





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



тут народ в форуме писал что галочка Reset не работает в дебаге, а в скрипте её где надо прописовать

Код
monitor endian little
monitor flash device = LPC1766
monitor flash download = 1
monitor flash breakpoints = 1
monitor speed 1000
monitor reset 0
monitor reg r13 = (0x00000000)
monitor reg pc = (0x00000004)

так ?

Сообщение отредактировал XRuZzz - Dec 21 2011, 19:25
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 22 2011, 12:38
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



у товарища та же проблема http://electronix.ru/forum/lofiversion/ind...hp//t93395.html
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 22 2011, 14:31
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



У меня прям сердце кровью обливается, глядя на ваши мучения.
Вот это не оно?
ЗЫ. А почему не возьмёте gcc? С ним-то всё вроде как должно работать нормально.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 23 2011, 09:39
Сообщение #7





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



Проблема перешла в плоскость Eclipse+arm-none-eabi-gcc+jlinkGDBserver.

Попробовал запустить проект, который во вложениях. И терь получается так что всё компилируется нормально. а при отладке также вылетает.

Поэтому наверно проблема в GDB сервере или клиенте.

Почему не gcc?
1. По заданию руководства
2. на gcc тоже проблема с отладкой
3. Если есть плагин для RealView то он же должен нормально работать. Хотя с плагином следующие проблемы:
отладчик плагина RealVew не запускается;
плагин не обновляется с 3.0 до версии 3.1 пишет, что нужен какой то старый компонент типа eclipse.cdt....groups (3.2)
зато компилятор достаточно новый и выпускается фирмой ARM
Прикрепленные файлы
Прикрепленный файл  LPC1766_Systick_Interrupt_090810_1646.zip ( 40.91 килобайт ) Кол-во скачиваний: 15
 
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 23 2011, 13:05
Сообщение #8





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



с отладкой маленьких проектов разобрался, нужно было убрать галочку Init regs on start

терь в маленьких проектах для arm-none-eabi-gcc и realview отладка работает. в большом проекте также отладка вылетает как описано в первом посте.

Поэтому пока попробую поковыряться с компоновщиком RealView.

Встречный вопрос: А вы как думаете стоит ли переносить большой проект c RealView на gcc? там же будут грабли ещё хуже этих


вот так выглядят команды инициализации GDB

Код
monitor endian little
monitor flash device = LPC1766
monitor flash download = 1
monitor flash breakpoints = 1
monitor speed auto


а галочки расставлены так как показано в первом посте.
До сих пор не понимаю после какой команды лучше всего делать monitor reset 0 и нужно ли при этом убирать галочку Halt помимо галочки Reset.


Ещё вопросик GDB и Cortex позволяют шагать обратно в отладке как в Visual Studio?

Сообщение отредактировал IgorKossak - Feb 4 2012, 20:22
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 26 2011, 05:26
Сообщение #9





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



А кто нить знает например для подключения CMSIS нужно ли указывать библиотеки в настройках компоновщика? или достаточно в исходниках прописать include?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 27 2011, 11:42
Сообщение #10





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



Цитата(AHTOXA @ Dec 22 2011, 18:31) *
У меня прям сердце кровью обливается, глядя на ваши мучения.
Вот это не оно?
ЗЫ. А почему не возьмёте gcc? С ним-то всё вроде как должно работать нормально.

Попытался установить в адрес 0x4004 откуда должна стартовать программа и получаю на выходе.
armlink : Entry point (0x00004004) points to a Thumb instruction but is not a valid Thumb code pointer.

ещё смущают сообщения: не знаю как от них избавится
warning: Loadable segment "MAPPED_IRQ" outside of ELF segments
warning: Loadable segment "RW_IRAM1" outside of ELF segments

Сообщение отредактировал XRuZzz - Dec 27 2011, 13:41
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 28 2011, 15:29
Сообщение #11


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



В Thumb режиме младший бит адреса должен быть установлен в 1.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
XRuZzz
сообщение Dec 30 2011, 12:50
Сообщение #12





Группа: Участник
Сообщений: 11
Регистрация: 24-01-10
Пользователь №: 55 035



Цитата(AHTOXA @ Dec 28 2011, 19:29) *
В Thumb режиме младший бит адреса должен быть установлен в 1.

Так если указать адрес 0x4005 то также вылетаем (хотя я всегда думал что точка входа это 0x4004)
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Feb 4 2012, 07:28
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Бьюсь с похожей проблемой, отладка вроде бы работает, но периодически случаются необъяснимые вылеты. Или, например, первая попытка дебага вылетает, а последующие работают.. И другие чудеса.

Инициализация выглядит следующим образом:

Код
target remote localhost:2331
monitor endian little
monitor flash device = LPC1768
monitor speed 1000
monitor reset
load
monitor reg r13 = (0x00000000)
monitor reg pc = (0x00000004)
# User mode. The on-chip Flash memory is mapped to address 0.
set *0x400FC040 = (0x00000001)
break main
continue


В этом виде хоть как-то работает, но нестабильно sad.gif


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post

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

 


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


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