Jump to content

    
Sign in to follow this  
sleo2000

Eclipse + GCC для ARM

Recommended Posts

а попробуйте кусочками грузить

тогда не упадет, пробовал

Частично помогает если дать gdb команду

set remotetimeout NN

где NN должно больше времени заливки бинарника.

 

 

Share this post


Link to post
Share on other sites

Вопрос чисто по Eclipse: после того, как я завершаю отладку своей программы (т.е. нажимаю кнопку Terminate), в окне с исходником остается выделенной строка, на которой я прервал отладку. При переключении перспективы в "обычный" режим редактирования это выделение остается.

 

Существует ли способ это убрать? все-таки не совсем хорошо, когда отладка прекращена, а стрелочка указывает на строку и сама строка подсвечена...

 

 

Share this post


Link to post
Share on other sites

Ну что ж, все активные проекты в Keil вроде перешли в состояние "всё работает, файлы упаковать в архив и убрать в дальний угол". Так что начинаю осуществлять свою давнюю мечту - изучить Eclipse + gcc + make. Прочитал все 11 страниц этой темы, узнал много нового. Для себя составил пока такое представление (буду работать с cortex-m3):

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

2. качается eclipse-cpp сборка (helios самая последняя), gdb сервер идёт из пакета CDT и в эклипсе доступен по умолчанию (или накрайняк ставится через install new software), на zylin можно смело забить.

3. В eclipse ставятся плагины c/c++ gcc cross compiler support и c/c++ gdb hardware debugging - второй нужен, чтобы видеть в режиме отладки регистры процессора? а первый для чего?

4. опять же в Eclipse ставится плагин gnuarmeclipse - доступен как отдельный проект на sf.net - позволяет через оконный интерфейс задавать настройки проекта - нужен новичкам типа меня, которые не смыслят в дебрях makefile (я туда заглянул, процентов 10 понял с первого раза :) )

5. Для сборки проектов под арм необходим тулчейн (который как раз при полном понимании можно пересобирать из репозиториев с помощью mingw) - грубо говоря набор утилит линкер-компилер-ещё всякие необязательные плюшки. для работы "из коробки" в порядке убывания предпочтительны - kgp (Klen GNU Package? :) Не нашёл расшифровки; сборки klen'а все хвалят) - yagarto - sourcery g++ - ну и древние gnuarm, winarm - ими уже вроде как никто давно не пользуется. Качаем сборку kgp, ставим, прописываем путь к kgp\bin в Path (равно как и для mingw\bin).

6. поскольку в сборке kgp есть openocd, то далее можно уже запускать эклипс, добавлять туда новый тулчейн через настройки, и при создании нового своего проекта указывать использование тулчейна kgp.

7. для отладки в железе надо создавать профиль отладки в свойствах проекта. отладка в симуляторе почти бесполезна, поскольку система знает только про ядро, по периферии конкретных контроллеров библиотек нет. Хотя тут надо глянуть, что такое skyeye - я так понял он из этой области как раз.

По мере уточнения информации могу эти пункты откорректировать.

С источниками файлов всех в эклипсе разобрался, запнулся на следующем: на работе сидим за проксёй с авторизацией, и эклипс не выкачивает просто так файлы через 'install new software', хотя список файлов с сервера получает. В опциях General->Network Connections ставлю active provider в 'Manual', и в http,https,socks указываю нашу проксю + логин и пароль, но эклипс всё равно не выкачивает файлы.

Посему у меня такой вопрос: правильно ли я понимаю, что вся связка eclipse+plugins+toolchain в принципе является portable? в том плане, что допустим я дома всю связку настраиваю с прописыванием Path, - копирую на usb диск, - копирую на работе, - прописываю Path и работаю, - и всё то же самое в обратном порядке если что вдруг поменяю?

Буду рад за активную критику и дополнение пунктов. А так, по 6 и 7 пункту видел хорошие руководства для новичков с картинками - я по ним знакомился со средой, делал как описано, всё начинало работать.

Share this post


Link to post
Share on other sites
правильно ли я понимаю, что вся связка eclipse+plugins+toolchain в принципе является portable?

Да. Я одно время таскал эклипсу на USB-HDD. (Надо только чтоб везде стояла джава)

Share this post


Link to post
Share on other sites

сам Eclipse вроде бы "portable", да вот только с Java у него какие-то особые отношения...

сведения противоречивые: одни говорят, что достаточно установить JRE последней версии, другие - что нужно где-то в реестре (?) что-то прописывать... во всяком случае просто так скопированный на флешку Eclipse на "не родной" машине не стартует. попытка сделать portable-комплект при помощи Virtual Box и Thinstall Virtualization Suite пока что успехом не увенчалась, хотя на виртуалке устанавливал и JRE...

Share this post


