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

Eclipse Linux ARM копирование собранного на таргет

Всем привет,

Собственно, дело в следующем:

Есть хост Ubuntu и есть таргет ARM. Пишу и собираю в Eclipse. Для запуска ручками копирую собранное на хосте на таргет. Это неудобно. Подскажите, как правильно организовать передачу собранного софта с хоста на таргет через SSH?

Я представляю примерно следующие этапы:

1. Написал;

2. Скомпилировал;

3. Eclipse сложил скомпилированное на таргет по заранее известному пути через SSH;

4. Профит - либо запускаешь отладку, либо через консольку на таргете запускаешь свежесобранное ПО.

Гугл особо ничем не помог.

Спасибо.

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


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

Добавить в Makefile соответствующую цель, где будет вызываться scp...

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


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

на таргете ставишь gdbserver

на хосте в эклипсе Ddebug Configuration->C/C++ Remoute Application->Main->... там далее.... интуитивно понятно. Если C/C++ Remoute Application нет, то плуг к эклипсе ставиться.

На вкладке MAin сделать конектион (см скрин). указать абсолютный путь на таргете до исполняемого файла, на вкладке дебуг указать путь до gdb на хосте (см скрин)

image.png

image.png

image.png

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


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

Спасибо. Вопрос (пока под рукой нет железки проверить):

2 minutes ago, juvf said:

 На вкладке MAin сделать конектион (см скрин). указать абсолютный путь на таргете до исполняемого файла, на вкладке дебуг указать путь до gdb на хосте (см скрин) 

 

По этому пути Эклипс СКОПИРУЕТ собранный файл, или по этому пути Эклипс ОЖИДАЕТ увидеть исполняемый файл, что бы к нему зацепится?

7 minutes ago, Eddy_Em said:

Добавить в Makefile соответствующую цель, где будет вызываться scp...

Т.е. из Makefile я могу ПОСЛЕ сборки вызвать scp, который сложит мне артефакты сборки на таргет?

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


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

 

21 минуту назад, nice_vladi сказал:

Спасибо. Вопрос (пока под рукой нет железки проверить):

По этому пути Эклипс СКОПИРУЕТ собранный файл, или по этому пути Эклипс ОЖИДАЕТ увидеть исполняемый файл, что бы к нему зацепится?

1. пишешь программу

2. нажимаешь debug

ВСЁ!!! makefile не то что не трогать.... забыть про его существование и ни когда не вспоминать. Пусть его знает эклипс.

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

при нажатии дебуг эклипс проверяет, если в сырцах изменения, то эклипс автоматом запустит сборку. после сборки эклипс по ssh через конектион выгружает на таргет бинрник по Ремоут абсолют файл паф. Далее... эклипс на таргете запускает gdbserver с бинарником из того же Ремоут абсолют файл паф. Далее эклипс запускает на хосте дебугер, который цепляется к запущенному на тергете серверу. Далее эклипс запускает на выполнение программу на таргете. Программа останавливается на входе в функцию main() (если галка стоит) и ждёт тебя. Далее дебажишь... пошагово, с брейками.... ПРОФИТ!!!

Если на вкладке поставить галку skip download to target, то эклипс сделает всё тоже самое, но не будет выгружать бинарник с хоста на таргет, запустит старый бинарник.

Это на пальцах.... там ещё всякие настройки... порт гдб (можно любой, оставь дефолтный)....  можно запускать с аргументами.... я указываю где искать билы для бинарника.... image.png.baad7828058ce4070a7b99c949aef7a5.png

 

ps лайфхак:  Windows->Preferences->General->Workspase->Save automatically before build - установи эту галку, чтобы все изменения в тексте автоматом сохранялись перед сборкой/дебугом. Иначе в тексте поменял строки, а компилятор сокмпилит не тот код, который в окошках эклипса, а тот, который на диске в файлах.

 

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


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

6 minutes ago, juvf said:

1. пишешь программу

2. нажимаешь debug

ВСЁ!!!

...

 

 

Понял, спасибо. Я люблю, когда все так просто)

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


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

Коллеги HELP, вторую неделю мучаю https://www.microchip.com/DevelopmentTools/ProductDetails/atsama5d27-som1-ek1 вот эту плату, там есть для нее простой старт https://www.linux4sam.org/bin/view/Linux4SAM/Sama5d27Som1EKMainPage#Demo_archives. Я честно признаюсь не "ленуксойд" не разу только делаю первые шаги. Саму систему вроде как я на SoC запустил. Потом взял ноутбук поставил на него Ubuntu 18.4, установил Eclipse на него, и вот этой строкой $sudo apt-get install gcc-arm-Linux-gnueabi установил кросс компилятор (по крайне мере я так думаю ) в usr/ появились две папки gcc-arm-Linux-gnueabi и gcc-arm-Linux-gnueabihf. Указал в Eclipse и в окружении на них но при попытке собрать "холиворд" Eclipse в упор не видит там не каких компиляторов. Попробовал собрать croosstool-ng, что бы с другого бока зайти но там вообще утонул с непривычке в этом терминале. Вопрос что я делаю не так в сети натыкался что если машина 64-х разрядная то там то нужно дополнительные пакеты надо ставить вроде все перепробовал тупик. 

 

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


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

20 minutes ago, PeterD said:

Указал в Eclipse и в окружении на них но при попытке собрать "холиворд" Eclipse в упор не видит там не каких компиляторов.

Ни разу не спец по Eclipse, но, наверное, при попытке собрать он должен что-нибудь сообщать в консоли, что можно было бы скопировать сюда.

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


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

19 hours ago, PeterD said:

 Указал в Eclipse и в окружении на них но при попытке собрать "холиворд" Eclipse в упор не видит там не каких компиляторов. Попробовал собрать croosstool-ng, что бы с другого бока зайти но там вообще утонул с непривычке в этом терминале. Вопрос что я делаю не так в сети натыкался что если машина 64-х разрядная то там то нужно дополнительные пакеты надо ставить вроде все перепробовал тупик. 

 

При установке пакетов  обычно все необходимое автоматически доставляется, поэтому посчитаем, что все необходимое есть.

На форуме есть раздел с обсуждением кросс-компиляции с использованием Eclipse, посмотрите его. Вам стоит решить по какому пути идти при работе с Eclipse: все настройки внутри, есть тонкости (выше этот путь описал juvf) или использовать систему сборки (например, make) и какой-то любимый редактор. Использование системы сборки, на мой взгляд, удобнее, ее можно использовать в любым редактором, можно собрать проект не запуская редактор вообще.

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


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

On 11/21/2019 at 1:32 AM, PeterD said:

...Eclipse в упор не видит там не каких компиляторов..

Эклипсу нужно явно рассказать, как и какие компиляторы-линкеры использовать. Напимер, мой сетап:
 

Spoiler

Project Properties -> C/C++ Build -> Settings -> Вкладка Tool Settings и погнали,
Cross GCC complier

Command: /usr/bin/arm-linux-gnueabihf-gcc

All options: -I/usr/arm-linux-gnueabihf/include -O0 -g -Wall -c -fmessage-length=0

Crocc GCC linker

Command: /usr/bin/arm-linux-gnueabihf-gcc

All options: -L/usr/arm-linux-gnueabihf/lib

Cross GCC assembler

/usr/bin/arm-linux-gnueabihf-as

 

 

После этого делаете сборку и смотрите выхлоп в консольке Эклипса. Как правило, все ошибки довольно просто гуглятся, благо, тема распространненая =)

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


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

31 минуту назад, nice_vladi сказал:

Эклипсу нужно явно рассказать, как и какие компиляторы-линкеры использовать. Напимер, мой сетап:
 

  Скрыть контент

Project Properties -> C/C++ Build -> Settings -> Вкладка Tool Settings и погнали,
Cross GCC complier

Command: /usr/bin/arm-linux-gnueabihf-gcc

All options: -I/usr/arm-linux-gnueabihf/include -O0 -g -Wall -c -fmessage-length=0

Crocc GCC linker

Command: /usr/bin/arm-linux-gnueabihf-gcc

All options: -L/usr/arm-linux-gnueabihf/lib

Cross GCC assembler

/usr/bin/arm-linux-gnueabihf-as

 

 

После этого делаете сборку и смотрите выхлоп в консольке Эклипса. Как правило, все ошибки довольно просто гуглятся, благо, тема распространненая =)

зачем так сложно? 

у меня:
 

Project Properties -> C/C++ Build -> Settings -> Вкладка Tool Settings и погнали,
Cross GCC complier

Command: gcc

Cross G++ complier

Command: g++

Crocc GCC linker

Command: g++

Cross GCC assembler

as

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

Project Properties -> C/C++ Build -> Settings -> Tool Settings

Cross Settings

Prefix: arm-linux-gnueabihf-

Path: D:\SysGCC\Raspberry\bin

При смене тулчейна в одном месте правите путь и/или имя тулчейна (префикса) - у вас во всех местах меняется автоматом.

 

ps пару лайфхаков: 1) Project Properties -> C/C++ Build-> вкладка Behavior галка Enable parallel build...

2) чтоб включить пути инклудов одним махом для с/с++/asm см картинку.... и не нужно отдельно для каждого компилятора и для каждой конфигурации сборки в сетенгах добавлять пути инклуде... тамже пути к либам и Defined символы

image.thumb.png.d4344a5255cafdcecebb5c46bf6da09c.png

 

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


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

4 hours ago, razrab83 said:

...

Cross Settings

....  

ps пару лайфхаков:

...

 

Прикольно, спасибо, буду применять)

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


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

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

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

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

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

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

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

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

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

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