Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по Eclipse, CDT, Zylin embedded CDT
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Сергей Борщ
Чтобы не создавать по отдельной ветке на каждый мелкий вопрос, предлагаю обсуждать здесь всякие вопросы, касаемые работы в среде Eclipse. В крайнем случае можно будет при необходимости что-то "отпочковать" в отдельную ветку.

Вопрос первый - как в перспективе Debug расположить окно с переменными, регистрами и т.д. вдоль всего правого края экрана сверху вниз?

Вопрос второй - как заставить его показывать в окне регистров содержимое SPSR (для ARM), а также "затененных" регистров SP и LR (IAR их как-то показывает)?

Вопрос третий - как поставить точку останова на конкретный адрес не перезапуская отладку? Про break *addres в Debug dialog->commands->'Run' commands я знаю, но это требует перезапуска отладки. На строку в исходнике поставить можно, а если мне надо поставить на конкретную команду, причем не дожидаясь пока эта команда попадет в окно дизассемблера?

Вопрос четвертый - как его заставить показать в окне дизассемблера кусок с произвольного адреса или как "пролистать" дизассемблированный текст дальше вверх-вниз? Попутный вопрос - можно ли его заставить в этом окне показывать команды по порядку адресов - мне он часто показывает команды с пропусками или в причудливо перемешанном порядке.

Вопрос пятый - (ARM) можно ли как-то сбросить ядро не перезапуская сеанс отладки? Т.е. легким движением перевести его в ARM, SYSTEM, записать в PC 0 и остановить его на нулевом адресе.

Вопрос шестой - как его заставить запомнить, что в окне memory я хочу всегда видеть шестнадцатиричные цифры и не спрашивать об этом после каждого перезапуска отладки? При добавлении адреса в окно он этого дурацкого вопроса не задает.

Вопрос седьмой - где ставится галочка "открывать преспективу Debug при запуске отладки"? Оно спросило когда-то при создании не то проекта, не то воркспейса, я ответил неправильно а теперь не могу найти где это изменить.

Вопрос восьмой - работа с системой контроля версий. Что из каталога .metadata надо хранить в репозитории, а что создается само при старте среды? Хранить весь каталог не подходит - в нем после каждого старта среды создается куча новых файлов. Не хранить его тоже неудобно. Как я понял, в нем живут настройки Debug. Во всяком случае при переносе только проекта (без workspace) на другую машину настройки отладки пропадают (кто это придумал?? ведь в этих настройках указывается конкретный проект и выходной файл, т.е. эти настройки больше привязаны к конкретному проекту а не к workspace.)
MrYuran
А у меня есть вопрос №0: (идиотский такой)
как вообще дебаг запустить? (не очень то и нужно, в общем-то, привычнее как-то в УАРТ тестовые сообщения выводить, но вдруг понадобится)
Я вроде пытался-пытался, но никак.
Пишет Error creating session: Exec error: Launching failed

Правда, я в последнее время компилю под релиз, наверно из-за этого.
Вообще неплохо бы создать ФАК по установке и настройке эклипс с нуля, думаю, это многим будет интересно
msalov
Цитата(MrYuran @ Apr 4 2008, 13:53) *
как вообще дебаг запустить?

По настройке проекта для использования mspgcc есть такая инструкция http://msp430.techcontent.net/wiki/index.php/IDEs/Eclipse
Непомнящий Евгений
Цитата(Сергей Борщ @ Apr 4 2008, 14:43) *
Вопрос восьмой - работа с системой контроля версий. Что из каталога .metadata надо хранить в репозитории, а что создается само при старте среды? ...

Я пришел к тому, что workspace вообще не храню в репозитории. Один раз его настроил, после чего сделал экспорт настроек в файл (File->export->settings). Затем при необходимости просто создаю новый workspace и импортирую настройки из файла.
Сергей Борщ
Цитата(Непомнящий Евгений @ Apr 4 2008, 14:14) *
Я пришел к тому, что workspace вообще не храню в репозитории. Один раз его настроил, после чего сделал экспорт настроек в файл (File->export->settings).
Я тоже не храню, но приходится после вытягивания проекта из репозитория на новое место кучу настроек делать вручную. Про экспорт не знал. Спасибо. Для основных настроек отличное решение. Попробовал. Нет в этом файле настроек отладчика sad.gif Нашел их в подкаталоге .metadata/.plugins/org.eclipse.debug.core/.launches/
AHTOXA
Цитата(Сергей Борщ @ Apr 4 2008, 16:43) *
Вопрос седьмой - где ставится галочка "открывать преспективу Debug при запуске отладки"? Оно спросило когда-то при создании не то проекта, не то воркспейса, я ответил неправильно а теперь не могу найти где это изменить.


