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

 
 
> 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
 
Start new topic
Ответов
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

Сообщений в этой теме


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

 


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


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