Настройка среды разработки для Raspberry Pi

В последнее время я решил из любопытства запрыгнуть на миникомпьютерную «подножку». Я купил пару Raspberry Pi и BeagleBoard, так как они были настолько дешевы, что я не смог устоять :), но здесь-то и начинаются мои проблемы. У меня была идея для этих устройств, прежде чем я их купил (консольное приложение). Я настроил их на своем маршрутизаторе, чтобы они могли быть доступны «установленному» raspbian для RPi и консоли Ubuntu для BeagleBoard и установлены, и вот здесь начинается моя головная боль.

Я установил Ubuntu 13.04 на свой ноутбук (dualboot), чтобы у меня был доступ к компилятору ARM. Теперь, прежде чем я продолжу дальше, я должен сказать вам, что я разрабатываю в основном в среде Windows, но я знаком с Linux из-за своего опыта работы сисадмина. В любом случае, поскольку у меня не так много свободного времени после работы, так как я люблю встречаться с друзьями и семьей, мне нравится иметь возможность изменять исходный код и выполнять кросс-компиляцию под Windows (Visual Studio Ultimate 2012) на работе, когда я чувствую себя свободно или мне нужно расслабиться под Ubuntu на моем ноутбуке, когда я действительно найду время и хочу иметь простую процедуру компиляции для ARM на моем ноутбуке и отправить двоичные файлы в RPi и BeagleBoard (даже если вручную) как а также компилирование для x86 в Windows и Linux, чтобы я мог все-таки отлаживать свой код.

Я прочитал о том, как это делают другие люди, и я использовал Eclipse CDT в качестве компилятора Linux IDE + (g ++ / gdb) и Visual Studio под Windows. Сделал свою собственную структуру каталогов, но я нахожу требование Makefile ОЧЕНЬ утомительным. Мне потребовались дни, чтобы заняться этим, и я все еще не удовлетворен этим, привык к простой F5 под окнами, чтобы получить Build + Run Debug, все это хорошо структурировано так, как я этого хочу.

Как бы то ни было, сначала все шло хорошо, следуя «стандарту» C ++ 11 и добавляя для него соответствующие флаги под linux, а затем начали появляться некоторые странные ошибки, я даже не мог скомпилировать SQLite, пока эта штука отлично работала под Windows / Visual Studio. После нескольких дней проб и ошибок я сдался и пришел сюда, прося совета

Как вы, ребята, поклонники RPi / BeagleBoard работаете с этими компьютерами, как вы настраиваете мульти-ОС / мульти-Arch среду для отладки и компиляции? Я нахожу это чрезвычайно трудным с точки зрения того, что я рассматриваю использование Java только для того, чтобы я мог реализовать свою идею:< , Один из способов — это иметь все библиотеки и компиляторы на самом устройстве и носить его с собой, что тоже не проблема, но оно выглядит немного средневековым, и, в конце концов, все мои SD-карты имеют довольно ограниченный размер, на них установлена ​​ОС. ,

Любые советы, ссылки на руководства, книги приветствуются. Хотя английский не является языком моей матери, я не против читать в нем книги / статьи.

Заранее спасибо!

П.С .: Я ношу проект с большим пальцем.

0

Решение

Во-первых, я бы не поспорил на возможность кросс-компиляции для linux-arm или же linux-x86 цели с хоста Windows, так что остальные мои советы предназначены только для вашего Ubuntu box.


Что касается Ubuntu для ARM на вашей BeagleBoard, если он использует один из Debian armel/armhf архитектуры, то вы можете просто установить emdebian кросс-цепочка вместе с xapt, Есть множество коротких и простых уроков, выберите тот, который вы хотите.


Теперь проблема с Raspbian заключается в том, что он не использует обычные armel/armhf архитектуры от Debian, но где-то посередине (хард-плавающий ARMv6, в то время как armel для мягкого поплавка ARMv5 и armhf это для поплавка ARMv7). Таким образом, вы не можете использовать стандарт emdebian кросс-цепочки вместе с xapt кросс-компилировать для Raspbian.

Существует официальный Raspbian кросс-инструментарий, вы можете прочитайте этот учебник (но имхо вы должны забыть об Eclipse, это излишне, любой текстовый редактор вроде kate или же gedit будет гораздо менее запутанным для небольших проектов).


Я считаю требование Makefile ОЧЕНЬ утомительным

Ты можешь использовать Autotools генерировать configure, Makefile и т. д., это будет намного проще, чем писать голые Makefile самостоятельно. См. Например этот урок.


есть двоичные файлы, отправленные на RPi и BeagleBoard

Два слова: SSH / SCP. И да, вы можете легко написать это и сделать его частью вашего процесса сборки.


И последнее, но не менее важное: я имею в виду не обижаться (я тоже прошел через это;)), но так как вы — разработчик для Windows, у которого мало или совсем нет опыта разработки под Linux, мой лучший совет — отказаться от всей кросс-компиляции. на данный момент, пока вы действительно не привыкли к разработке Linux. Поначалу разработка Linux сбивает с толку, кросс-компиляция также поначалу сбивает с толку, не нужно обрабатывать оба одновременно.

Легче всего сделать так, чтобы ваша цепочка инструментов и код находились в целевом окне (RPi / Beagle), смонтировали исходный каталог через SSHFS / что угодно, чтобы вы могли удобно редактировать его со своего основного компьютера, и скомпилировали в сеансе SSH. Вам даже не нужно иметь физически доступный целевой ящик, если вы можете достичь его через сеть / Интернет (при условии, что он правильно защищен).

Удачи!

3

Другие решения

Ваш процесс сборки очень сложен, поэтому не ждите простых решений. Вы пытаетесь использовать несколько операционных систем и компиляторов и целевых архитектур. CMake был создан, чтобы помочь с такими вещами, но это не простое решение. Я не думаю, что есть один.

2