Управляем чем угодно откуда угодно

Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Обсуждение линуксовой части и софта на борту виртурилки

Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение andrewion » 09 окт 2013, 18:38

Всем привет!

Так уж получилось, что я работаю только под виндой (Win 7), а для в2р хочется что-то написать на С/С++.
Страдать и мучиться под линухой, чтобы наваять хотя бы "Hello World" - у меня не стоит желание :D
Поэтому предлагаю следующий рецепт, как собрать под винду среду для разработки на C/C++ для в2р.

Поехали!


1. Установка Eclipse IDE.
На оффициальном сайте Eclipse, можно выбрать дистрибьютив - Windows 32-bit или Windows 64-bit.
Ссылка на официальный сайт: http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2
Ссылки на версии:
Windows 32-bit - http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-cpp-indigo-SR2-incubation-win32.zip&mirror_id=1029
Windows 64-bit - http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-cpp-indigo-SR2-incubation-win32-x86_64.zip&mirror_id=1029
Не смотря на то, что у меня машина x64, но мне подошла именно версия Windows 32-bit.

После того как его скачали, извлекаем из архива его содержимое - папку eclipse.

Поскольку Eclipse написана на языке Java, то вам понадобится еще и Java Runtime Environment.
Скачать Java, можно тут: http://java.com/en/download/index.jsp


2. Установка Sourcery CodeBench Lite
Качаем отсюда : https://sourcery.mentor.com/GNUToolchain/release2029?lite=arm&cmpid=7108&signature=4-1381577337-0-cf4581ff8ef94675e83ed941837c36d8cd613c3d
Нас интересует именно версия Sourcery CodeBench Lite 2011.09-70 и дистрибьютив IA32 Windows Installer.

В итоге получим скачанный файлик - arm-2011.09-70-arm-none-linux-gnueabi.exe

Запускаем его и проходим все шаги установки. Стоит обратить внимание на поле "Modify PATH for current user" - оно должно быть выбрано - это необходимо, чтобы путь до Sourcery CodeBench был прописан в переменном окружении (environment variable) ОС.

Чтобы удостовериться, что установка прошла гладко и без сучков, в cmd, выполним следующую строку:
Код: Выделить всё
arm-none-linux-gnueabi-gcc -v

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

Если командная строка выдала ошибку, то нужно прописать вручную путь к папке с “Sourcery CodeBench” в переменных средах. У меня он выглядит так :
Код: Выделить всё
c:\Program Files (x86)\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux\bin\;



3. Собираем IDE
Код: Выделить всё
3.1 Запускаем Eclipse IDE

Из распакованного архива, запускаем файл eclipse.exe.

Первым делом Eclipse вам предложит создать workspace (рабочее пространство). Это очень важный шаг, который в дальнейшем может сильно облегчить процесс создания и настройки проектов, благодаря возможности использовать относительные пути и т.д. Выбираем рабочую папку и идем дальше.

В моём случае, рабочая папка:
Код: Выделить всё
E:\Разработка\ARM


Обязательно ставим галочку в поле "Use this as the default and do not ask again".



3.2 Устанавливаем GNU ARM Plug-in
Далее, первым делом мы должны установить GNU ARM Eclipse plug-in. Для этого заходим в меню Help->Install New Software…
В появившемся окне, в поле "Work with" добавляем ссылку на местоположение плагина:
Код: Выделить всё
http://gnuarmeclipse.sourceforge.net/updates


Жмём Enter. После чего внизу появятся доступные плагины для скачивания "CDT GNU Cross Development Tools" и его собрат "The GNU ARM Eclipse Plug-in is an Eclipse CDT Manged Build Extension". Отмечаем оба плагина галочками и жмём кнопку "Next >" далее по шагам.

Далее, в процессе установки появится предупреждение, что данный плугин содержит некие “подозрительные файлы”. Не обращаем внимание и продолжаем установку.

После установки GNU ARM Plug-in’а, installer предлогает перезапустить немедленно среду, с чем мы соглашаемся.

Теперь у нас есть все что нужно для того чтобы создать приложение для ARM микроконтроллеров : среда разработки Eclipse (со встроенным редактором кода, всплывающими подсказками, подсветка кода, вспомогательные окна и пр. полезные утилиты), Sourcery CodeBench Lite Toolchain (в состав которого входит компилятор, редактор связей, make-утилита и пр. утилиты для компиляции C/C++ кода) и ARM GNU Plug-in (графическая оболочка для настройки проекта и создания makefile’а, с последующим вызовом C/C++ Toolchain’а). Дело осталось за малым, правильно настроить проект :D


3.3 Создание проекта
Для создание проекта заходим в меню File->New->C Project. Те из вас кто предпочитает язык C++, соответственно выбирает C++ Project

Далее, в окне “Project type” выбираем “ARM Cross Target Application” и "Hello ARM World C Project", после чего в окне “Toolchains” выбираем "ARM Windows ПСС (Sourcery Lite Linux)". Также необходимо дать имя новому проекту в строке “Project name“. Новый проект будет находиться в ранее созданной рабочей папке (workspace). Жмем "Next >".
Ещё раз жмем "Next >".

На шаге "Select Configurations" жмём кнопку "Advanced setting...", появится Settings. В котором делаем следующие действия:
1. Справа переходим в пункт "C/C++ Build -> Settings"
2. Слева нужна вкладка "Tool Settings". В разделе "Target processor":
- В поле "Processor" выбираем "arm962ej-s"
- В поле Thumb (-mthumb) - ставим галочку
3. В разделе "Debugging":
- В поле "Debug format" должно быть "Toolchain default"
4. В разделе "Additional tools" с поля "Create Flash Image" снимаем галочку.
5. В разделе "ARM Windows GCC C Linker (Sourcery Lite Linux) -> General" в поле "Do not use standard start files" снимаем галочку.

А теперь жмем "Ok" и "Finish". :D

После создания нового проекта, в него уже будут включены (в папке Includes) все вспомогательные библиотеки для Sourcery CodeBench Toolchain’а. Так что прописывать пути для них в директориях проекта нет необходимости. А также сформирован C-шный файл Hello World.

Теперь нам необходимо внести правки в конфигурацию собираемого проекта. В меню

Теперь нам нужно скомпилить Hello World код, для это идём в меню Project->Build All или при помощи клавиш Ctrl+B.

3.4 Запуск программы на Виртурилке.
Переходим в папку workspace, в моём случае это папка:
Код: Выделить всё
E:\Разработка\ARM


В ней лежит созданный проект, у меня это First.
Идём во внутрь:
Код: Выделить всё
e:\Разработка\ARM\First\Debug\

И видим файл с именём *.elf - это и есть наш Эльф :D , т.е. исполняемая линухом в2р файл.

Копируем его на в2р в папку:
Код: Выделить всё
/root


Даём ему права на исполнение:
Код: Выделить всё
[root@virt2real ~]# chmod +x First.elf


Запускаем его:
Код: Выделить всё
[root@virt2real ~]# ./First.elf


И видим результат его работы:
Код: Выделить всё
!!!Hello ARM World!!!



Удачи вам в С/С++ кондинге Виртурилки! :D
Последний раз редактировалось andrewion 10 окт 2013, 11:16, всего редактировалось 1 раз.
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение phoenix367 » 09 окт 2013, 21:44

Может стоит подобные инструкции на wiki выкладывать? Хотя это больше к разработчикам вопрос.
phoenix367
 
Сообщения: 193
Зарегистрирован: 09 сен 2013, 00:19

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение andrewion » 09 окт 2013, 21:56

phoenix367 писал(а):Может стоит подобные инструкции на wiki выкладывать? Хотя это больше к разработчикам вопрос.


К wiki у меня доступа нету. Но буду очень рад, если выложат данный рецепт туда :D
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение Gol » 09 окт 2013, 22:56

andrewion писал(а):
phoenix367 писал(а):Может стоит подобные инструкции на wiki выкладывать? Хотя это больше к разработчикам вопрос.

К wiki у меня доступа нету. Но буду очень рад, если выложат данный рецепт туда :D

Мож дать доступ к вики? Добавлю юзера, на почту придёт извещение.
Аватара пользователя
Gol
 
