Рубрика «embedded linux» - 2

Пиши на C как джентльмен - 1

«Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart:
Code Monkey like you
Code Monkey like you»

— Jonathan Coulton — Code Monkey

Я думаю, многим знакома эта шикарная песня Jonathan Coulton'а, и эта жизненная ситуация, когда «Rob say Code Monkey very diligent», но «his output stink» и «his code not 'functional' or 'elegant'».

Язык Си, подаривший нам столько полезного софта, потихоньку был вытеснен из десктопа и энтерпрайза такими высокоуровневыми гигантами как Java и C# и занял нишу системного программирования. И все бы хорошо, но системщики — очень отбитые своеобразные ребята. Задачи, которые порой возникают перед ними даже своей формулировкой способны вогнать в ужас простых смертных. Собственно говоря, так же, как и некоторые решения.

Сегодня мы поговорим о некоторых полезных практиках, которые я вынес из глубин системного программирования на Си. Поехали.
Читать полностью »

pinguin_packet_dry

Широко известный в узких кругах легковесный менеджер пакетов opkg получил распространение в embedded Linux не случайно. Opkg используется во многих встраиваемых дистрибутивах и проектах, например, в OpenEmbedded, Yocto Project, OpenWRT, Ångström, Arago Project и некоторых других. Менеджер прост в эксплуатации, для полноценной работы вполне достаточно встроенной справки, а на просторах всемирной паутины множество статей о том, как устроен сам пакет ipk (opkg работает с таким форматом): как его создать, как установить и т.д и т.п. Однако подавляющее большинство информации посвящено тому, как работать на уже установленной на целевую платформу (target) системе в online-режиме, но специфика Embedded подразумевает, что образ корневой файловой системы, а также ядро готовятся заранее на некоторой инструментальной платформе (host), отличной от целевой. Иными словами, собираем ядро и файловую систему на рабочем компьютере, упаковываем в образ, образ тиражируем на железо. Эта статья посвящена тому, как с помощью менеджера opkg установить пакеты в подготавливаемый образ rootfs.

Читать полностью »

image

Год назад выполнял довольно интересную работу по разработке встраиваемого компьютера для одного предприятия, занимающегося электроникой. Компьютер ничего принципиально интересного не представлял: процессор Cortex A-8, работающий на субгигагерцовых частотах, 512Mb DDR3, 1Gb NAND, легковесная сборка Linux. Однако устройству, в который компьютер встраивался, а значит и ему самому, предстояло работать в довольно жестких условиях. Широкий температурный диапазон (от -40 до +85 градусов Цельсия), влагостойкость, стойкость к электромагнитным излучениям, киловольтные импульсы по питанию, защита от статики в 4 кВ и много чего интересного, что хорошо описано в различных ГОСТах на спецтехнику, – это все про него. Одно из основных требований заказчика – срок выработки на отказ не менее 10 лет. При этом производитель обеспечивает гарантийный ремонт изделия в течении пяти лет, потому вопрос не риторический, а денежный и серьезный. В изделие была заложена соответствующая элементная база. Прибор с честью прошел испытания и получил требуемые сертификаты, но разговор не про то. Проблемы начались когда была изготовлена установочная партия, и устройства разошлись по отделам и КБ для создания прикладного ПО. Пошли возвраты с формулировкой: «Чего-то не загружается».
Читать полностью »

Разработка одноплатного компьютера с нуля. Пособие для начинающих - 1

Я занимаюсь разработкой электроники. Начал сравнительно недавно — когда микроконтроллеры от Atmel стали известны благодаря платформе Arduino. Тогда меня это не особо заинтересовало — на тот момент я уже программировал их из AVR Studio, читал истории DiHalt и мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ — это было увлекательно… :)

Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью — все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта.

Проекты на микроконтроллерах мне порядком поднадоели — подводных граблей очень мало, ошибки допустить достаточно сложно, все запускается «из коробки» — ни гибкости, ни сложности. С системами на кристалле — SoC (System on Chip) до этого я дела особо не имел — разве что ядро собрать, да Debian запустить. Поэтому я решил запустить простенький SoC, а именно пройти путь от схемы до рабочего Linux на борту. Да, в последующем я буду не совсем корректно называть SoC процессором, надеюсь, никого это не смутит.

Выбор у меня был небольшой, и определялся сложностью изготовления платы — только выводные корпуса, никаких BGA, максимум четырехслойный дизайн, а все потому, что я собирался прилепить свою платку к одному сравнительно простому рабочему проекту. Еще это означало, что в последующем я получу с производства уже спаянную плату, готовую к экспериментам.
Читать полностью »

трассировка
Сегодня мы решили сделать важный шаг в развитии платформы Wiren Board: открыть исходные файлы платы Wiren Board 2.8.
Читать полностью »

Наш контроллер для умного дома

Краткое содержание:

