Перейти к содержанию
    

Вопросы по Eclipse, CDT, Zylin embedded CDT

есть проект написанный на Си в IAR для MSP430. Можно как нибудь настроить eclipce на сборку проекта IAR-овскими сборщиком и компилятором xlink и icc430?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что не получается? Написать makefile?

Попробуйте вот это: iar_eclipse_msp430.rar

Это я взял свой старый makefile для сборки iar (для borland make) и поправил его для GNU make.

Компилирует все *.c файлы, которые найдёт в папке src.

К сожалению проверить не на чем, IAR-а давно нет.

Исходный makefile.bor прилагается. Пример проекта eclipse - тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не уточнили чьей сборкой gcc вы пользуетесь, но у CodeSourcery есть в поставке Sourcery G++ Lite 4.4-191 for MIPS ELF утилита mips-sde-elf-run для запуска программы в симуляторе, или внутри gdb можно, указав "target sim". В Getting Started про это написано.

 

Именно CodeSourceryLite и пользуюсь в качестве компилятора. К сожалению, я не смог запустить mips-sde-elf-run по GettingStarted, поэому вопрос мой остаётся в силе. Надеюсь на вашу помощь. :help:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению, я не смог запустить mips-sde-elf-run по GettingStarted, поэому вопрос мой остаётся в силе. Надеюсь на вашу помощь. :help:

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

 

P.S. с мипсами дела не имел.

UPD.

Попробовал примерчик с факториалом.

mips-sde-elf-gcc -EL -mno-float -o factorial.elf factorial.c -T mipssim-hosted.ld
mips-sde-elf-gdb.exe ./factorial.elf
> target sim
> load
> b main
> run
> n

топает по строчкам, только принтф не работает :( (или я не умею его готовить) Не смотрите что из командной строки, отладчик легко цепляется к эклипсу. Через mips-sde-elf-run запустить не удалось, видимо надо основательно курить мануалы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При компиляции в Eclipse у меня и многих других появляется сообщение

“Error launching external scanner info generator”. Это относится к различным Eclipse-ам и различным сборкам для различных микроконтроллеров.

На интернет имеется множество предложений как от него избавиться.

Вопрос теперь не в том как от него избавиться. Интригует уже другое.

Пару дней поиска на интенет не дало абсолютно никакого ( ни одного!) ответа на вопрос о том

1 что же, собственно, такое «external scanner info generator»,

2 зачем он нужен

3 и как работает.

Может ли кто-нибудь дать хоть какое-то объясненте по этому вопросу.

Лучше будет в виде живого ответа, поскольку интуиция подсказывает что даже хорошая ссылка не прояснит всё что необходимо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При компиляции в Eclipse у меня и многих других появляется сообщение

“Error launching external scanner info generator”.

Project->Properties->C/C++ Build->Discovery Options->Включить Automate discovery of paths and symbols, Включить Enable generate scanner info command, в поле Compiler invocation command впишите свой компилятор (у меня arm-none-eabi-gcc), в поле Compiler invocation arguments должно быть -E -P -v -dD ${plugin_state_location}/${specs_file}

Теоретическую подоплёку всего этого не знаю, читать документацию надо по gcc и его аргументам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 что же, собственно, такое «external scanner info generator»,

2 зачем он нужен

3 и как работает.

Чисто интуитивно: он сообщает оболочке о путях к системным библиотекам. Если он есть, то в дереве проекта в разделе includes появятся папки заголовочных файлов вашего компилятора и оболочка сможет искать в них всякие объявления. Возможно он также сообщает оболочке некоторые предопределенные компилятором символы (__GNUC__ и подобные). Пути из gcc добываются запуском компилятора с соответствующими ключами. Более точно понять, что же из компилятора добывает оболочка можно, прочитав описание ключей запуска: -E -P -v -dD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

Теперь, когда есть подсказка от вас, где почитать по данному поводу, займусь этим.

Я связался с Cortex M3 и имею довольно большой объём работы.

Выбрал Eclipse (Galileo)+Yagarto. В то же время установил ещё и инструментарий от

Olimex ARM-USB-OCD (c Eclipse - Ganymede) . Хочу также настроить Insight.

Буду делиться впечатлениями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Со вчерашнего дня бороздил интернет по поводу следующего вопроса:

Eclipse (Galileo и Ganymede, оба для С/С++ , Yagarto) при создании New Project C не даёт возможности выбрать Generate makefile automatically . Поле greyed out или disabled.

Интернет ссылается на то что при создании нового проекта нужно выбрать Managed Makefile тип проекта. С серьёзными времязатратами выяснилось что Managed Makefile термин теперь в Eclipse не используется. Для автоматической генерации makefile теперь дОлжно использовать

New Project | C Project | C Executable (или что-то звучащее похожим образом). Но как раз этой опции у меня не возникает.

То что предлагается в моих Eclipse- ах это New Project | C Project | Makefile project где имеется выбор из Empty Project и Hello World C++ Project. Toolchains: Other Toolchain и только это.

Знает ли кто нибудь как можно осуществить автогенерацию makefile в Eclipse?

Может ли быть что у меня не установлен или не прописан в PATH-переменной какой-нибудь компонент?

Многие примеры различных проектов при этом номально компилируются. Также, если я добавляю в проект makefile вручную, то он скомпилируется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Именно CodeSourceryLite и пользуюсь в качестве компилятора. К сожалению, я не смог запустить mips-sde-elf-run по GettingStarted, поэому вопрос мой остаётся в силе. Надеюсь на вашу помощь. :help:

 

Printf в симуляторе elf-run из под Win32 действительно не работает. В том числе и если запускать target sim в gdb. Об этом уже спрашивали на ARM форуме Sourcery, правда без ответа... Не работает вывод и в симуляторе сборки Клена. Наверное, какая-то общая проблема в заглушками (системными вызовами) для функций _write и т.п. Надо качать ограниченную по времени версию полнофункционального Sourcery c IDE и использовать эмулятор qemu. Тогда printf заработает. Потом можно даже научиться запускать target qemu в gdb и вернуться к применению lite компилятора. К тому же, в qemu можно хотя бы приблизительно считать процессорное время таймером c0_count, а как это делать в sim я так и не нашел.

 

Если я не прав (сам только недавно связался с gcc), с удовольствием выслушаю подсказку. Может надо Mingw доустанавливать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Знает ли кто нибудь как можно осуществить автогенерацию makefile в Eclipse?
Смею предположить (сам не пользуюсь, пишу makefile вручную), что оболочка должна знать, какие ключи подставлять компилятору. И как-то должна давать вам возможность задавать их галочками. Вероятно, эти возможности предоставляет соответствующий плугин - для ARM или для AVR. Попробуйте, отпишитесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to Сергей Борщ - Попробуйте, отпишитесь.

 

Спасибо, Сергей.

Но я этих галочек как раз давно стараюсь поймать, т.е. определить где бы они могли находиться.

Я сейчас ещё попытаюсь выяснить все ли необходимые компоненты присутсрвуют. Одна возможная закономерность проявляется сейчас в том что там где Eclipse работает с Cygwin – там всё в порядке, (т.е. имеется возможность выбора между Managed Makefile и Standard Makefile типами проекта. Там, где Eclipse работает с YAGARTO,этот выбор может быть или не быть. Сейчас это уточняю. Не исключено, однако, что это тупиковое направление.

Отпишусь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что не получается? Написать makefile?

Попробуйте вот это: iar_eclipse_msp430.rar

Это я взял свой старый makefile для сборки iar (для borland make) и поправил его для GNU make.

Компилирует все *.c файлы, которые найдёт в папке src.

К сожалению проверить не на чем, IAR-а давно нет.

Исходный makefile.bor прилагается. Пример проекта eclipse - тоже.

Ну да,,,, не получается написать makefile. Ваш проект скачал, попробовал собрать - ошибки

--- compiling main.c

   IAR C/C++ Compiler V4.20.1.20017/W32, Evaluation edition for MSP430
Command line error: Unexpected command line arguments:
   Copyright 1996-2008 IAR Systems AB.
          -c
          -S
          -K
          -gA
          -RCODE
          -L./lst/
          -q
          -A./lst/
          -t8
mingw32-make: *** [obj/main.o] Error 2

 

Я сделал свой тестовый проект, типа "Hello word" в иаре. посмотрел с какими ключами вызывается icc430 И xlink. Написал свой makefile с такими же ключами.

CFLAGS    += -o $(OBJDIR)
LD_FLAGS    = -o $(EXEDIR)/$(TARGET).d43

$(HEX):    $(OBJS) makefile
    @echo --- linking...
    icc430 $(OBJDIR$)/main.r43 $(LD_FLAGS)

$(OBJDIR)/%.r43: %.c
    @echo --- compiling $(*F).c
    $(CC) $(CFLAGS) -o $@ $<

 

Получаю ошибку

**** Build of configuration Default for project testMSP430 ****

mingw32-make all 
--- compiling main.cpp

   IAR C/C++ Compiler V4.20.1.20017/W32, Evaluation edition for MSP430
   Copyright 1996-2008 IAR Systems AB.
Command line error: Option can only occur once: --output/-o
mingw32-make: *** [Debug/Obj/main.r43] Error 2

 

Почему так? Как решить проблему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

--- compiling main.c

   IAR C/C++ Compiler V4.20.1.20017/W32, Evaluation edition for MSP430
Command line error: Unexpected command line arguments:

 

Хм. Видимо у меня был очень старый IAR :)

Но не суть. Раз ключи запуска вы знаете, то проблема решаемая. Запишите все ключи в CFLAGS.

Для проверки правильности формирования командной строки запускайте

make -n

, этот ключ говорит make ничего не выполнять, а лишь напечатать команды, планируемые к выполнению.

 

CFLAGS    += -o $(OBJDIR)

А здесь вроде нужна большая "O".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А здесь вроде нужна большая "O".

 

icc430
-o file|path    Specify object file
-O[n|l|m|h|hs|hz]
                Select level of optimization:
                   n   No optimizations
                   l   Low optimizations (default)
                   m   Medium optimizations
                   h   High optimizations
                   hz  High optimizations, tuned for small code
                   hs  High optimizations, tuned for high speed

 

что означает строка в makefile "$(CC) $(CFLAGS) -o $@ $<"? Конкретно что значит "-o $@ $<"

Изменено пользователем juvf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...