цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Тенденции в области средств разработки программного обеспечения для встраиваемых систем



Тенденции в области средств разработки программного обеспечения для встраиваемых систем

Автор: Mike(admin) от 7-03-2023, 23:55

Новое в сфере программного обеспечения для встраиваемых систем


Говорят, что у человека, у которого есть только молоток, все выглядит как гвоздь. Наличие правильного инструмента для правильной работы имеет решающее значение для эффективности и результативности в любой квалифицированной профессии. Разработка встраиваемых систем ничем не отличается. Тем не менее, до недавнего времени инструментам, предназначенным для разработки встраиваемых систем, не хватало усовершенствованных и современных наборов функций, присущих инструментам разработки, предназначенным для настольных, веб- и мобильных разработчиков.


Тенденции в области средств разработки программного обеспечения для встраиваемых систем

Кроме того, для программирования микроконтроллеров и ПЛИС исторически требовались довольно дорогие аппаратные программаторы/отладчики и лицензии на проприетарное программное обеспечение. Недавнее стремление к экосистемам с более открытым исходным кодом (например, микропроцессор RISC-V, Arduino IDE и т. д.), возможно, оказало положительное влияние на надежность и удобство использования многих инструментов разработки. Здесь мы рассмотрим новые разработки программного обеспечения, которые внесли и продолжают вносить существенные изменения в рабочий процесс разработчиков встраиваемых систем.


Интегрированная среда разработки (IDE)


Многим разработчикам нравится писать код в простых текстовых редакторах, особенно в Vim или Nano в Linux. Они легкие и по умолчанию находятся почти в каждом дистрибутиве Linux. Однако современные редакторы кода и IDE предлагают гораздо больше функциональных возможностей, что делает их очень привлекательными для разработчиков встраиваемых систем. Кроме того, многие производители встраиваемого оборудования предлагают специализированные IDE для своих различных семейств микроконтроллеров. IDE, ориентированные на производителя, предоставляют многочисленные преимущества, такие как доступ к библиотекам поддержки для внешних компонентов, шаблоны для нескольких микроконтроллеров и примеры, помогающие разработчикам начать работу с новым оборудованием.


Инструменты контроля версий


Разработка программного обеспечения непрерывна. Кроме того, редко один разработчик разрабатывает современные встраиваемые системы. Или, по крайней мере, разработчик встраиваемых систем должен работать с мобильными или веб-разработчиками, поскольку встроенные системы, как правило, являются частью более крупной программной экосистемы. Инструменты контроля версий, такие как Git, позволяют управлять итерациями исходного кода на протяжении всего цикла разработки. GitHub и GitLab – два популярных облачных репозитория исходного кода и других файлов дизайна. Управление версиями, управление выпусками и отчеты об ошибках – это лишь некоторые из преимуществ использования инструментов контроля версий. Однако есть несколько недостатков. В основном они стали частью цепочек кибератак, потому что разработчики иногда случайно оставляют имена пользователей, пароли или ключи шифрования в коммитах, которые они отправляют в общедоступные репозитории. Затем злоумышленники просматривают эти репозитории в поисках этой информации и включают ее в свои вредоносные атаки.


Отладчик


Исторически отладка микроконтроллеров означала дорогостоящее оборудование. Внутрисхемные эмуляторы (ICE) – это устройства, которые подключаются к разъему микроконтроллера более крупной системы. Они позволяют выполнять микропрограмму в режиме реального времени, а также предоставляют функции отладки, такие как доступ к регистрам и памяти, условные точки останова и буферы трассировки. Более распространенными и менее дорогими являются внутрисхемные отладчики (ICD). Как правило, устройство находится между рабочей станцией разработчика и целевым микроконтроллером и позволяет выполнять отладку по протоколу внутрисхемного последовательного программирования (ICSP). Некоторые современные платы для разработки микроконтроллеров даже имеют встроенное оборудование для отладки ICSP, и доступ к ним осуществляется через USB-кабель, подключенный непосредственно между целевой платой для разработки и рабочей станцией разработчика. Контроль над функциями отладки обычно находится в предпочитаемой IDE платы разработки.


Тенденции в области средств разработки программного обеспечения для встраиваемых систем

Линтер


