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

Предстоит осваивать Linux-устройства. Для "попробовать" заказана Малина (позже переориентируемся под более удобные процессоры). Интересует с помощью каких средств разрабатывается ПО под старшие системы? Как происходит отладка?

 

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

 

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

Изменено пользователем k000858

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


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

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

MPU есть и в STM32. Попробуйте - понравится :rolleyes:

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


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

Включил, загрузился - обычная Линукс-машина. Как люди под dos\windows писали\пишут, так и тут. Не?

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


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

Сейчас работаю под 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

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


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

C Linux будет почти также. Можно воспользоваться ARM DS-5, там и Eclipse и GNU-toolchain

http://www.compel.ru/wordpress/wp-content/.../02/DS5_NEW.pdf

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

 

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

 

Есть какие то альтернативы?

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


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

C Linux будет почти также. Можно воспользоваться ARM DS-5, там и Eclipse и GNU-toolchain

http://www.compel.ru/wordpress/wp-content/.../02/DS5_NEW.pdf

Я так понимаю, такие штуки нужны для разработки загрузчиков, драйверов и тому подобного. Для отладки юзерспейса используют gdb, если не ошибаюсь.

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


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

Абсолютно так же, как и на "обычном" компьютере. Лично я пользуюсь printf и логгированием в файл.

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


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

спасибо за ответы. интересует более детальное описание процесса разработки.

 

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

 

Сам этот образ ОС собирается программистом в среде разработки или испод десктоопной ОС Линукс.

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

 

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

 

Поправьте в чем я ошибаюсь.

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


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

Поправьте в чем я ошибаюсь.

Берёте платку с уже готовой осью. Остаётся только добавить своё приложение. Всё.

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


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

Берёте платку с уже готовой осью. Остаётся только добавить своё приложение. Всё.

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

 

В последствии будут свои платы со своей периферией под разные задачи. Соответственно программить необходимо будет начиная драйверами заканчивая "приложениями".

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


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

В последствии будут свои платы со своей периферией под разные задачи. Соответственно программить необходимо будет начиная драйверами заканчивая "приложениями".

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

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


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

спасибо за ответы. интересует более детальное описание процесса разработки.

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

Сам этот образ ОС собирается программистом в среде разработки или испод десктоопной ОС Линукс.

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

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

Поправьте в чем я ошибаюсь.

 

В целом все так, но как известно, дьявол кроется в деталях, а их очень много и продираясь сквозь них многие разработчики проклинают Linux и отказываются от него навсегда :)

Есть несколько открытых проектов, занимающихся средствами разработки для Embedded Linux, например Yocto:

https://www.yoctoproject.org/

https://www.yoctoproject.org/product/angstrom-distribution

они значительно облегчают жизнь начинающему микроконтроллерному линуксоиду (например мне :) ).

Поэтому я согласен с scifi, лучше взять готовый проект, максимально похожий на ваш и его прогрызать, приготовившись пролить много горьких слез и провести длинные бессонные ночи :)

Еще вот тут много чего на эту тему: https://rocketboards.org/

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


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

Я извиняюсь, но если разработчик "проклинает линукс", то это не разработчик никакой! Потому как линукс и мастдайка — небо и земля! Особенно если под железо что-то пишешь. Линукс — нормальная операционная система, а мастдайка — так, пускалка игрушек.

 

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

 

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

 

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

Изменено пользователем Эдди

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


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

k000858,

Вы же уже с Eclipse работаете!

Так и продолжайте.

В eclipse есть все необходимые плагины для удаленной отладки.

 

Вот примеры как для малины используют

http://cxemotexnika.org/2016/10/programmir...se-pod-windows/

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


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

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

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

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

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

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

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

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

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

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