Рубрика «Разработка под Linux» - 60

Графический VGA-контроллер на SoC без знаний HDL - 1
Всем привет!
В одной из предыдущих статей мой коллега Des333 реализовал фреймбуфер для LCD, работающего на графическом контроллере ILI9341. Однако, его написание потребовало существенного опыта в разработке RTL-кода.

К тому же, не у каждого под рукой есть embedded LCD-дисплей, зато наверняка есть монитор с VGA-входом.Что же делать, если опыта разработки под FPGA мало, но есть SoC, а сделать что-то интересное хочется?

В этой статье мы расскажем, как разработать графический контроллер, имея на руках плату с SoC (Altera Cyclone V), дисплей с VGA и минимальные знания языков HDL (в нашем случае — Verilog).

Для примера будем использовать наши платки, но всё описанное заработает и на других.
Кому интересно, прошу под кат.

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

Здравствуйте, уважаемые читатели! С наступающими вас праздниками.

В последней апрельской публикации мы хотели бы рассказать вам о замечательной книге Майкла Керриска «Linux Programming Interface», которая в очередной раз вернулась в наше поле зрения благодаря превосходным продажам другой литературы по Linux:

Linux Programming Interface - 1

Конечно, сложная книга о системном программировании объемом 1500+ страниц — литература, прямо скажем, на любителя. Но, поскольку отзывы о ней до сих пор восторженные, а нам потратиться на Linux завсегда не жалко предлагаем почитать ее обзор, опубликованный в далеком 2011 году.
Читать полностью »

В процессе работы над ОС Фантом, которая вообще не Юникс никаким местом, мне, тем не менее, захотелось сделать в нём Unix-compatible подсистему. Не то, чтобы прямо POSIX, но что-то достаточно близкое. Отчасти из любопытства, отчасти для удобства, отчасти как ещё один migration path. (Ну и вообще было интересно, насколько трудно написать простенький Юникс «из головы».) В качестве цели номер 1 была поставлена задача запустить quake 1 for Unix, которая и была достигнута.

В процессе, естественно, появились open/close/r/w/ioctl, и появилось ощущение, что последний неприлично, постыдно устарел. В качестве упражнения для размятия мозга я реализовал (в дополнение к обычному ioctl) некоторый альтернативный API, который бы позволил управлять свойствами устройств более гибким и удобным с точки зрения пользователя способом. Этот API, конечно, имеет свои очевидны минусы, и, в целом, эта статья — RFC, aka request For Comments.

Итак, API на уровне пользователя:

// returns name of property with sequential number nProperty, or error
errno_t listproperties( int fd, int nProperty, char *buf, int buflen );

errno_t getproperty( int fd, const char *pName, char *buf, int buflen );
errno_t setproperty( int fd, const char *pName, const char *pValue );

Правила:

  1. Никаких дефайнов с номерами, только имена.
  2. Никаких бинарных данных, только строки

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

Прошло около трех месяцев с момента создания нашего первого рабочего образца паспортного сканера. Получив хорошие результаты по качеству и скорости распознавания, мы, подняв на флаг практически Олимпийский девиз “Быстрее! Качественнее! Компактнее!”, приступили к созданию следующей модели ПАК. Если вам интересно, что у нас получилось в результате, добро пожаловать под кат.

От паспортного сканера к автономному распознающему устройству - 1
Читать полностью »

Nix loves C++

В последнее время много разговоров идет о том, что для C++ нужен свой пакетный менеджер подобный pip, npm, maven, cargo и т.д. Все конкуренты имеют простой и стандартизированный механизм подключения нестандартной библиотеки. В C++ же все действуют как умеют: кто-то прописывает в README список пакетов для Ubuntu, CentOS и других дистрибутивов, кто-то использует git submodule и скрипты для их сборки, кто-то использует CMake ExternalProject, кто-то копирует все исходники в один гигантский репозиторий, кто-то делает образ Docker или Vagrant.

Чтобы решить проблему был даже создан стартап — biicode, но он обанкротился и его будущее неизвестно. Взамен появился conan, дополняя зоопарк конкурентов — nuget, cget, hunter, cpm, qpm, cppget, pacm и даже gradle for c++.

Меня не устраивал ни один из перечисленных способов. Я было начал писать пакеты для Conan, но столкнулся с большим числом хаков, неразвитым API, отсутвием гайдлайнов и, как следствие, низкой вероятностью переиспользования чужих пакетов. И тут вспомнилось, что когда-то мне очень понравились идеи пакетного менеджера в NixOS. И подумал — а зачем плодить пакетный менеджер специально для C++, если те же задачи решает обычный пакетный менеджер? Нужно только чтобы он был достаточно гибким и простым в части описания пакета. И Nix идеально подошел на эту роль.

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

Что нового в Visual Studio 2015 для энтузиастов C#, Visual Basic и Linux - 1

Всем доброго дня!

На прошлой неделе завершилась конференция Build 2016, на которой были представлены главные новости для разработчиков от компании Microsoft.

В их числе и выпуск Visual Studio 2015 Update 2, который уже можно скачать и установить себе на компьютер, а также превью следующей версии инструмента:

Разберемся, какие нововведения ожидают разработчиков с Visual Studio 2015 Update 2. Начнем с новостей для разработки на C# и Visual Basic.
Читать полностью »

image

Сейчас понятие «бесплатно» в интернете имеет весьма размытые черты: пользуясь бесплатными сервисами вы либо предоставляете свои персональные данные для обработки и показа рекламы, либо смотрите эту самую рекламу по выбору владельцев ресурса или ПО. Часто бесплатные версии обладают ограниченным функционалом, что накладывает существенные ограничения на разработчика.

Однако, парни из Red Hat решили в очередной раз напомнить миру, что «бесплатное» должно быть «бесплатным» без дополнительных условий и приписок мелким шрифтом в стиле «вы обязаны смотреть нашу рекламу каждое полнолуние». Поэтому теперь продукт «Red Hat Enterprise Linux» для разработчиков распространяется по системе «no cost»-подписки, о чем сообщается в пресс-релизе на официальном сайте компании.
Читать полностью »

Проверка Samba с помощью PVS-Studio под LinuxЕсли вы следили за новостями о последних разработках в области инструментов анализа C/C++ кода, то, должно быть, слышали про инструмент PVS-Studio. Я узнал о нем благодаря статьям, которые разработчики публикуют на своем сайте и в которых они рассказывают о проверках проектов с открытым кодом. К настоящему времени уже проверено внушительное число проектов, включая ядро Linux, Qt, Unreal и т.д., и каждый раз им удается находить интересные ошибки, подолгу живущие в коде, никем не обнаруженные. Опечатки, неаккуратное копирование, неопределенное поведение, бессмысленный код, синтаксические ошибки, которые чудесным образом пропускаются компилятором…

Как сказал Джон Кармак, "Все, что является допустимым с точки зрения синтаксиса и пропускается компилятором, в конце концов окажется в вашей кодовой базе".
Читать полностью »

Некоторые особенности разработки под Ubuntu Touch - 1

Пришла весна. Коты думаю о кошках, мужчины о женщинах, а программист — куда бы ещё портировать имеющийся код. Я ещё прошлой осенью стал обладателем Meizu MX4 Ubuntu Edition, и поэтому выбор был давно очевиден. А тут нашлось и время, и силы.
Читать полностью »

Сегодня мы расскажем об успешно реализованном проекте для крупного немецкого производителя телекоммуникационного оборудования (хабы, роутеры, сетевые серверы и пр.)

В помощь DevOps: сборщик прошивок для сетевых устройств на Debian за 1008 часов - 1

Задача

Embedded Debian не предоставляет готовой к использованию среды для сборки произвольных образов системы. Чтобы ее подготовить, требуется использовать стандартный дистрибутив Debian, обладать навыками системного администрирования, подобрать и настроить набор утилит, написав при этом ряд shell скриптов для автоматизации процедуры кросс-компиляции пакетов. Проделав всю ручную работу, вы получите консольный инструмент, пользоваться которым может исключительно технический персонал с определенным уровнем навыков работы с ОС Linux, а это не удобно, встает вопрос по организации многопользовательского доступа к этой среде и ограничению прав, а также постоянной поддержки среды в актуальном состоянии.

Выбор производителя телекоммуникационного оборудования пал на дистрибутив Embedded Debian благодаря большому количеству пакетов входящих в состав ОС, позволяющих решать самые разнообразные задачи, и обилию поддерживаемых платформ.

Перед разработчиками EDISON была поставлена задача разработать веб-сервис с интуитивно понятным веб-интерфейсом в виде мастера, позволяющего подготовить произвольный образ системы на базе Embedded Debian на целевую платформу в несколько шагов, который также решает ряд смежных задач.

  • Многопользовательский доступ к системе сборки образов Debian.
  • Хранение подготовленных образов и предоставление доступа к ним.
  • Модификация и повторная сборка подготовленных ранее образов.
  • Клонирование и модификация подготовленных ранее образов.
  • Возможность делится созданным образом с другими пользователями.
  • Зеркалирование дистрибутива Embedded Debian, поддержка его в актуальном состоянии.
  • Предварительная сборка пакетов дистрибутива на различные платформы по расписанию.
  • Предоставление статистики по итогам сборки пакетов на различные платформы.
  • Поддержка классических img образов, а также iso образов, в том числе с поддержкой Live CD.

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

Реализация и технологии.

  • Python 2 / Django.
  • Bash shell scripts.
  • MySQL.
  • Debian 5.0 (Lenny).
  • Embedded Debian 1.0 (Grip / Crush).

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


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