На базе нашей платформы Wiren Board (компактный индустриальный компьютер с Linux и разными интерфейсами) мы сделали навороченный контроллер для домашней автоматизации Wiren Board Smart Home (ARM9 64MB RAM, GSM/GPRS, Ethernet, Wi-Fi, USB, 2xRS-485/Modbus, CAN, 2xRelay, ASK/FSK радиомодуль 433MHz, NRF24L01+ и т.д.), к которому можно подключить кучу всяческих проводных и беспроводных исполнительных устройств и датчиков от разных систем и производителей. Устройство готово и протестировано. На устройства из первой большой партии мы открываем заказ с доставкой до майских праздников по специальной цене.
Читать полностью »

Новогоднее тестирование Wiren Board

Когда мы выпустили Wiren Board — компактный индустриальный компьютер c Wi-Fi, GPRS, GPS и NFC — многие спрашивали у нас, проверяли ли мы его при экстремальных температурах. Обычно мы отвечали, что все компоненты Wiren Board подобраны для индустриального диапазона, а тестировать нужно уже законченные устройства в корпусе.
Но на Новый год случаются самые настоящие чудеса — и сегодня мы публикуем отчёт об испытании Wiren Board льдом и пламенем. А поможет нам в этом самая настоящая Снегурочка!
Читать полностью »

Всем привет! Последние 9 месяцев мы разрабатывали Wiren Board — компактный индустриальный компьютер с множеством встроенных интерфейсов (Wi-Fi, GPRS, GPS, NFC, Ethernet и т.д.) Мы уже писали о нём, и получили кучу отзывов и пожеланий. В итоге в новую версию было внесено много изменений, и эта статья про самые значительные из них.

По сравнению с апрельским прототипом на плате появились 2 USB-host, интерфейс RS-485 и разъём с 8 GPIO. Кроме этого мы сделали новую схему питания, поддерживающую входные напряжения от 5 до 22 вольт, Passive PoE и подключение Li-Pol аккумулятора, добавили управление низковольтной нагрузкой и аналоговые входы на клеммниках.

Как мы делали Wiren Board

Как мы это делали, с какими трудностями столкнулись и что получилось в итоге — читайте в нашей статье.
Читать полностью »

Wiren Board — встраиваемый компьютер с Wi Fi, GPRS, GPS, NFC и Ethernet из коробки

TL;DR (Abstract)

Мы сделали маленький «одноплатный» встраиваемый компьютер с хорошим набором периферии, в основном беспроводной (GSM/GPRS, NFC, Wi-Fi, GPS, Ethernet, etc). Рабочее название — Wiren Board (от Wireless Enabled)

Предполагается, что использоваться он будет для всяческой автоматизации — то есть в качестве «мозга» для оборудования. Если вы хотите сделать умное устройство, не разрабатывая целиком собственное сложное железо, то это для вас. Впрочем, для DIY наш компьютер тоже весьма полезен, и об этом направлении мы не забыли при разработке. Если понадобится дополнить чем-то специфическим — функциональность можно расширять готовыми модулями. Что ещё приятно, стоимость компьютера мы планируем сделать всего около $100.

Первая версия уже готова, открыт предзаказ.

Что привело нас к разработке встраиваемого компьютера, через какие этапы мы прошли, и что в итоге получилось — читайте дальше.
Читать полностью »

— Ты пил пиво, — тихо заговорил Джо. — Плохо работал консервный нож.
Ты сказал, что сам смастеришь консервный нож, побольше и получше. Это я и есть.
© Генри Каттнер, «Робот-зазнайка»

Кто-бы мог подумать, что мы своими руками сможем разработать такую красавицу и умницу. Мало того — не просто разработать на бумаге, а ещё и получить десяток работающих образцов.

Картинка Для Привлечения Внимания
Контроллер «Virt2real», или просто — Виртурилка

Пролог


Давным-давно мы с коллегой начали заниматься управлением через Интернет всякими штуковинами типа вебкамер и маленьких машинок. Чуть позже у нас появились ездящие девайсы посерьёзнее, способные нести на борту свой контроллер и ёмкую батарею. К тому же я увлёкся всякими летающими штуковинами — самолётами и коптерами, что внесло дополнительную лепту в список хотелок.

Не покидала мысль о том что хорошо бы сделать видео не «вид сбоку или сверху», а вид с борта девайса, от первого лица. То что самолётчики/коптеристы называют FPV. Было это примерно пару лет назад. Пробовали ставить на машинку аналоговую камеру и передатчик, принимали видео на ТВ-тюнер, далее отдавали на видеосервер для раздачи рулящим машинками. Но сразу всплыли нюансы — одновременно можно транслировать только 3-4 видеопотока, иначе появляются наводки с одного канала на другой. Плюс дороговизна такого решения, плюс проблемы с разрешёнными частотами, плюс паршивое качество картинки с постоянно появляющимися помехами… В общем, попробовали и забили на это дело. К тому же, возможностей управляющего контроллера (тогда всё было сделано на базе всем известной Ардуинки) начало нехватать. Стали искать другие варианты, чтоб было недорого, дёшево, удобно и практично. Но имеющиеся в продаже (за границей, само собой и с довольно высокой стомостью) на тот момент железки для нужд не подходили. Одни умели всё кроме видео, другие умели только видео, но не позволяли подключать периферию, и т.д. и т.п.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js