Приглашаем присоединиться к вебинару, посвященному Astra Linux Embedded - новому типу лицензий Astra Linux Special Edition, разработанному специально для специализированных устройств.
Современный С++ в разработке девайсов
Привет, Хабр.
Меня зовут Андрей Белобров. Я тимлид одной из команд, разрабатывающих приложения для умных девайсов Сбера.
На прошедшей недавно конференции Салют, OS DevConf! я выступил с докладом, в котором рассказал, как мы с командой разрабатываем приложения на С++ для умных устройств с виртуальным ассистентом. А также о том, как инструменты статического и динамического анализа помогают поддерживать единый стиль и высокое качество кода в проекте.
Во время доклада меня попросили подробнее описать детали нашего подхода в статье, поэтому рад поделиться с вами расширенной текстовой версией.
Все наши устройства должны уметь взаимодействовать c виртуальным ассистентом, проигрывать музыку, обновлять прошивку, выполнять аутентификацию пользователя и т.д.. Такая функциональность реализована в едином для всех платформ приложении, работающем в пользовательском режиме на каждом из наших устройств, будь то умная колонка, ТВ-приставка или умный телевизор.
Язык С++ позволяет писать эффективный и переносимый между различными платформами код, поэтому выбор языка программирования для нашего приложения был очевиден. При этом язык известен своей сложностью и возможностью выполнить одну и ту же задачу несколькими способами.
Чтобы успешно разрабатывать большой проект на языке C++, необходимо хорошо настроить процесс разработки в команде (а это несколько десятков инженеров). Также можно значительно осовременить разработку на C++ за счет использования подходящих инструментов статического и динамического анализа, и правильной интеграции их в процесс разработки.
Вебинар “Enabling machine learning application on a mW power budget”
21 октября в 16:30 в рамках цикла открытых технических семинаров компании Xperience AI с докладом выступит Франческо Пацци (Embedded Application and Algorithm Engineer, Greenwaves Technologies). Тема доклада - Enabling machine learning application on a mW power budget.
Франческо расскажет о том, как эволюция в области IoT и встраиваемых устройств повысила спрос на удалённые вычисления, которые позволяют уменьшить использование сети и учесть требования по производительности. Он поднимет такие вопросы, как ограничения существующих устройств по памяти, скорости и энергопотреблению при разработке приложений, а также расскажет, как подобные задачи решаются в процессорах Greenwaves Technologies.Семинар открытый, будет проходить на английском языке. Технические вебинары компании Xperience AI проходят регулярно в свободном доступе. Чтобы получить приглашение на это событие и получать их на будущие выступления, оставьте свой адрес в форме по ссылке.
Конференция Embedded World 2022 пройдет с 21-23 июня
Конференция посвященная встраиваемым системам, безусловно, знаковое событие, особенно в нынешнее время развития Интернета-вещей, новых языков программирования, и искусственного интеллекта.
На конференции рассмотрят целые серии докладов, посвященные аппаратному и программному обеспечению беспилотных автомобилей, проблемам использования Linux и open-source кода с точки зрения безопасности. Какое будущее за RISC-V архитектурой, технологиями контейнеризации, такие как Docker, которые упрощают управление автомобилем, повышают надежность и безопасность, и помогают развертывать обновление программного обеспечения.
Для тех, кто не может посетить конференцию очно, доступна онлайн трансляция. Если зарегистрироваться по промокоду «ew22web», то стоимость участия вместо 25 евро, станет нулевой. Трансляция ведется в приложение talque for Android. В рамках бесплатного доступа доступны не все доклады. Проходите по ссылке и регистрируйтесь на конференции бесплатно, будет интересно, узнайте все новое первыми.
SolidRun анонсировала новый компактный бесшумный промышленный компьютер Bedrock V3000 Basic
Компания SolidRun представила компактный бесшумный промышленный компьютер Bedrock V3000 Basic. Разработчики утверждают, что ПК может эксплуатироваться в неблагоприятных условиях. Были представлены две модификации: коммерческая и индустриальная. Первая с диапазоном рабочих температур от 0 до +70 °C, вторая — от -40 до +85 °C.
Кто убил сетевой коммутатор?
Недавно мы выявили интересный сбой в системе Hubris. Изначально этот код работал корректно, но со временем, в связи с изменениями в окружении и сопутствующих условиях, он превратился в ошибку.
Этот инцидент и процесс выявления и исправления ошибки предоставили нам новый взгляд на процесс разработки в контексте Hubris. Такие ошибки в ядре Hubris случаются нечасто, благодаря его компактности. Однако, этот особенный случай заставил меня зафиксировать его: речь идет о том, как две отдельные полезные функции, взаимодействуя вместе, привели к сбою в системе.
Одноплатный компьютер из камеры видеонаблюдения. Создаём WiFi-мобиль. Часть I
Я уже рассказывал про то, как из телевизионной приставки можно сделать одноплатный компьютер (SBC — single board computer). Если же у вас завалялась ненужная или разбитая камера видеонаблюдения, не спешите её выбрасывать. Я покажу, как её можно использовать, даже если на ней не работают какие-либо функции вроде звука, изображения и т. п. Сегодня нас камера интересует только как SBC. Расскажу, как найти куда подпаять нагрузку, какую нагрузку можно подключить к камере и какими способами можно ею управлять.
KatWalk C2: ч.4: поиграемся с прошивкой
Для тех, кто только подключился -- я рассказываю про платформу для VR игр, как с ней интегрироваться и как добраться до ее сенсоров напрямую.
Я уже заметил некоторые глюки и проблемы с сенсорами -- значит, неплохо было бы их поправить. Но чтобы их поправить, надо понять что они за зверь, и можно ли их как-то поменять. Из-за огромного размера статьи, пришлось разделить и без того маленький рефератик на еще более маленькие кусочки -- поэтому сегодня мы просто заглянем внутрь сенсора и научимся менять ему прошивку в простом и удобном виде.
Непрерывность функционирования систем жизнедеятельности: Совокупность циклов обратной связи
Наблюдая за программными системами и процессами жизнедеятельности с точки зрения непрерывности функционирования систем, я намерен углубить свое понимание жизни как системы в этой статье.
В первой половине исследования я расскажу вам о том, как разработчики программного обеспечения мыслят в рамках вычислительной среды, в которой работает их программа. Для обеспечения непрерывной работы системы необходимо наличие множества глубоко проработанных функций.
Во второй половине статьи мы вернемся к гипотезе о происхождении жизни, которую я излагал в других статьях, и рассмотрим, как интерпретировать эту новую загадку.
Заметка про сохранение структур во flash памяти на STM32
При разработке проекта для микроконтроллера часто возникает необходимость сохранения данных во Flash-память перед выключением устройства. Глобальные структуры содержат информацию о настройках различной периферии, данные с внешних датчиков и прочее. В этом посте я хочу показать простенький механизм записи структуры во FLASH память микроконтроллера STM32, которым я сам часто пользуюсь в своих проектах.
Modbus терминал и не только
Когда-то я активно работал с промышленным оборудованием. Часто мне приходило какое-то устройство, и оно общалось с внешним миром по волшебному протоколу Modbus.
Будучи излишне уверенным в себе, для каждого такого устройства я писал свою небольшую программу для тестирования. Но спустя непродолжительное время я понял, что это очень утомительное занятие. Интерфейс взаимодействия со мной с пользователем забирал кучу времени разработки. Потом еще отладка и прочее... просто жуть...
Поэтому представляю вам мою версию Modbus терминала!
Можно ли запустить ембедед С-проект на базе РТОС в режиме симуляции под Windows?
Если у вас есть эмбедед(embedded) проект и он написан на С или на С++ вы можете попробовать запустить этот проект в режиме симуляции на десктопном ПК и даже под Windows, по крайней мере у нас это получилось.
Такая симуляция превращает десктопный ПК в специальное устройство при этом не отнимая у вашего ПК десктопных возможностей-функций, например для отладки вашего встроенного ПО, которое исполняется на ПК в режиме симуляции. Ну а возможности тестирования и диагностики вашего эмбедед проекта в режиме симуляции практически не ограничены.
Дисклеймер: поскольку проект все еще в работе и принадлежит компании мне приходится избегать некоторых специальных технических терминов и подменять их более общеупотребительными, чтобы не создать привязку к бренду или к имени компании. Также я излагаю только общую идею, которая достаточно сложна, чтобы кто-то мог эту идею легко использовать, хотя в принципе это возможно. Нам интересно есть ли у кого-то опыт в обозначенном техническом направлении и любой обмен таким опытом.
Опыт автоматизации управления FPGA-стендами для распределенной команды: отказ от готового решения и работа над ошибками
В software-разработке с автоматизацией обычно все неплохо: более-менее понятно, как настроить CI и автоматизировать отдельные этапы CI-конвейера. Есть множество готовых решений и практик. Но, когда речь заходит об автоматизации тестирования на «железе», появляется множество нюансов. Например, не всегда понятно как автоматизировать процессы, которые обычно делают люди, — банальную перезагрузку устройства в другом городе. Или другая особенность — целевые аппаратные ресурсы масштабируются не так хорошо, как софт, поэтому приходится придумывать свои подходы к распределению времени доступа к стенду для СI-конвейеров и инженеров.
Меня зовут Игорь Большевиков, я инженер по системному программированию систем на кристалле в YADRO В статье я расскажу о нашем опыте автоматизации процессов, связанных с разработкой на FPGA-стенде: удаленной загрузке плат, бронировании аппаратных ресурсов и решении вопросов по координации для распределенной команды. Я опишу ключевые этапы задачи без лишних технических деталей. Возможно, статья будет полезна тем, кто занимается или кому предстоит заняться автоматизацией работ с FPGA.
Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях
Пожалуй, немалая часть моих читателей так или иначе интересуется DIY-тематикой. И в различных самодельных девайсах порой есть необходимость вывести какую-либо информацию на дисплей, будь это текст, графики или даже какая-то анимация! Для разных задач существуют самые разные дисплеи и в сегодняшнем материале я хотел бы систематизировать и собрать подробнейший гайд об использовании дисплеев с нерабочих мобильных телефонов: какие бывают протоколы и шины данных, как читать схемы устройств и определять контроллеры дисплеев, какие дисплеи стандартизированы, а какие придётся реверсить самому и как быть с подсветкой. В практической части статьи мы подключим дисплей по протоколу MIPI DBI к RP2040 с использованием DMA. Интересно? Тогда добро пожаловать под кат!
Linux дистрибутив и web-браузер для КПК и смартфонов
Про магнитолку
Я испытываю крайне смешанные чувства. У меня 15 лет опыта работы в IT индустрии. Я занимался почти всем — от сборки компьютеров до разработки информационных систем масштаба предприятия. Через мои руки прошли десятки девайсов, начинённых самым разнообразным софтом. И, тем не менее, я только что позорно облажался.
У меня в автомобиле сломался дисплей. Обычный такой, сегментный, с часами, температурой и прочей информацией. Тихо помер, не включившись при очередном повороте ключа зажигания. Две недели я ждал, пока официальный сервисный центр соизволит меня принять. Два часа я сидел в этом центре, ожидая, пока освободится подъемник…
Ремонт занял меньше минуты. Чуваки просто сняли клемму с аккумулятора и надели её обратно, произведя таким образом hard reset компьютера. И всё заработало.
Сложно описать нахлынувшие на меня эмоции. Но всю дорогу домой в голове крутился анекдот про программиста и заглохшую машину: «а давайте все выйдем, а потом зайдем обратно».
Первые, но нелегкие шаги во Flex
Imagine Cup. Embedded Development
Сразу отвечу на вопрос «как там наши ребята с Украины»? Они там есть, смотрите видео ;)
MySQL Embedded и лицензия
Так вот результатирующее что на сегодня я собрал и какие вопросы все-таки остались: Для распространения по своим клиентам обязательно требуется соблюдение одного из двух условий: или софт распространяется по GPL или оплата ЗА КАЖДОЕ РАБОЧЕЕ МЕСТО ~325 Евро/раб.место.
Примечание: Этот пост создается не для холивара MySQL vs «другие базы» или Delphi 7 — отстой в топку. У каждого свои средства разработки и разные задачи и разные клиенты.