Разработка программ и прошивок
Мы имеем большой опыт разработки программного обеспечения для микроконтроллеров, ПЛИС и ПК.
Современные средства разработки позволяют качественно и быстро решать любые задачи.
Задачи, которые мы решаем:
-
Разработка программ и драйверов для микроконтроллеров: 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