nice_vladi 3 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба Всем привет, Собственно, дело в следующем: Есть хост Ubuntu и есть таргет ARM. Пишу и собираю в Eclipse. Для запуска ручками копирую собранное на хосте на таргет. Это неудобно. Подскажите, как правильно организовать передачу собранного софта с хоста на таргет через SSH? Я представляю примерно следующие этапы: 1. Написал; 2. Скомпилировал; 3. Eclipse сложил скомпилированное на таргет по заранее известному пути через SSH; 4. Профит - либо запускаешь отладку, либо через консольку на таргете запускаешь свежесобранное ПО. Гугл особо ничем не помог. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба Добавить в Makefile соответствующую цель, где будет вызываться scp... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба на таргете ставишь gdbserver на хосте в эклипсе Ddebug Configuration->C/C++ Remoute Application->Main->... там далее.... интуитивно понятно. Если C/C++ Remoute Application нет, то плуг к эклипсе ставиться. На вкладке MAin сделать конектион (см скрин). указать абсолютный путь на таргете до исполняемого файла, на вкладке дебуг указать путь до gdb на хосте (см скрин) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 3 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба Спасибо. Вопрос (пока под рукой нет железки проверить): 2 minutes ago, juvf said: На вкладке MAin сделать конектион (см скрин). указать абсолютный путь на таргете до исполняемого файла, на вкладке дебуг указать путь до gdb на хосте (см скрин) По этому пути Эклипс СКОПИРУЕТ собранный файл, или по этому пути Эклипс ОЖИДАЕТ увидеть исполняемый файл, что бы к нему зацепится? 7 minutes ago, Eddy_Em said: Добавить в Makefile соответствующую цель, где будет вызываться scp... Т.е. из Makefile я могу ПОСЛЕ сборки вызвать scp, который сложит мне артефакты сборки на таргет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба 21 минуту назад, nice_vladi сказал: Спасибо. Вопрос (пока под рукой нет железки проверить): По этому пути Эклипс СКОПИРУЕТ собранный файл, или по этому пути Эклипс ОЖИДАЕТ увидеть исполняемый файл, что бы к нему зацепится? 1. пишешь программу 2. нажимаешь debug ВСЁ!!! makefile не то что не трогать.... забыть про его существование и ни когда не вспоминать. Пусть его знает эклипс. можно скомпилироват предварительно, можно просто запустить дебуг. при нажатии дебуг эклипс проверяет, если в сырцах изменения, то эклипс автоматом запустит сборку. после сборки эклипс по ssh через конектион выгружает на таргет бинрник по Ремоут абсолют файл паф. Далее... эклипс на таргете запускает gdbserver с бинарником из того же Ремоут абсолют файл паф. Далее эклипс запускает на хосте дебугер, который цепляется к запущенному на тергете серверу. Далее эклипс запускает на выполнение программу на таргете. Программа останавливается на входе в функцию main() (если галка стоит) и ждёт тебя. Далее дебажишь... пошагово, с брейками.... ПРОФИТ!!! Если на вкладке поставить галку skip download to target, то эклипс сделает всё тоже самое, но не будет выгружать бинарник с хоста на таргет, запустит старый бинарник. Это на пальцах.... там ещё всякие настройки... порт гдб (можно любой, оставь дефолтный).... можно запускать с аргументами.... я указываю где искать билы для бинарника.... ps лайфхак: Windows->Preferences->General->Workspase->Save automatically before build - установи эту галку, чтобы все изменения в тексте автоматом сохранялись перед сборкой/дебугом. Иначе в тексте поменял строки, а компилятор сокмпилит не тот код, который в окошках эклипса, а тот, который на диске в файлах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 3 11 октября, 2019 Опубликовано 11 октября, 2019 · Жалоба 6 minutes ago, juvf said: 1. пишешь программу 2. нажимаешь debug ВСЁ!!! ... Понял, спасибо. Я люблю, когда все так просто) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PeterD 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба Коллеги 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-х разрядная то там то нужно дополнительные пакеты надо ставить вроде все перепробовал тупик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 20 minutes ago, PeterD said: Указал в Eclipse и в окружении на них но при попытке собрать "холиворд" Eclipse в упор не видит там не каких компиляторов. Ни разу не спец по Eclipse, но, наверное, при попытке собрать он должен что-нибудь сообщать в консоли, что можно было бы скопировать сюда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 21 ноября, 2019 Опубликовано 21 ноября, 2019 · Жалоба 19 hours ago, PeterD said: Указал в Eclipse и в окружении на них но при попытке собрать "холиворд" Eclipse в упор не видит там не каких компиляторов. Попробовал собрать croosstool-ng, что бы с другого бока зайти но там вообще утонул с непривычке в этом терминале. Вопрос что я делаю не так в сети натыкался что если машина 64-х разрядная то там то нужно дополнительные пакеты надо ставить вроде все перепробовал тупик. При установке пакетов обычно все необходимое автоматически доставляется, поэтому посчитаем, что все необходимое есть. На форуме есть раздел с обсуждением кросс-компиляции с использованием Eclipse, посмотрите его. Вам стоит решить по какому пути идти при работе с Eclipse: все настройки внутри, есть тонкости (выше этот путь описал juvf) или использовать систему сборки (например, make) и какой-то любимый редактор. Использование системы сборки, на мой взгляд, удобнее, ее можно использовать в любым редактором, можно собрать проект не запуская редактор вообще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 3 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 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 После этого делаете сборку и смотрите выхлоп в консольке Эклипса. Как правило, все ошибки довольно просто гуглятся, благо, тема распространненая =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 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 символы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 3 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 4 hours ago, razrab83 said: ... Cross Settings .... ps пару лайфхаков: ... Прикольно, спасибо, буду применять) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться