Программы и прошивки

Разработка программ и прошивок

Мы имеем большой опыт разработки программного обеспечения для микроконтроллеров, ПЛИС и ПК.

Современные средства разработки позволяют качественно и быстро решать любые задачи.


Задачи, которые мы решаем:

  • Разработка программ и драйверов для микроконтроллеров: Broadcom, Marvell, ST, TI, Atmel, Freescale, Analog Devices

  • Разработка программ и драйверов для System-On-Modules: NVIDIA Jetson TX1, NVIDIA Jetson TX2, NVIDIA Nano, NVIDIA Xavier

  • Разработка прошивок для ПЛИС: Xilinx, Altera, Lattice

  • Разработка драйверов для ОС: Linux, FreeBSD, FreeRTOS, RTEMS

  • Разработка пакетов поддержки платформ (BSP)

  • Сборка и конфигурация компиляторов, операционных систем и драйверов

  • Разработка программ с графическим интерфейсом для встраиваемых систем

  • Разработка программ тестирования и управления оборудованием для ПК.


Применяемые средства разработки:

  • Языки программирования: C, C++, Asm

  • Язык описания аппаратуры интегральных схем (HDL): Verilog, VHDL, AHDL

  • Интегрированные среды разработки (IDE и SDK): NVIDIA SDK, Qt Creator, Eclipse, Keil, IAR Systems, CooCox, MPLAB, Atmel Studio

  • САПР для ПЛИС: Quartus для Altera, Vivado для Xilinx и Diamond для Lattice

  • Кросс-компиляторы и менеджеры сборки: BuildRoot, OpenWRT, GCC, CrossTool-NG


Примеры выполненных проектов

Разработка пакетов поддержки платформ (BSP)

Одной из основных задач является разработка пакетов поддержки платформ (BSP).

В состав пакета поддержки платформы (BSP) входят:

  • Кросс-компилятор, библиотеки и средства отладки
  • Операционная система и драйвера
  • Файловая система с необходимыми программами и библиотеками
  • Файлы конфигурации устройства
  • Начальный и вторичный загрузчик
  • Скрипты для разделения, форматирования и прошивки памяти

Мы имеем опыт разработки пакетов поддержки (BSP) для следующих платформ:

  • NVIDIA Xavier Arm-V8
  • NVIDIA Jetson TX1 Cortex-A57
  • NVIDIA Jetson TX2 Cortex-A57
  • NVIDIA NanoBoard Cortex-A57
  • Marvell 88F6820 Arm-V7
  • Broadcom BCM53015A1 Cortex-A9
  • Freescale i.MX6 Cortex-A9
  • Atmel ATSAMA5D3 Cortex-A5
  • Atmel AT91SAM9G45 ARM9
  • ST STM32F3 Cortex-M4
  • ST STM32F4 Cortex-M4
  • ST STM32L1 Cortex-M3

Разработка программ для тестирования устройств

После изготовления устройства и разработки пакета поддержки платформы (BSP) необходимо проверить его работоспособность.
Для этого мы разрабатываем набор программ с помощью которых можно проверить работоспособность.
Набор программ для тестирования определяется индивидуально для каждого устройства:

  • Программа проверки портов ввода-вывода (GPIO, SPI, I2C и др.)
  • Программа проверки портов передачи данных (Ethernet, USB, PCI и др.)
  • Программа проверки памяти
  • Программа проверки дисплея и калибровки сенсорной панели

Разработка драйверов

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

  • Драйвер видеосенсора Sony IMX283
  • Драйвер видеосенсора Sony IMX415
  • Драйвер видеосенсора Sony IMX335
  • Драйвер видеосенсора Sony IMX172

Разработка программ для микроконтроллеров

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

Примеры типовых задач:

  • Чтение и запись аналоговых сигналов с датчиков через АЦП и ЦАП
  • Управление дискретными устройствами через порты ввода-вывода
  • Чтение и запись данных с микросхем по последовательным шинам: UART, SPI, I2C, PCIe и др.
  • Обмен данными с другими устройствами по проводным протоколам: Ethernet, USB, SFP, RS-232, RS-485, KNX и др.
  • Обмен данными с другими устройствами по беспроводным протоколам: Wi-Fi (802.11n, 802.11ac), Bluetooth, GSM, GPRS, 3G, LTE, NFC, RFID, Sub-1 GHz
  • Запись и чтение с устройств памяти: SDcard, Flash, HDD, SSD и др.
  • Отображение информации на LCD и TFT дисплеях
  • Разработка логических и математических алгоритмов работы

Разработка прошивок для ПЛИС

Для решения нестандартных задач, мы применяем микросхемы программируемой логики — ПЛИС.
Выбор применяемой микросхемы зависит от различных параметров: стоимость, функционал, количество ячеек и др.

Примеры выполненных проектов:

  • Разработка прошивки преобразователя LVDS-to-MIPI CSI-2, ПЛИС Lattice MachXO2
  • Разработка прошивки управления видеосенсором Cypress STAR1000, ПЛИС Altera Cyclone III
  • Разработка прошивки расширителя портов RS-485, ПЛИС Altera MAX 2
  • Разработка прошивки управления периферийными устройствами, ПЛИС Xilinx Zynq-7000

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

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

Примеры выполненных проектов:

  • Программа управления спирометрическим монитором. Назначение программы — мониторинг показателей дыхания: давление, поток, кислород.
  • Программа управления аппаратом ЭКГ. Назначение программы — отображение ЭКГ на экране мобильного аппарата и вывод данных на термопринтер.
  • Программа управления GSM/GPRS модемом. Назначение программы — оперативная связь с кардиоцентром и беспроводная передача кардиограмм.

Разработка программ тестирования и настройки устройств для ПК

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

Примеры выполненных проектов:

  • Программа калибровки и отображения аналоговых данных в виде графиков с платы усиления и обработки низкочастотных аналоговых сигналов
  • Программа калибровки и отображения аналоговых данных в виде графиков с платы контроля и управления спирометрического монитора
  • Программа настройки и отображения кадров для оптического устройства позиционирования
  • Программа настройки и тестирования для GSM модемов
  • Программа настройки и тестирования для KNX TP2 модулей
  • Программа тестирования преобразователей USB — KNX TP2 и USB — TTL UART/RS-232/RS-485