Сообщения: 507
Зарегистрирован: 17 фев 2012, 01:44
Откуда: Тула-Свободный-Щёкино-Тула-Москва

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение krupoderov » 09 окт 2013, 23:10

Респект за инструкцию!

при компиляции

Description Resource Path Location Type
Program "make" not found in PATH hello C/C++ Problem

хотя остальное по инструкции сработало. пути прописаны нормально

d:\Projects\vir2real>arm-none-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=c:/program files (x86)/codesourcery/sourcery_codebench_lite_
for_arm_gnu_linux/bin/../libexec/gcc/arm-none-linux-gnueabi/4.6.1/lto-wrapper.ex
e
Target: arm-none-linux-gnueabi
....
krupoderov
 
Сообщения: 12
Зарегистрирован: 05 сен 2013, 09:45

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение andrewion » 09 окт 2013, 23:12

Gol писал(а):
andrewion писал(а):
phoenix367 писал(а):Может стоит подобные инструкции на wiki выкладывать? Хотя это больше к разработчикам вопрос.

К wiki у меня доступа нету. Но буду очень рад, если выложат данный рецепт туда :D

Мож дать доступ к вики? Добавлю юзера, на почту придёт извещение.


Буду рад вам помочь с wiki. Готов выложить туда данную инструкцию.
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение andrewion » 09 окт 2013, 23:32

krupoderov писал(а):Респект за инструкцию!

при компиляции

Description Resource Path Location Type
Program "make" not found in PATH hello C/C++ Problem

хотя остальное по инструкции сработало. пути прописаны нормально

d:\Projects\vir2real>arm-none-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=c:/program files (x86)/codesourcery/sourcery_codebench_lite_
for_arm_gnu_linux/bin/../libexec/gcc/arm-none-linux-gnueabi/4.6.1/lto-wrapper.ex
e
Target: arm-none-linux-gnueabi
....


А в cmd нормально выполняется данная строка?:
Код: Выделить всё
arm-none-linux-gnueabi-gcc -v


Если нет, то это скорее всего в переменную окружения PATH нt прописался путь до Sourcery.

Возможно, вам поможет данный вариант решения - http://stackoverflow.com/questions/11579135/program-make-not-found-in-path.

А так для полноты понимания, пожалуйста распишите, что и как вы делали для создания проекта. Может там чего в настройках проекта понаменяли? :)
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение Smit » 10 окт 2013, 13:33

Никогда не понимал такого кодинга. :geek:
Smit
 
Сообщения: 126
Зарегистрирован: 07 сен 2013, 00:53

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение EXpoison » 11 окт 2013, 15:14

Здравствуйте!

Где можно посмотреть примеры кода на С/С++ по V2R, желательно с использованием gstreamer?
Как подключить библиотеки gstreamer в Eclipse?
EXpoison
 
Сообщения: 38
Зарегистрирован: 11 окт 2013, 14:51

Re: Windows + Eclipse + Sourcery = C/C++ кодинг для В2Р

Сообщение andrewion » 11 окт 2013, 16:41

EXpoison писал(а):Здравствуйте!

Где можно посмотреть примеры кода на С/С++ по V2R, желательно с использованием gstreamer?
Как подключить библиотеки gstreamer в Eclipse?


Добрый день!

Сейчас пишу сокет-сервер для этого девайса - http://www.electronshik.ru/item/10-dof-mems-imu-sensor-1109790.
Реализация на С++ с использованием данного материала из wiki - http://wiki.virt2real.ru/wiki/%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2_%D0%BF%D0%BE_I2C

Правда мне не удалось пока завести драйвер для датчика ADXL-345, зато работает на ура: ITG3200 гироскоп, HMC5883L магнитометр, BMP085 датчика давления.

Исходный код проекта для сокет-сервера:
GafkV2RServer.zip
(337.35 КБ) Скачиваний: 292


По поводу gstreamer, его можно просто запустить через консоль, как это описано тут - http://wiki.virt2real.ru/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE

А так, лично я для себя, не вижу смысла как-то обвязывать gstreamer кодом на С/С++ на стороне в2р.
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

След.

Вернуться в Софт на виртурилке - SDK, Linux, Github, программирование (C/C++ и др.)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron