реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Написание и отладка пользовательской программы под Embedded Linux. Как стартануть?, Не могу понять, с чего начать и как сделать
transf
сообщение Apr 16 2018, 18:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 5-04-09
Пользователь №: 47 192



Добрый день всем.
Народ, может кто знает? Проблема такова:
Работаю под самим Linux'ом, но десктопным, на компе и безо всякой виртуалки. Нужно писать и отлаживать пользовательское ПО под встроенный Linux. Embedded Linux собран под одно из 2-х ядер, находящихся внутри чуда Zynq-7000, конкретно под плату zc706. Имеется инструмент Vivado, Xilinx SDK, но я в нем новичок. У меня опыт программирования MK с использованием RTOS, но это совсем другое, потому-что там исходники операционки и пользовательских задач собираются вместе. Также, и программировать под самой Linux на C/C++ для меня дело привычное (конкретно сейчас - работаю под Eclipse CDT в OpenSUSE). Но что такое работать под Embedded Linux - пока тайна и задача, к которой, не знаю, с какой стороны подойти. Что-то слышалось про GDB, но как настроить его и прикрутить к той же IDE Eclipse - не знаю. Помогите пожалуйста, как решить эту задачу? Еще такая же предстоит с IMX 6D (NXP), плюс еще и сборка ядра самой системы под него - а моих знаний для этого недостаточно. Расскажите пожалуйста, как победить? Подчеркну: в частности интересует работа с инструментом Eclipse (конкретно написание ПО и отладка). Заранее благодарю!
Go to the top of the page
 
+Quote Post
juvf
сообщение Apr 17 2018, 04:01
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 120
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Для MOXA UC-8410 был мануал. там на таргете поднимался гдб-сервер, эклипс цеплялся к нему.

Сейчас настроил Eclipse для кросс-компиляции и отладки программ на Raspberry. (я сейчас в виндах, на моксе работал в дебьяне, но принцип одинаковый).

Цитата
У меня опыт программирования MK с использованием RTOS, но это совсем другое, потому-что там исходники операционки и пользовательских задач собираются вместе.
тоже был разрыв шаблона.... не понимал как это делается работает....

Вобщем с Linux для МК схема такая....
1)Если есть на МК готовая сборка линукса, то переходим на шаг 3
2)Собирается OS Linux + U-Boot + FS. Полученный образ размещается в памяти таргета. Boot МК натравливается на U-Boot. При старте МК стартует загрузчик U-Boot, который загружает ядро линукса... разворачивается FS и далее на мк живет обычный линукс, как на вашем десктопе, отдельно от ваших программ. Программы запускаются динамически также, как и на вашем десктопе. Это отличие от статических RTOS (хотя и на них, при желании, можно отделить мух от котлет).
3)Линукс запускает ваше ПО.
4)Профит!!!

Вам нужен тулчейн. Либо сами соберайте, либо скачайте с инета готовый.
Цитата
Toolchain'ы делятся на несколько типов или триплетов. Триплет обычно состоит из трёх частей: целевой процессор, vendor и OS, vendor зачастую опускается.

*-none-eabi — это toolchain для компиляции проекта работающего в bare metal.
*eabi — это toolchain для компиляции проекта работающего в какой-либо ОС. В моём случае, это Linux.
*eabihf — это почти то же самое, что и eabi, с разницей в реализации ABI вызова функций с плавающей точкой. hf — расшифровывается как hard float.


на таргете должен работать ssh

на десктопе в Eclipse делается проект с++, выберается Cross GCC
в свойствах проекта c/c++ build->settings->cross settings указываем префикс arm-linux-gnueabihf- и путь до папки с кросс-компиляторами.
можно собирать холловорд

Дебаг: теоретически..... десктоп полученный бинарник закидывает на таргет, запускает на таргете gdbserver, на десктопе arm-linux-gnueabihf-gdb цепляется к тагрету и запускает отлаживаемую программу. Далее как на десктопе.

практически: в Eclipse заходим в Debug as ..., там должно в списке быть "c/c++ remote Application". Если нет, то нужно доставить какойто плуг, не помню какой.
Далее.... на майне Remote Absolute File Path for c/c++ App:" пишем полный путь /home/pi/myProgDir/myProg
На вкладке Debugger путь до отладчика D:\SysGCC\Raspberry\bin\arm-linux-gnueabihf-gdb.exe

на таргете ставим гдб
sudo apt-get install gdbserver
или другим путем его ставим. Eclipse при дебаге будет удаленно запускать gdbserver на таргете.

Ещё.... нужно создать коннекшин, на вкладке main в окне Debug configuration кнопка New, там выбрать ssh, ip таргета, логин пароль....

Всё! Запускаем дебаг - наслаждаемся дебагом под Eclipse.

При отладке видим в консоли эклипса вывод (см скрин)


Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

 
Go to the top of the page
 
+Quote Post
twix
сообщение Apr 17 2018, 05:55
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 166
Регистрация: 4-11-15
Пользователь №: 89 174



Цитата(transf @ Apr 16 2018, 19:50) *
Народ, может кто знает? Проблема такова:

Опупеть, вопрос так вопрос. sm.gif

Go to the top of the page
 
+Quote Post
transf
сообщение Apr 17 2018, 08:45
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 5-04-09
Пользователь №: 47 192



Спасибо вам juvf за подробный ответ.
Go to the top of the page
 
+Quote Post
Pat
сообщение Apr 17 2018, 18:29
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 412
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Смотрите в сторону Qt.
Из QtCreator все это легко делается.
Бонусом будет нормальная ИДЕ а не этот тормазнутый Еклипс.
Go to the top of the page
 
+Quote Post
x893
сообщение Apr 17 2018, 18:32
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 197
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Можно и в сторону visual studio смотреть. Там тоже всё есть для этого. Кому как удобнее.
Go to the top of the page
 
+Quote Post
juvf
сообщение Apr 18 2018, 02:57
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 120
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(Pat @ Apr 17 2018, 23:29) *
Смотрите в сторону Qt.
Из QtCreator все это легко делается.
Бонусом будет нормальная ИДЕ а не этот тормазнутый Еклипс.

QtCreator-у ещё нужно подрасти до Eclipse.

А что касается тормознутости - так это как любое жаваприложение - старт чуть подольше, а работа без каких-либо тормозов. Тем более автор знает еклипс. В одной ИДЭ и проекты для bare metal/RTOS на МК, и проекты для Linux.

ps Раньше был плуг Qt для Eclipse, сейчас нет. Плохо.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Вчера, 01:44
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 317
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(transf @ Apr 16 2018, 22:50) *
Еще такая же предстоит с IMX 6D (NXP), плюс еще и сборка ядра самой системы под него - а моих знаний для этого недостаточно. Расскажите пожалуйста, как победить? Подчеркну: в частности интересует работа с инструментом Eclipse (конкретно написание ПО и отладка). Заранее благодарю!


Начните с того, что у представителя NXP скачайте с сайта образ для Линукса. Насколько мне известно они Yocto используют. Это такая система, которой вы можете модифицировать конфигурацию, а потом ваш компьютер долго работает и выдает вам образ диска для установки навстроеный Линукс.

Мне джавовские IDE не нравятся (Eclipse QT creator). Я ими не пользуюсь. Это совсем не обязательно. Да и жалко тратить на их изучение время. Изучайте лучше кросскомпиляцию, git, Linux API, gdb, ddd.
На работе все пользуются QT creator, но я обхожусь vim, grep, a компилируем скриптом, дебагируем gdbgui.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st April 2018 - 18:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.00885 секунд с 7
ELECTRONIX ©2004-2016