Когда мы пишем статьи или отчеты, мы прогоняем окончательный вариант через инструмент проверки орфографии и грамматики. Линтер – аналогичная концепция, но для исходного кода. Линтер просматривает исходный код статически (т. е. перед компиляцией, а не во время выполнения машинного кода на целевом устройстве) и может обнаруживать проблемы, возникающие из-за стилистических ошибок, ошибок конфигурации, ошибок структуры проекта, ошибок зависимостей библиотек. Эти ошибки могут повлиять на что угодно: от удобочитаемости до предотвращения успешной компиляции.


GitHub Copilot


На протяжении десятилетий автодополнение было функцией многих редакторов кода. Автозаполнение помогает разработчикам быть более эффективными, предлагая интеллектуальные рекомендации в реальном времени для ключевых слов и имен переменных, когда разработчик вводит свой исходный код. Copilot от GitHub – это инструмент завершения кода на основе ИИ (плагин для Visual Studio Code), который выводит идею автозавершения на совершенно новый уровень. Copilot проверит название функции, написанной разработчиком, и порекомендует весь исходный код, необходимый для выполнения этой функции. Например, скажем, вы пишете следующее:


float calculateVolume

Copilot завершит объявление функции следующим образом:



float calculateVolume(float radius) {
     return (4.0/3.0) * PI * radius * radius * radius;
}

Тенденции в области средств разработки программного обеспечения для встраиваемых систем

Copilot – это, по сути, коллега по ИИ, который может помочь в разработке кода, предоставив, по крайней мере, отправную точку для определения функций. Однако, как и любой инструмент автоматизации, он не отменяет необходимости проверки человеком и, при необходимости, исправления кода, сгенерированного Copilot.


Инструменты проверки HTTP и API


Встраиваемые устройства (т. е. устройства Интернета вещей или IoT) все реже не обмениваются данными по сети, если не через сам Интернет. К сожалению, есть большая вероятность, что разработчики веб-приложений создают программное обеспечение параллельно (с усилиями по разработке встраиваемых систем. Такие инструменты, как Postman, позволяют разработчикам встраиваемых систем проверять и тестировать методы HTTP-запросов (например, PUT, POST, GET) и запросы API независимо друг от друга. и до внесения их в прошивку. Таким образом, устранение неполадок не зависит от встроенного оборудования, гарантируя, что любые проблемы с API возникают исключительно из-за самого API, а не прошивки или встроенного оборудования.


Инструменты проверки пакетов


Хотя инструменты проверки HTTP и API, ориентированные на разработку, отлично подходят для высокоуровневой отладки, иногда необходимо проверять на уровне пакетов или может потребоваться изучить различные протоколы, такие как Zigbee. В этих случаях необходимо использовать инструмент проверки пакетов, такой как Wireshark. Wireshark может записывать и проверять многочисленные протоколы пакетной связи.


Программные логические анализаторы


Разработчики все чаще используют программные инструменты для отладки своих устройств вместо столов, заполненных громоздкими аппаратными осциллографами и логическими анализаторами. Обычно программные инструменты подключаются к персональному компьютеру через USB-кабель, а интерфейс предоставляется в виде настольного приложения. Популярным логическим анализатором начального/среднего уровня является Saleae Logic Analyzer. Эти программные инструменты очень привлекательны для выездных технических специалистов. Они делают проверку и устранение неполадок развернутых устройств более эффективными, перенося то, что традиционно было анализом на лабораторном уровне, в полевые условия. Важным преимуществом программного анализатора является то, что в дополнение к поддерживаемым протоколам по умолчанию (например, I2C, SPI, последовательный порт) можно написать собственные анализаторы протоколов для пользовательских протоколов связи.


Терминальный клиент Secure Shell (SSH)


Для более надежных встроенных систем, работающих под управлением операционной системы и предлагающих доступ к оболочке для удаленного управления, скорее всего, потребуется подключение SSH к устройству для выполнения определенных задач обслуживания. Или может потребоваться удаленный вход на сервер, с которым взаимодействуют несколько устройств IoT, и внесение изменений в серверные службы. Несмотря на это, возможность удаленного доступа к системам имеет решающее значение, и терминальные клиенты SSH, такие как Termius, делают это возможным. Другие полезные функции современных клиентов включают создание, хранение и запуск фрагментов кода bash одним щелчком мыши. Они также обеспечивают возможность доступа к нескольким терминалам одновременно. Наконец, некоторые клиенты также предлагают функцию безопасной передачи файлов (SFTP) для передачи файлов на/с удаленных устройств с/на ваш локальный компьютер.




© digitrode.ru




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

Комментарии:

Оставить комментарий