Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Разработка под ARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
k000858
Предстоит осваивать Linux-устройства. Для "попробовать" заказана Малина (позже переориентируемся под более удобные процессоры). Интересует с помощью каких средств разрабатывается ПО под старшие системы? Как происходит отладка?

Сейчас работаю под Eclipse + GNU для разработки под STM32. Тут все просто: скомпилил, тут же залил, включил отладчик либо вывод SWO.

А как это делается под MPU? Устройства в основном будут с ethrnet интерфейсом.
jcxz
Цитата(k000858 @ Sep 29 2017, 12:10) *
А как это делается под MPU? Устройства в основном будут с ethrnet интерфейсом.

MPU есть и в STM32. Попробуйте - понравится rolleyes.gif
k000858
Цитата(jcxz @ Sep 29 2017, 09:48) *
MPU есть и в STM32. Попробуйте - понравится rolleyes.gif

Я имел ввиду микропроцессоры
Obam
Включил, загрузился - обычная Линукс-машина. Как люди под dos\windows писали\пишут, так и тут. Не?
Gleb80
Цитата(k000858 @ Sep 29 2017, 08:10) *
Сейчас работаю под Eclipse + GNU для разработки под STM32. Тут все просто: скомпилил, тут же залил, включил отладчик либо вывод SWO.
А как это делается под MPU? Устройства в основном будут с ethrnet интерфейсом.


C Linux будет почти также. Можно воспользоваться ARM DS-5, там и Eclipse и GNU-toolchain
http://www.compel.ru/wordpress/wp-content/.../02/DS5_NEW.pdf
k000858
Цитата(Gleb80 @ Sep 29 2017, 12:10) *
C Linux будет почти также. Можно воспользоваться ARM DS-5, там и Eclipse и GNU-toolchain
http://www.compel.ru/wordpress/wp-content/.../02/DS5_NEW.pdf

сходу не нашел, насколько она платна/бесплатна?

все нашел. много ка евро. вариант, не совсем подходящий (на данном этапе).

Есть какие то альтернативы?
scifi
Цитата(Gleb80 @ Sep 29 2017, 11:10) *
C Linux будет почти также. Можно воспользоваться ARM DS-5, там и Eclipse и GNU-toolchain
http://www.compel.ru/wordpress/wp-content/.../02/DS5_NEW.pdf

Я так понимаю, такие штуки нужны для разработки загрузчиков, драйверов и тому подобного. Для отладки юзерспейса используют gdb, если не ошибаюсь.
Эдди
Абсолютно так же, как и на "обычном" компьютере. Лично я пользуюсь printf и логгированием в файл.
k000858
спасибо за ответы. интересует более детальное описание процесса разработки.

я вижу это так: есть плата с процессором, памятью и флэш (на отладочной наверное SD, на готовом устройстве нанд какая нибудь). На флэш заливается загрузчик (юбут какойнибудь) и образ ОС.

Сам этот образ ОС собирается программистом в среде разработки или испод десктоопной ОС Линукс.
Предварительно перед сборкой программист пишет драйвера (BSP периферии), некие функции (приложения). BSP процессора, памяти и флэш уже включены в OS от производителя.

После загрузки образа на флэш происходит загрузка ПО устройства в память (включение и запуск устройства). При этом программист контролирует выполнение программы с помощью JTAG отладчика + gdb компилятора либо консоли подключенной по IP.

Поправьте в чем я ошибаюсь.
scifi
Цитата(k000858 @ Sep 29 2017, 12:42) *
Поправьте в чем я ошибаюсь.

Берёте платку с уже готовой осью. Остаётся только добавить своё приложение. Всё.
k000858
Цитата(scifi @ Sep 29 2017, 13:48) *
Берёте платку с уже готовой осью. Остаётся только добавить своё приложение. Всё.

ну это на этапе "пощупать".

В последствии будут свои платы со своей периферией под разные задачи. Соответственно программить необходимо будет начиная драйверами заканчивая "приложениями".
scifi
Цитата(k000858 @ Sep 29 2017, 12:54) *
В последствии будут свои платы со своей периферией под разные задачи. Соответственно программить необходимо будет начиная драйверами заканчивая "приложениями".

Я этими вещами не занимался, но складывается ощущение, что раз вы задаёте такие вопросы, то лучше вам туда не соваться. Пытаетесь прыгать выше головы.
Gleb80
Цитата(k000858 @ Sep 29 2017, 12:42) *
спасибо за ответы. интересует более детальное описание процесса разработки.
я вижу это так: есть плата с процессором, памятью и флэш (на отладочной наверное SD, на готовом устройстве нанд какая нибудь). На флэш заливается загрузчик (юбут какойнибудь) и образ ОС.
Сам этот образ ОС собирается программистом в среде разработки или испод десктоопной ОС Линукс.
Предварительно перед сборкой программист пишет драйвера (BSP периферии), некие функции (приложения). BSP процессора, памяти и флэш уже включены в OS от производителя.
После загрузки образа на флэш происходит загрузка ПО устройства в память (включение и запуск устройства). При этом программист контролирует выполнение программы с помощью JTAG отладчика + gdb компилятора либо консоли подключенной по IP.
Поправьте в чем я ошибаюсь.