Меню Window-Preferences, слева в дереве Run/Debug-Perspectives.
COMA
Если ничего не попутал, в CDT появилась GDB Hardware Debug. Можно и без Zylin embedded CDT отлаживать.
Сергей Борщ
Цитата(AHTOXA @ Apr 4 2008, 22:08) *
Меню Window-Preferences, слева в дереве Run/Debug-Perspectives.
Спасибо. Седьмой вопрос закрыт. Я еще обнаружил, что можно заставить его сразу по-умолчанию выводить содержимое регистров в шестнадцатиричном виде - Window->Preferences->C/C++->Debug.
Непомнящий Евгений
Цитата(Сергей Борщ @ Apr 4 2008, 14:43) *
Вопрос первый - как в перспективе Debug расположить окно с переменными, регистрами и т.д. вдоль всего правого края экрана сверху вниз?

Если это обычное eclipse-окно, то цепляете его за заголовок, тащите к правому краю экрана (именно экрана, а не окна редактора) - курсор примет вид "стрелка влево" и отпускаете. При этом окно расположится сверху до низу.
Сергей Борщ
Цитата(Непомнящий Евгений @ Apr 7 2008, 13:24) *
цепляете его за заголовок, тащите к правому краю экрана (именно экрана, а не окна редактора)
Шаман! И как у меня раньше это не получалось? В ИАРе практически такая же методика... Спасибо! Работать стало гораздо удобнеее. a14.gif
MrYuran
Цитата(Непомнящий Евгений @ Apr 4 2008, 14:14) *
Один раз его настроил, после чего сделал экспорт настроек в файл (File->export->settings)

??? !
Не понял!
Нажмите для просмотра прикрепленного файла
У меня нету export->settings!
Есть только General->Prefences
Это то же самое? Похоже,что нет
Сёдня сдуру нажал кнопочку "Reset to defaults" в настройках проекта, потом целый час восстанавливал пути проекта, компилятора и линкёра 07.gif
Хотелось бы избежать таких проблем в будущем
И ещё: почему опадают галки в настройках "Errors parsers" билдера?
Нажмите для просмотра прикрепленного файла
Никак не найду закономерность...
demiurg_spb
У меня тоже есть два идиотских вопроса:
1. Где задаётся подсветка синтаксиса (хочу PROGMEM подсвечивать как часть языка С)
2. Каким-нибудь образом можно изменить порядок сортировки файлов в ProjectExplorer (хочу по имени, а не по типу).
Спасибо!
Daskar
Цитата(demiurg_spb @ Apr 14 2008, 23:36) *
У меня тоже есть два идиотских вопроса:
1. Где задаётся подсветка синтаксиса (хочу PROGMEM подсвечивать как часть языка С)

Подсветка задаётся так:
Window->Preferences->C/C++->Editor->Syntax Coloring
а шрифты меняются почти там же:
Window->Preferences->General->Appearance->Colors and Fonts

А как быть с вопросом "0" для AVR - отладка в симуляторе?
Как настраивать окно: Create, manage, and run configuration?
Удаляю настройку для C/C++ Local Application
Для Zylin Embedded debug (Native) задаю настройки:
На вкладке Main -
имя настройки в окне Name;
в окне Project - имя проекта;
в окне C/C++ Application путь к файлу *.elf;
На вкладке Debugger -
в окне Debugger - Embedded GDB;
в поле Debugger Options на вкладке Main в окне GDB Debugger: путь к avr-gdb.exe;
что должно быть в поле GDB command file - не знаю!;
Вкладка Commands - без изменений;
Вкладка Source - Default;
Вкладка Common - Local file, в окне Display in favorites menu - галка Debug.
Компилирую проект - проект компилируется - Finished building: sizedummy
Запускаю отладку:
На вкладеке Console - No registers.
В окне Debug - Имя настройки, Embedded GDB, Thread[0] (Running) и пути к avr-gdb.exe
и файлу - *.elf
Кнопки Step Into, Step Over и т.д. - бледные. Отладка не происходит.
На вкладке Registers в контекстном меню правой кнопки выбираю все регистры - не помогает!
Подскажите pls что не так делаю?
Сергей Борщ
Цитата(Daskar @ Apr 15 2008, 19:23) *
Подсветка задаётся так:
Window->Preferences->C/C++->Editor->Syntax Coloring
а шрифты меняются почти там же:
Window->Preferences->General->Appearance->Colors and Fonts
Я тоже излазил эти окна, но так и не нашел, где там указывать новые ключевые слова.
Цитата(Daskar @ Apr 15 2008, 19:23) *
А как быть с вопросом "0" для AVR - отладка в симуляторе?
Не пробовал, но попытаюсь на основе борьбы с внутрисхемным отладчиком:
Цитата(Daskar @ Apr 15 2008, 19:23) *
в окне Debugger - Embedded GDB;
в поле Debugger Options на вкладке Main в окне GDB Debugger: путь к avr-gdb.exe;
что должно быть в поле GDB command file - не знаю!;
Пусто. Я пробовал указывать командный файл, но он почему-то приделывал к этому файлу цыгвиновский путь и не находил. Решил иначе, см. ниже.
Цитата(Daskar @ Apr 15 2008, 19:23) *
Вкладка Commands - без изменений;
два варианта - либо перечислить команды на этой вкладке либо вписать там команду source <имя файла> и в этом файле уже указать команды. Команды должны быть примерно следующие:
Код
target remote localhost:1212  #simulavr слушает на порту 1212
load   #загрузить .elf в память симулятора
break main #по желанию. можно и break *0 - остановить на нулевом адресе.
continue #бежать до точки останова.
перед этим надо запустить simulavr. Попробуйте, вдруг поможет. Более детально описание команд для вкладки Commands нужно смтореть в описании simulavr и gdb. Как их вводить вручную во время отладки я пока не нашел.
Непомнящий Евгений
Цитата(MrYuran @ Apr 14 2008, 13:11) *
Есть только General->Prefences
Это то же самое? Похоже,что нет

Я имел в виду именно это. Понадеялся на память и ошибся smile.gif
Сохраняются только настройки воркспейса - хоткеи, раскраска и т.д.
Цитата
И ещё: почему опадают галки в настройках "Errors parsers" билдера?

С этим не сталкивался
gte
Поставил amontec-sdk4arm, нашел демо проект lpc2378_demo1, уровень оптимизации поставил на 0. Компиляция без ошибок. Запустил sdk4arm-insight в режиме симуляции. Симуляция зависла на
124 while ( ((PLLSTAT & (1 << 26)) == 0) ); /* Check lock bit status */

Стал смотреть более внимательно и обнаружил непонятное для меня.
Посмотрите, пожалуйста, на строки 0x71e, 0x720, 0x722 - это нормально?

Код
    111        PLLCFG = PLL_MValue | (PLL_NValue << 16);
-    0x70a    <ConfigurePLL+66>:        movs    r2, #11
-    0x70c    <ConfigurePLL+68>:        subs    r3, #136
-    0x70e    <ConfigurePLL+70>:        str    r2, [r3, #0]
    112        PLLFEED = 0xaa;
-    0x710    <ConfigurePLL+72>:        ldr    r2, [pc, #92]    (0x770 <ConfigurePLL+168>)
-    0x712    <ConfigurePLL+74>:        movs    r0, #170
-    0x718    <ConfigurePLL+80>:        str    r0, [r2, #0]
    113        PLLFEED = 0x55;
-    0x714    <ConfigurePLL+76>:        movs    r1, #85
-    0x71a    <ConfigurePLL+82>:        str    r1, [r2, #0]
    114          
    115        PLLCON = 1;                /* Enable PLL, disconnected */
-    0x716    <ConfigurePLL+78>:        subs    r3, #4
-    0x71c    <ConfigurePLL+84>:        str    r4, [r3, #0]
    116        PLLFEED = 0xaa;
-    0x71e    <ConfigurePLL+86>:        str    r0, [r2, #0]
    117        PLLFEED = 0x55;
-    0x722    <ConfigurePLL+90>:        str    r1, [r2, #0]
    118    
    119        CCLKCFG = CCLKDivValue;    /* Set clock divider */
-    0x720    <ConfigurePLL+88>:        adds    r3, #132
-    0x724    <ConfigurePLL+92>:        movs    r2, #4
-    0x726    <ConfigurePLL+94>:        str    r2, [r3, #0]
    120    #if USE_USB
    121        USBCLKCFG = USBCLKDivValue;        /* usbclk = 288 MHz/6 = 48 MHz */
-    0x728    <ConfigurePLL+96>:        movs    r2, #5
-    0x72a    <ConfigurePLL+98>:        adds    r3, #4
-    0x72c    <ConfigurePLL+100>:        str    r2, [r3, #0]
    122    #endif
    123    
    124        while ( ((PLLSTAT & (1 << 26)) == 0) );    /* Check lock bit status */
-    0x72e    <ConfigurePLL+102>:        ldr    r2, [pc, #56]    (0x768 <ConfigurePLL+160>)
-    0x730    <ConfigurePLL+104>:        ldr    r3, [r2, #0]
-    0x732    <ConfigurePLL+106>:        lsls    r1, r3, #5
-    0x734    <ConfigurePLL+108>:        bpl.n    0x72e <ConfigurePLL+102>
amw
Почитал, решил присоединится в eclipse-водам smile.gif
Возникли вопросы:
1. В проект добавляются файлы только автоматически? То есть все, что в каталоге проекта автоматически становиться его частью? А можно ли сделать так, что автоматом файлы и каталоги не добавлялись, а я добавлял их вручную?
2. Имеются проекты разделенные на каталоги. Например include - только *.h файлы, src - только *.c файлы, linker - только скрипты линкера и т.д. Прикомпиляции eclipse создает подкаталог Debug и компилирует оттуда. Указание ключа (как я раньше делал) -Iinclude приводит к тому, что gcc ищет каталог Debug/include а не include. Пока исправил ключ на -I../include, но это не нормально, по моему. Как объяснить eclipse, чтобы он брал не только src но и другие (выбранные мной) каталоги в Debug?
3. Работаю в Linux и потому *.s и *.S - это разные типы файлов. Нашел окно, где задаются типы файлов, добавил *.S - Assembler source file. Применил, нажал ОК. Открываю снова окно настроек типов файлов - моего определения нет! Куда оно делось и как его сохранить?
Сергей Борщ
Цитата(gte @ Apr 19 2008, 12:44) *
Симуляция зависла на
124 while ( ((PLLSTAT & (1 << 26)) == 0) ); /* Check lock bit status */
Логично. 26 бит в PLLSTAT выставляется аппаратно, о чем симулятор, скорее всего, не знает. Чтобы проскочить это место нужно либо вручную взвести в окне памяти нужный бит в нужной ячейке, либо временно добавить в предыдущий код строчку, взводящую этот бит.
Цитата(gte @ Apr 19 2008, 12:44) *
Стал смотреть более внимательно и обнаружил непонятное для меня.
Посмотрите, пожалуйста, на строки 0x71e, 0x720, 0x722 - это нормально?
Вас смущает, что строки идут не по порядку адресов? Да, я это упоминал в четвертом вопросе первого поста. А в самом коде криминала не видно, кроме записи слова в байтовый PLLFEED. Не знаю, как отреаирует на это живой кристалл. Скорее всего нормально, там регистры идут с шагом 4 байта.
Отступление: Аналог Девайс вот умудрились в своих ADuC70xx сделать трехбайтовый регистр FEESIGN. Какой командой они планировали в него писать?

Цитата(amw @ Apr 19 2008, 13:25) *
1. В проект добавляются файлы только автоматически? То есть все, что в каталоге проекта автоматически становиться его частью? А можно ли сделать так, что автоматом файлы и каталоги не добавлялись, а я добавлял их вручную?
Скорее это файлы, которые он показывает в дереве проекта. А что будет компилиться - зависит от makefile. Во всяком случае так происходит, если при создании проекта выбрать makefile project.
Цитата(amw @ Apr 19 2008, 13:25) *
При компиляции eclipse создает подкаталог Debug и компилирует оттуда.
У меня он ищет makefile в каталоге проекта, т.е. в том, где лежат .cproject и .project. А уже все подкаталоги создает makefile относительно своего расположения.
amw
Цитата(Сергей Борщ @ Apr 19 2008, 14:04) *
Скорее это файлы, которые он показывает в дереве проекта. А что будет компилиться - зависит от makefile. Во всяком случае так происходит, если при создании проекта выбрать makefile project.
У меня он ищет makefile в каталоге проекта, т.е. в том, где лежат .cproject и .project. А уже все подкаталоги создает makefile относительно своего расположения.

Ну я для начала выбрал проект "Managed Make C Project", то есть Makefile создается и изменяется автоматически (я правильно понял?). Советуете использовать Standard Make C Project?
gte
Цитата(Сергей Борщ @ Apr 19 2008, 15:04) *
Логично. 26 бит в PLLSTAT выставляется аппаратно, о чем симулятор, скорее всего, не знает. Чтобы

Да, но строки
Код
    SCS |= 0x20;            /* Enable main OSC */
while( !(SCS & 0x40) );    /* Wait until main OSC is usable */

он проходит. Правда только в том, случае, если выждать заметное время, затем остановить пошаговое выполнение, а потом продолжить. В этом случае команда выполняется.

И попутно.
Можно в нем как-то смотреть содержание отдельных ячеек памяти? Хочется состояние регистров смотреть.
Цитата
А в самом коде криминала не видно, кроме записи слова в байтовый PLLFEED.

Именно это и смущает. А если переставить предыдущие команды, то уже совсем не безобидно. Правда, код все же оптимизирован, может в этом дело.
gte
Дошел до реальной платы. Пока не приехал MT-Link пытаю wiggler.
Стоит Yagarto (openocd-r520, а не 592). Настроил по примеру две конфигурации openocd для загрузки и отладки из флэш. Запустил оба, затем настроенный embedded debug (native). Процесс замерз на 27% с сообщением

launching dos_2368
launching: GDB commands: continue

В чем может быть причина? Может wiggler? У меня NSRST на 15 ноге инверсный, а NTRST на 3 ноге нет. В зависшем положении NSRST =1, а на NTRST импульсы.

Тесты сообщений выдаваемые при запуске и файлы *.cfg приложил.
Да, в *.cfg из lpc2378_demo1_20070629 от Martin Thomas ошибка в строке
flash bank lpc2000 0x0 0x80000 0 0 lpc2000_v2 0 12000 calc_checksum - должно быть 0x80000 0 0 0 lpc2000_v2.
MrYuran
Цитата(amw @ Apr 19 2008, 14:15) *
Ну я для начала выбрал проект "Managed Make C Project", то есть Makefile создается и изменяется автоматически (я правильно понял?). Советуете использовать Standard Make C Project?

Для начала в свойствах компилятора нужно указать все папки проекта.
А потом отдельные файлы можно выключить (правая мышь->Exclude from build).
Значки "с" и "h" на отключенных файлах становятся не сплошными, а контурными
amw
Цитата(MrYuran @ Apr 24 2008, 08:19) *
Для начала в свойствах компилятора нужно указать все папки проекта.
А потом отдельные файлы можно выключить (правая мышь->Exclude from build).
Значки "с" и "h" на отключенных файлах становятся не сплошными, а контурными

Хм. Обратная логика smile.gif.
Спасибо.
MrYuran
Цитата(amw @ Apr 24 2008, 10:47) *
Спасибо.

Да не за что.
Я вот уже склоняюсь к мысле, что надо ручками мэйк писать.
Синтаксис немного необычный (для меня)
ЗАТО:
1. Не надо в начале каждого проекта колупать туеву хучу всяких мелких настроечек (и всё равно что-нето забудешь)
2. Автомэйк не всегда делает так, как хочется, особенно в сложных проектах
AHTOXA
Цитата(MrYuran @ Apr 24 2008, 14:32) *
Я вот уже склоняюсь к мысле, что надо ручками мэйк писать.


Воистину так:-)

Цитата(MrYuran @ Apr 24 2008, 14:32) *
Настоящие программеры делают так


smile.gif
Сергей Борщ
Цитата(MrYuran @ Apr 24 2008, 11:32) *
ЗАТО:

3. Проект легко отделяется от Эклипсы и может существовать отдельно.
mdmitry
Цитата(Сергей Борщ @ Apr 24 2008, 13:27) *
3. Проект легко отделяется от Эклипсы и может существовать отдельно.

+1
Удобно и независимо от оболочки. Для Winavr только так и использую. Makefile редактирую как мне надо с добавлением необходимого.
klen
все было шеколадно пока не обновился ....

работаю для АRМ

после обновления имею
Eclipse 3.3.2 Build id: M20080221-1800
ZylinCDT версии 4.1.16
CDT 4.0.3.200802251018
gdb6.8

косяк в том что теперь CDT упорно создает в корне воркспейса папку zylin-cdt-debugging и почему то при отладке ищет именно там собранный бинарник. 07.gif с какого перепоя????

скрипт для осd в части касающейся :
Код
target remote localhost:3333
monitor poll
monitor arm7_9 dcc_downloads enable
monitor flash probe 0
monitor flash erase_sector 0 0 26
monitor flash write_bank 0 out/image.bin 0x0
monitor reset run
monitor soft_reset_halt
monitor arm7_9 force_hw_bkpts enable
symbol-file out/image.elf
thbreak main
continue


так вот СDT почемуто ????? выполняет команду скрипта
monitor flash write_bank 0 out/image.bin 0x0 из текущей директории workspase/PROJECT_NAME/out/
а команду
symbol-file out/image.elf из текущей директории workspase/zylin-cdt-debugging/out/image.elf

в результате чего OCD чесно заливает бинарник во флешь а GDB чесно пытается найти ELF там где ему сказал CDT(т.е там где его ессесно нет)

короче так.. кто еще не налетель на
эту "фичу" не обновляйте ZylinCDT
Очень возможно это просто несовместимость форматов файлов проекта от версии к версии - ну типа они там чето дорасширили в формате.
LessNik
Импортировал некоторые лишние файлы в проект.
А как можно убрать файл из Project Explorerа, так чтобы он не удалялся с винта физически?
Непомнящий Евгений
Цитата(LessNik @ May 6 2008, 16:56) *
Импортировал некоторые лишние файлы в проект.
А как можно убрать файл из Project Explorerа, так чтобы он не удалялся с винта физически?

Насколько я понимаю, он показывает содержимое всех вложенных папок проекта. Если вы добавляли файл руками (создав ссылку) - ее можно удалить. Если файл лежит в подпапке проекта - можно только настроить фильтры так, чтобы он не отображался в окне explorer-а.
IgorKossak
Цитата(LessNik @ May 6 2008, 15:56) *
Импортировал некоторые лишние файлы в проект.
А как можно убрать файл из Project Explorerа, так чтобы он не удалялся с винта физически?

Выделяете этот файл в Project Explorer и нажимаете delete. Никуда он с винта не денется. Всегда так делаю.
Непомнящий Евгений
Цитата(IgorKossak @ May 7 2008, 09:07) *
Выделяете этот файл в Project Explorer и нажимаете delete. Никуда он с винта не денется. Всегда так делаю.

У меня он спросил "Are you sure you want to delete 'file' from filesystem?" И когда я ответил yes - действительно потер файл. По-моему, ваш способ работает только для руками созданных ссылок на файлы...
MrYuran
Цитата(IgorKossak @ May 7 2008, 08:07) *
Выделяете этот файл в Project Explorer и нажимаете delete. Никуда он с винта не денется. Всегда так делаю.

Нажмите для просмотра прикрепленного файла
Нажимаешь ес - честно удаляет из файловой системы и проекта.
но - оставляет и там, и там
IgorKossak
Цитата(Непомнящий Евгений @ May 7 2008, 08:11) *
У меня он спросил "Are you sure you want to delete 'file' from filesystem?" И когда я ответил yes - действительно потер файл. По-моему, ваш способ работает только для руками созданных ссылок на файлы...

Файлы в проект я добавляю через Import -> File System всю папку скопом с подпапками, потом удаляю ненужное, но на диске файлы, удалённые из проекта остаются.
Не знаю то ли Вы имели в виду под ручным созданием ссылок на файлы.
LessNik
У меня файл удаляется полностью с винта и с проекта. Если файл предварительно скопировать в другое место, затем удалить его из проекта (удалится физически), затем копию файла снова поместить в папку, где до этого был оригинал, то в ProjectExplorere снова он появится (после обновления проекта).

Я до этого работал в вислике (Visual Slick Edit), решил перебраться на фришный софт. Пытаюсь перетащить проект под эклипс.

Как мне это сделать быстро и безболезнено???

Мне не нужно видеть все файлы, которые у меня есть на винте в папках, но и удалять их нельзя. По файлу добавлять - не дело. Проект большой с множеством файлов и папок.

P.S. Делал через Import -> File System
Непомнящий Евгений
Цитата(IgorKossak @ May 7 2008, 10:17) *
Файлы в проект я добавляю через Import -> File System всю папку скопом с подпапками, потом удаляю ненужное, но на диске файлы, удалённые из проекта остаются.
Не знаю то ли Вы имели в виду под ручным созданием ссылок на файлы.

Насколько я понимаю, импорт->файлсистем просто копирует файлы из файловой системы в подпапки проекта. При этом когда вы удаляете файл из проекта, он физически удаляется с диска. Изначальный файл, разумеется, при этом никуда не девается.
Ручное создание ссылок - это new\file\advanced\link to filesystem. При этом файл в проект не копируется. При удалении такого файла из проекта удаляется только ссылка. Файл на диске остается.


Цитата(LessNik @ May 7 2008, 10:33) *
У меня файл удаляется полностью с винта и с проекта. Если файл предварительно скопировать в другое место, затем удалить его из проекта (удалится физически), затем копию файла снова поместить в папку, где до этого был оригинал, то в ProjectExplorere снова он появится (после обновления проекта).

В проект входят все файлы и папки, которые лежат на диске в папке с проектом. Если руками добавить\потереть файлы оттуда, то они станут видны в проекте после обновления.

Цитата
Я до этого работал в вислике (Visual Slick Edit), решил перебраться на фришный софт. Пытаюсь перетащить проект под эклипс.

Как мне это сделать быстро и безболезнено???

Мне не нужно видеть все файлы, которые у меня есть на винте в папках, но и удалять их нельзя. По файлу добавлять - не дело. Проект большой с множеством файлов и папок.

P.S. Делал через Import -> File System

Тоже сидел на слике. Сейчас делаю так: пусть project - корневая папка проекта. Проект эклипса создаю в папке project. При этом он отображает в проекте все содержимое папки project. Часть содержимого можно выкинуть, настроив фильтры в project explorer. В принципе, мне оно особо не мешает, поэтому не заморачиваюсь. В таком режиме работы import(export)\to filesystem использовать не надо.
Насколько я понял igor kossak, он создает папку с проектом eclipse "сбоку" от реального проекта. Чтобы засосать файлы в проект, надо выполнить import\filesystem. При засасывании вы можете указать только те файлы и папки, которые вам реально нужны. Но при этом вы будете работать с копиями оригинальных файлов и чтобы "сохранить" ваши изменения в папке с проектом, надо сделать export\filesystem.
IgorKossak
Цитата(Непомнящий Евгений @ May 7 2008, 09:49) *
Насколько я понял igor kossak, он создает папку с проектом eclipse "сбоку" от реального проекта. Чтобы засосать файлы в проект, надо выполнить import\filesystem. При засасывании вы можете указать только те файлы и папки, которые вам реально нужны. Но при этом вы будете работать с копиями оригинальных файлов и чтобы "сохранить" ваши изменения в папке с проектом, надо сделать export\filesystem.

Да, увы, так и есть. Не в ту папку смотрел.
Но делать экспорт нет необходимости, т. к. применяю Subclipse.
IgorKossak
Цитата(klen @ Apr 29 2008, 09:14) *
все было шеколадно пока не обновился ....

работаю для АRМ

после обновления имею
Eclipse 3.3.2 Build id: M20080221-1800
ZylinCDT версии 4.1.16
CDT 4.0.3.200802251018
gdb6.8

косяк в том что теперь CDT упорно создает в корне воркспейса папку zylin-cdt-debugging и почему то при отладке ищет именно там собранный бинарник. 07.gif с какого перепоя????

Вышел ZylinCDT версии 4.1.17. Нет желания проверить на предмет указанного косяка?
IgorKossak
Цитата
косяк в том что теперь CDT упорно создает в корне воркспейса папку zylin-cdt-debugging и почему то при отладке ищет именно там собранный бинарник. с какого перепоя????

В zylin discuss появилась ветка с описанием этого бага, но утвердительного ответа автора пока не последовало, хотя новая версия уже вышла.
klen
чичас проверю - мне ужо терять нечего.
а Вы пока погодите smile.gif

пытаюсь эклипсу для всего насвете приладить... скатина падает под линуксом при отладке (GDB нипричем - с командной строки все шурует на оценку 5++)

и вооще поповоду качества всего насвете...
причем тенденция виднеется не только в железе и софте а в мировом-глобальном масштабе, уж не конец света наступает ли. Мысль конечно смешная но я иногда диву даюсь - признаки налицо.

обновлюсь проверю отпишусь

Нихера не поправили, желающим обновится можно не парится. Только если еще раз меня проверить - сделать копию рабочей папки эклипсы, провести апдейт, потестить и снести ее нах. Мож кому повезет smile.gif

вот скрипт
Код
symbol-file out/image.elf
target remote localhost:3333
monitor poll
monitor arm7_9 dcc_downloads enable
monitor flash probe 0
monitor flash erase_sector 0 0 26
monitor flash write_bank 0 out/image.bin 0x0
monitor reset run
monitor soft_reset_halt
monitor arm7_9 force_hw_bkpts enable
thbreak main
continue


openocd по режнему забирает бинарник где нада и сует его в флеш.
gdb по режнему получает инструкции свеху о том что все искать нада в .....\EclipseWorkspace_arm\zylin-cdt-debugging\out


я уж грешным делом подумываю а не помоч ли Zylin, доки по плагинам есть даже на русском. Както ковырялся в исходниках Zylin CDT из интереса - чисто эмбедерских примочек было кране в них мало.
IgorKossak
Цитата(klen @ May 12 2008, 17:08) *
чичас проверю - мне ужо терять нечего.
а Вы пока погодите smile.gif

Поздно smile.gif
Цитата(klen @ May 12 2008, 17:08) *
я уж грешным делом подумываю а не помоч ли Zylin, доки по плагинам есть даже на русском. Както ковырялся в исходниках Zylin CDT из интереса - чисто эмбедерских примочек было кране в них мало.

Думаю быстрее дело пойдёт.
Leen
1 Мне помог разобраться в начальных настройках проекта в эклипсе вот этот атмеловский ман:GNU-Based Software Development on AT91SAM Microcontrollers (2,9 М). Внятно написано.
2 klen, не могли бы Вы описать процесс сборки arm-elf тулз в таком виде:
какой пакет с какими ключами конфигурите и в какой последовательности? Типа, конфигурим бинутилы с ключами бла-бла, собираем, конфигурим гцц с ключами бла-бла, и т.д.
klen
Цитата(Leen @ May 13 2008, 21:26) *
2 klen, не могли бы .......



для ARM elf

binutils: --prefix= --disable-nls --enable-multilib --enable-interwork --target=arm-elf

gcc: --prefix= --disable-nls --disable-threads --disable-shared --enable-languages=c,c++,fortran --target=arm-elf --enable-interwork --enable-multilib --with-float=soft --with-newlib --with-headers=../../src/newlib/src/newlib/libc/include

newlib: --prefix= --target=arm-elf --enable-interwork --enable-multilib

gdb: --prefix= --disable-nls --enable-multilib --enable-interwork --target=arm-elf
Leen
2 klen - спасибо, все собралось, только пришлось поправить ручками файл gcc-4.3.0/libstdc++-v3/configure.ac на предмет AC_LIBTOOL_DLOPEN.
LessNik
А кто-нибудь пробовал собрать проект иаром (создать elf с отладочной информацией), а отлаживаться через эклипс, исползуя JLinkGDBServer + arm-elf-gdb?

Наблюдается какое-то странное поведение:
Ставлю точку останова на строчке while(1) в main.cpp. Видно, что программа прерывает выполнение, но while(1) не подсвечивается (вообще ничего не подсвечивается) как строчка останова. Значение глобальной переменной отображается неверно, дизасемблер не отображается. В консоль выводится следующее:

785-exec-continue
785^running
(gdb)
785*stopped,reason="signal-received",signal-name="SIGTRAP",signal-meaning="Trace/breakpoint trap",thread-id="0",frame={addr="0x90020000",func="??",args=[]}
(gdb)
786 info threads
&"info threads\n"
&"warning: RMT ERROR : failed to get remote thread list.\n"
786^done
(gdb)
787-stack-info-depth
787^done,depth="1"
(gdb)
788-stack-list-frames 0 1
788^done,stack=[frame={level="0",addr="0x90020000",func="??"}]
(gdb)
789-var-update var1
789^done,changelist=[]
(gdb)
790-var-update var2
790^done,changelist=[]
(gdb)
791-data-list-changed-registers
791^done,changed-registers=[]
(gdb)
792-data-disassemble -s 0x90020000 -e 0x90020064 -- 0
&"Cannot access memory at address 0x90020000\n"
792^error,msg="Cannot access memory at address 0x90020000"
(gdb)
793-stack-list-arguments 0 0 0
Cannot access memory at address 0x90020000
793^done,stack-args=[frame={level="0",args=[]}]
(gdb)
794-stack-list-locals 0
794^done,locals=[]
(gdb)
795-var-evaluate-expression var1
795^done,value="167772160" // Такого значения переменной быть не может
(gdb)
796-var-evaluate-expression var2
796^done,value="{...}"
(gdb)
797-data-evaluate-expression Led
797^done,value="{<No data fields>}"
(gdb)

Может что-то с elf файлом не так?

#C++ compiler options
-z2 --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa
--no_clustering --no_scheduling --debug --cpu_mode
arm --endian little --cpu ARM7TDMI --stack_align 4
--interwork -e --fpu None --eec++ --dlib_config $(LIB_DIR)\dl4tpainl8n.h

# Assembler options
--cpu ARM7TDMI --fpu None -O$(OBJ_DIR)/ -s+ -M<> -w+ -r

# Linker options
...
-Oelf,as=$(TARGET).elf -Oraw-binary=$(TARGET).a79
...
MrYuran
А чё это у меня какие-то фиговинки оранжевые появились? (см. на рис. стрелками указано)
И звёздочка какая-то чёрная около названия проекта?
Нажмите для просмотра прикрепленного файла
Раньше такого не было...
Цитата
А кто-нибудь пробовал собрать проект иаром (создать elf с отладочной информацией), а отлаживаться через эклипс, исползуя JLinkGDBServer + arm-elf-gdb?

Вот уж воистину, любит русский народ поизгаляться...
Непомнящий Евгений
Цитата(MrYuran @ May 16 2008, 12:04) *
А чё это у меня какие-то фиговинки оранжевые появились? (см. на рис. стрелками указано)
И звёздочка какая-то чёрная около названия проекта?

Это плагин системы контроля версий расставляет. Смысл каждой можно посмотреть в настройках плагина.
IgorKossak
Цитата(MrYuran @ May 16 2008, 11:04) *
Вот уж воистину, любит русский народ поизгаляться...

На мой взгляд вполне разумное стремление.
Сергей Борщ
Цитата(LessNik @ May 16 2008, 10:20) *
А кто-нибудь пробовал собрать проект иаром (создать elf с отладочной информацией), а отлаживаться через эклипс, исползуя JLinkGDBServer + arm-elf-gdb?
Пытался наоборот - создать .elf при помощи arm-elf-gcc и отлаживать его в ИАРе. Не получилось. ИАР выругался на отладочную информацию в .elf

Отладчик у ИАРа на порядок или даже два лучше чем gdb с разными GUI.
Andy Mozzhevilov
Цитата(IgorKossak @ May 16 2008, 14:57) *
На мой взгляд вполне разумное стремление.

Не знаю, насколько оно разумно. Какой в нем смысл?
Если рассуждать с точки зрения лицензионности софта, так если уж ИАР-вским компилятором проект и так собирается, так и отлаживать его в том же ИАР.
Более интересно было бы как раз, собирать проект бесплатным gcc, получить elf и грузить его в ИАРовский дебагер. Но у меня это не получилось. ИАР вроде как только умеет генерить elf, но не грузить его в свой отладчик.
Сейчас как раз тут пытаюсь наладить связку gcc + OpenOCD + ARM-USB-OCD + отладка под SlickEdit с истользованием его встроенного gdb клиента. В принципе работает неплохо, но есть ньюансы с загрузкой во flash (пробую на NXP2294 и NXP2378). Иногда всё становится колом и перестает грузиться. Разбираюсь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.