Link to post
Share on other sites
сам Eclipse вроде бы "portable", да вот только с Java у него какие-то особые отношения...

сведения противоречивые: одни говорят, что достаточно установить JRE последней версии.

так и есть.

запускаю эклипс из батника так:

set JRE_ROOT=%DEVEL_ROOT%/jre/jre-6u12

set WORKSPACE_ROOT=%DEVEL_ROOT%/workspace

set ECLIPSE_ROOT=%DEVEL_ROOT%/eclipse/eclipse-cpp-ganymede-SR2-win32/eclipse

"%ECLIPSE_ROOT%/eclipse.exe"  -vm "%JRE_ROOT%/bin/javaw" -os win32 -arch x86  -data "%WORKSPACE_ROOT%" -vmargs -Xms512m -Xmx1024m

Где DEVEL_ROOT - путь к каталогу на флэшке.

Share this post


Link to post
Share on other sites
запускаю эклипс из батника так:

...

Шикарно! спасибо! Скопировал просто установленную jre6 из папки program files в portable каталог - всё работает.

Share this post


Link to post
Share on other sites

полезный прием однако, спасибо.

 

2_Aaron

kgp (Klen GNU Package? sm.gif Не нашёл расшифровки

почти угадал ! логика однако сильная штука , не правда ли?

расшифровку искать не нада - ее даст любая тулса которую я собрал запущенная с опцией -v:

klen@klen-desktop:~$ arm-kgp-eabi-ld -v
GNU ld (Klen's GNU package (KGP) for ARM/elf platform) 2.21.52.20110617

Share this post


Link to post
Share on other sites

Доброго времени суток коллеги,

 

Заранее извиняюсь если не в ту тему запостил.

Вопрос собственно вот в чем:

 

Есть некая железяка с ARM + Embedded Linux, есть родной SDK (включая тулчейн), который естественно под линукс, есть даже хост-машина где все это развернуто под Debian'ом и работает :biggrin:

Есть другая машина под виндами, с эклипсом и CDT. Хотелось бы собирать все то же самое на ней. Какие телодвижения нужны для этого? :rolleyes:

Share this post


Link to post
Share on other sites
...

Есть некая железяка с ARM + Embedded Linux, есть родной SDK (включая тулчейн), который естественно под линукс, есть даже хост-машина где все это развернуто под Debian'ом и работает :biggrin:

Есть другая машина под виндами, с эклипсом и CDT. Хотелось бы собирать все то же самое на ней. Какие телодвижения нужны для этого? :rolleyes:

Гуглите "cygwin". Но лучше используйте нативный линукс.

Share this post


Link to post
Share on other sites
Гуглите "cygwin". Но лучше используйте нативный линукс.

А если взять виндовый кросс-компилятор под ARM (бинарники), а хедеры и либы перетянуть из родного SDK? Будет работать?

 

Share this post


Link to post
Share on other sites
А если взять виндовый кросс-компилятор под ARM (бинарники), а хедеры и либы перетянуть из родного SDK? Будет работать?

Обычно для систем сборки линукса и его окружения нужна НОРМАЛЬНАЯ файловая система, поддерживающая: атрибуты "файл запускаем", симлинки, для скриптов configure нужен нормальный, человеческий шелл, утилиты (make, patch, tar и прочие). Cygwin пытается дать такое окружение.

Если даже всё это вам и удастся обеспечить под виндой, то работать это будет ооооочень медленно. Субъективно сборка одного и того-же проекта одной и той-же версией компилятора под виндой раз 5 осуществляется дольше.

Share this post


Link to post
Share on other sites
под виндой раз 5 осуществляется дольше.

на моих машинах в 4 раза.

ИМХО для маленьких проектов для микроконтроллеров непринципиално.

Share this post


Link to post
Share on other sites
Cygwin пытается дать такое окружение.

Спасибо за разъяснение. Хоть понял для чего нужен Cygwin :rolleyes:

 

Итак, если хочется под виндами собирать под линукс, без cygwin'а не обойтись? А какой собственно кросс-компилятор посоветуете?

 

Share this post


Link to post
Share on other sites
Спасибо за разъяснение. Хоть понял для чего нужен Cygwin :rolleyes:

 

Итак, если хочется под виндами собирать под линукс, без cygwin'а не обойтись? А какой собственно кросс-компилятор посоветуете?

1. А какая причина использовать для сборки линукса виндоуз?

2. Компилятор для линукса сейчас практически один - gcc.

3. Рекомендую обратить внимание на проект "buildroot". Это набор скриптов, с помощью которого автоматизированно собирается нужный вам кросс-компилятор (из исходных кодов gcc), ядро линукса, загрузчик, файловая система, на которой будет запускаться ядро и минимальный набор утилит, которым все привыкли пользоваться в линуксе.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this