В целом все так, но как известно, дьявол кроется в деталях, а их очень много и продираясь сквозь них многие разработчики проклинают Linux и отказываются от него навсегда sm.gif
Есть несколько открытых проектов, занимающихся средствами разработки для Embedded Linux, например Yocto:
https://www.yoctoproject.org/
https://www.yoctoproject.org/product/angstrom-distribution
они значительно облегчают жизнь начинающему микроконтроллерному линуксоиду (например мне sm.gif ).
Поэтому я согласен с scifi, лучше взять готовый проект, максимально похожий на ваш и его прогрызать, приготовившись пролить много горьких слез и провести длинные бессонные ночи sm.gif
Еще вот тут много чего на эту тему: https://rocketboards.org/
Эдди
Я извиняюсь, но если разработчик "проклинает линукс", то это не разработчик никакой! Потому как линукс и мастдайка — небо и земля! Особенно если под железо что-то пишешь. Линукс — нормальная операционная система, а мастдайка — так, пускалка игрушек.

Из личного опыта сразу советую автору прикупить (если еще нет) дешевый преобразователь UST<->TTL (например, на PL2303, они где-то по полбакса на али), подключить его к Rx/Tx "малинки" и иметь таким образом нормальный терминал — очень помогает при первичной настройке, чтобы не тянуть дополнительную клавиатуру и монитор. А уж как сеть настроена, запускаем ssh и работаем через него. Вот только, учитывая тормознутость армов, лучше отлаживать софт на компьютере (#define'ами поотключав всякие wiringPi и т.п. архитектурно-зависимые штуки), а уж как точно проверено, что собирается нормально и багов нет, компилировать на одноплатнике.

В принципе, если не нужно в реальном времени видео обрабатывать, и нет нагрузки больше пары-тройки клиентов, даже самая простая "малинка" подойдет для разработки. Собрать простую веб-морду и радоваться... Я последнее время люблю вебсокеты использовать, но и REST можно. Пример простой веб-морды (видео пришлось по-старинке jpeg'ами гнать, т.к. все остальное было слишком медленно, а ничего приличного для работы с рилтаймовым потоком в браузере до сих пор не придумали).

И да, если не планируется одноплатник к монитору подрубать, лучше сразу выпилить иксы и прочую ненужную гадость, связанную с ними.
KRS
k000858,
Вы же уже с Eclipse работаете!
Так и продолжайте.
В eclipse есть все необходимые плагины для удаленной отладки.

Вот примеры как для малины используют
http://cxemotexnika.org/2016/10/programmir...se-pod-windows/
nanorobot
Цитата(KRS @ Sep 30 2017, 15:34) *
k000858,
Вы же уже с Eclipse работаете!
Так и продолжайте.
В eclipse есть все необходимые плагины для удаленной отладки.

Вот примеры как для малины используют
http://cxemotexnika.org/2016/10/programmir...se-pod-windows/


На мой взгляд прекрасным инструментом разработки является фреймворк Qt, существует немало руководств по организации кросс компиляции Qt дл RPi. Правда ни по одному из них мне не удалось довести дело до конца.
Несколько лет назад делал проект для платы SK-ATSAMA5D3, впечатления самые положительные. С запуском кросс компиляции для этой платы проблем не возникло.
Если сможете запустить кросскомпиляцию Qt для RPi3 - потом расскажете.. biggrin.gif
Эдди
Культям на одноплатнике стопроцентно нет никакого места! Зачем эта жирная неповоротливая гадость на и без того еле лапами шевелющем чипе?
nanorobot
Цитата(Эдди @ Sep 30 2017, 21:23) *
Культям на одноплатнике стопроцентно нет никакого места! Зачем эта жирная неповоротливая гадость на и без того еле лапами шевелющем чипе?

Несколько безапеляционно.. В чем принципиаиальное отличие Qt от(от чего? Вы то что предлагаете?) "простого" C++? Что его так "утяжелило" ? Библиотеки? Механизм сигналы/слоты? или что то другое?
Так вы вольны их не использовать.
Коли уж на то пошло то и линукс долой с одноплатников. Bare Metal наше все!

PS: Или Вы решили , что я предлагаю QT Creator установить на одноплатник? Речь была о кросс компиляции.
Fedor
Цитата(k000858 @ Sep 29 2017, 10:10) *
Предстоит осваивать Linux-устройства. Для "попробовать" заказана Малина (позже переориентируемся под более удобные процессоры). Интересует с помощью каких средств разрабатывается ПО под старшие системы? Как происходит отладка?

Сейчас работаю под Eclipse + GNU для разработки под STM32. Тут все просто: скомпилил, тут же залил, включил отладчик либо вывод SWO.

А как это делается под MPU? Устройства в основном будут с ethrnet интерфейсом.


Есть линукс для stm32 смотрите в сторону uclinux, и при чем здесь MPU возможно вы перепутали с MMU? Вам правильно ответили, смортите в сторону yocto это сейчас мейнстрим. Суть процесса разработки под АРМ , качаем и правим u-boot далее разбираемся с ядром линукс ,
а это сборка + devicetree пад вашу платформу. Для начала лучше действительно разобраться с действующей платформой типа "малинки",.. вобщем мой совет сначала разобраться во всем в "разобранном" виде. Это в смысле собрать свой u-boot и ядро,
а потом освоить как формируются рецепты и как добавить свои программы в rootfs вашей сборки.
Обычно для каждой плаформы имеется guide как собрать правильный образ в yocto.. лучше просмотреть несколько, для разных типов платформ, тогда будет более понятно что такое слой (layer) и что такое yocto вообще. И как только команды devtool и bitbake
будут для вас "родными" вы сможете разобраться как устроить отладку и деплой вашего приложения.
Эдди
Цитата(nanorobot @ Sep 30 2017, 19:46) *
В чем принципиаиальное отличие Qt от(от чего? Вы то что предлагаете?) "простого" C++?

C++ я тоже считаю избыточным. Но это просто ЯП. А вот культяпки... Бешеная жирнючая библиотека с переизбытком всяких лишних совершенно ненужных вещей.
Цитата
Коли уж на то пошло то и линукс долой с одноплатников. Bare Metal наше все!

С линуксом там как раз все ОК, очень удобно работать: меньше ненужных телодвижений. Правда, возникает проблема с доступом к низкоуровщине: кое-что до сих пор по-человечески не сделано, приходится suid-биты выставлять на исполняемые файлы..
Цитата
PS: Или Вы решили , что я предлагаю QT Creator установить на одноплатник? Речь была о кросс компиляции.

Ну и кросс-компиляйте себе на нормальных сях, а не этом ублюдстве! Вы еще буст туда добавьте для радостей жизни!

И да, что-то мне подсказывает, что ТС вообще "пороху не нюхал" и лучше бы ему снести нафиг все эти вендозы с компьютера и научиться работать в линуксе. Года 3, думаю, хватит. А потом уже можно на напаханном поле...
alexunder
Если "малина" 3, то ставьте Windows 10 for IoT - удобнейшая вещь. С MSVS2015 (community edition бесплатная) поднимите разработку качественных и эффективных программ.
mantech
Цитата(alexunder @ Oct 1 2017, 14:41) *
Если "малина" 3, то ставьте Windows 10 for IoT - удобнейшая вещь. С MSVS2015 (community edition бесплатная) поднимите разработку качественных и эффективных программ.


И что там такого можно крутого-эффективного сделать??
Граф. интерфейса там нет насколько помню, всяческие свистоперделки с эзернетом - так это лучше линукс, а qt в основном берут для создания граф. приложений, т.к. под линуксом работать с графикой -это что-то с чем-то...
alexunder
Цитата(mantech @ Oct 1 2017, 20:03) *
И что там такого можно крутого-эффективного сделать??

Легче поднять GUI-приложение имхо.

Цитата(mantech @ Oct 1 2017, 20:03) *
Граф. интерфейса там нет насколько помню

wpf
k000858
благодарю всех за ответы. далее только практика)
графических приложений на устройствах не ожидается, это в основном интерфейсные и сетевые устройства будут, поэтому все же остановлюсь на варианте с эклипс.
scifi
Эклипс-то здесь при чём? Банальный текстовый редактор. Это будет наименьшая из проблем.
mantech
Цитата(alexunder @ Oct 2 2017, 00:40) *
Легче поднять GUI-приложение имхо.


wpf


Как бы пишут так:
"
Все, что относится к графике уже год в таком статусе:
«is not currently supported, as it requires GPU services that are not currently available on the Raspberry Pi because the DirectX driver has not been implemented»
UI (читай WPF) через программную эмуляцию там все же есть и работает, но пользоваться им толко нельзя, потому и остаются только безголовые решения или с веб-интефейсом управления. Ждем выхода Pi 3 (или сразу 8?), может тогда что-то по софту изменится и можно будет хоть медиа-плееры или центры видеонаблюдения делать."
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2018 Invision Power Services, Inc.