LINUX.ORG.RU

Разработка софта для Raspberry на ПК

 , , ,


0

2

В общем есть одна идея реализовать небольшой проект на Raspberry Pi. Пишу на си с использованием SDL2, сборка на самом Raspberry Pi работает и проект запускается, но очень хотелось бы немного другого пути. Хост: ПК c Debian Bullseye. Можно настроить среду разработки таким образом, чтобы собирать проект при помощи кросс-компилятора на ПК, и при запуске программа запускалась бы прямо на Raspberry Pi? Примерно как это при разработке для Android делается. В общем, как можно бинарник записать по сети в Raspberry Pi и его запустить? А уж если ещё и dbg так настроить, было бы очень классно!


Можно настроить среду разработки таким образом, чтобы собирать проект при помощи кросс-компилятора на ПК, и при запуске программа запускалась бы прямо на Raspberry Pi?

Можно, разрешаю.

В общем, как можно бинарник записать по сети в Raspberry Pi и его запустить?

Например в сборочный скрипт добавить чтоб можно было через ssh дать команду для Raspberry Pi чтоб запустить собранный бинарник с NFS-подмонтированного раздела, или например пусть оно скачивает бинарник по http с основного компа, или еще можно через SFTP, или еще каким-то таким образом. Можно еще сделать чтоб туда отладчиком цепляться по сети и дебажить с компа.

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 2)

А сделать на обычном компе и один раз на малине готовый?

ilovewindows ★★★★★
()

Йолки-палки, что за девелопер пошел нонче. Этож первая и вторая ссылка в гугле. Со всеми рецептами и IDE на любой вкус. Даже с отладкой. Что с тобой не так? У тебя проклятые <подставить хейт-группу> гугл отобрали и только ЛОР оставили?

anonymous
()
Ответ на: комментарий от anonymous

Другим анонимусам: вот видите, можно же вместо «забанься, дебил» написать вполне информативный и относительно вежливый комментарий, из которого ясна причина недовольства анонимуса топикстартером.

С гуглением, правда, бывает так, что не угадаешь со словами для гугления. Но с третьей стороны, если ТС знает, что такое «кросс-компилятор», то ситуация вроде бы не та…

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Да, в гугл я ессно заглядывал, и там как всегда куча всего. И как часто бывает, пытаешься всё под себя настроить и что нибудь всё равно не работает. Лезешь на форум, а тебе в ответ: «Перестань изобретать велосипед бл..! Для таких как ты уже всё готовое и настроенное есть!», и понимаешь, что X-часов в пустую потратил. Вот и интересуюсь, может кто подобное уже проворачивал, может чего посоветуют…

amidos
() автор топика
Ответ на: комментарий от amidos

Пиши на Java, у нас есть ssh-exec-maven-plugin и поддержка кучи IDE на любой вкус <_<

izzholtik ★★★
()
Ответ на: комментарий от amidos

пытаешься всё под себя настроить и что нибудь всё равно не работает. Лезешь на форум

…и описываешь, что именно не работает. Но ты же написал не это? Ты не написал, что именно пробовал, какие ошибки получил.

Написал бы конкретно — обсуждение было бы совсем другим.

hobbit ★★★★★
()

Можно двояко.

Если собираете/запускаете проект на самой малинке, то загуглите «remote gdb server». Его надо будет поставить на малинку и к нему подключаться для отладки с десктопа.

Если хотите компиляться на десктопе, то по своему gentooшному разумению я бы собрал себе через crossdev toolchain, собрал бы себе qemu для Вашего варианта ARM (32 или 64?) и точно так же поставил бы на малинку remote gdb server. После чего в Makefile, если Вы им пользуетесь, добавил бы scp чтобы заливать на борду бинарь по ssh. Ну и дальше бы опять таки отлаживался через gdb.

В общем как-то вот так.

P.S. QEMU я бы собрал чтобы иной раз не грузиться на малинку. Но в Вашем случае (с SDL2) я не знаю нужно ли это, поэтому в принципе можно не собирать QEMU.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)

man кросскомпиляция; man toolchain

Учитывая задаваемые вопросы, рекомендую взять QtCreator и в нём настроить удалённое linux устройство для запуска и комплект сборки под него.

pon4ik ★★★★★
()
Ответ на: комментарий от amidos

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

Попытайтесь под себя сделать (для гармонии с кучей от гугла), а не настроить.

Если скорость сборки не критична, то без «настроек иде» скрипт на Raspberry, который собирает прямо там c nfs

Brillenschlange
()
Ответ на: комментарий от hobbit

Это просто от сортов анонимусов зависит, как киндер-сюрприз.

AKonia ★★★
()

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

AKonia ★★★
()
Ответ на: комментарий от AKonia

Ну на данный момент так и делаю. И доработки проекта при переносе с x64 debian bullseye на raspbian buster пока не требовалось. Просто собрал весь проект на RPI и всё. На выходных попробую, как выше посоветовали, использовать QtCreator и плагин для Eclipse.

amidos
() автор топика
Ответ на: комментарий от amidos

ПМСМ лучше продолжать так и делать, т.к. с вынесенной сборкой много нюансов, могут попадаться грабли, например версионирование некоторых библиотек

AKonia ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.