Разработчики встроенных систем на C — прошивка под ключ
Reading time: 3 minutes.
Разработчики встроенных систем на C и прошивок
Есть железо. Нужна прошивка, которая выходит в срок, с чистой архитектурой и без того, чтобы нанимать штатного инженера на проект, который заканчивается.
Симплео разрабатывает встроенные системы и прошивки для производителей железа, IoT-стартапов и команд промышленной автоматизации. Делали: трекер активов с 2,2-летним временем работы от батареи (STM32L4 + GSM), UHF RFID-модуль (JRD-100), многоузловую LoRa-сеть для учёта ресурсов, портативный ISP-программатор для AVR и ESP32.
Что строим
IoT и трекинг активов Прошивки для GPS/GSM-трекеров, LoRa-датчиков, BLE-маяков и NB-IoT устройств. Энергоэффективная архитектура, OTA-обновления, стабильная передача при плохом соединении. IoT GAT трекер работает 2,2 года от одного элемента 3,7 В — за счёт управления питанием периферии, RTC-расписания сна и батчинга передачи по GSM.
Промышленная автоматизация Стеки CAN-шины, Modbus RTU/TCP, RS-485 и Profibus. RTOS-планирование для критичных по времени контуров управления. MISRA C там, где требуется соответствие стандартам промышленной безопасности.
Кастомные модули и аппаратные продукты От bare-metal BSP bring-up до полной прикладной прошивки на кастомном кремнии. Написали прошивку UHF RFID-модуля JRD-100 с нуля — протокольный стек, петля обратной связи по настройке антенны, интерфейс хоста — и прошивку платы разработчика A9G GPS/GSM с полным разбором AT-команд и NMEA.
Интеллектуальный учёт и LoRa-сети Многоузловые LoRa-сети с облачными дашбордами и автоматическим снятием показаний по электроэнергии, воде, газу и теплу. IoT Home Smart Cloud — 200+ узлов в одном развёртывании, потери пакетов менее 2%.
Процесс разработки
Неделя 1 — Технический скоупинг Изучаем схемы, даташиты, спецификации по связи и бюджет питания. Получаете письменную оценку: рекомендации по архитектуре, флаги рисков, замечания по компонентам, конкретные сроки и стоимость.
Недели 2–4 — Архитектура и BSP Bring-up MCU: дерево тактирования, скрипт линковщика, стартовый код, HAL-слой. Драйверы периферии (GPIO, SPI, I2C, UART, ADC, DMA). Последовательность загрузки, watchdog, обработчики сбоев. Тестирование на реальных платах.
Недели 4–N — Прикладная прошивка Стеки связи, сенсорная интеграция, проектирование задач RTOS, конечный автомат управления питанием, механизм OTA-обновлений. Еженедельные сборки — без финального сюрприза в конце.
Финальная фаза — Закалка и передача Нагрузочное тестирование, длительные прогоны, инъекция граничных случаев (скачки питания, ошибки шины, потери сети). Документация: обзор архитектуры, карта регистров периферии, инструкции по сборке и прошивке. Исходный код в вашем репозитории с полной историей.
Модели взаимодействия
Проект с фиксированным скоупом — определённые результаты, согласованные сроки, фиксированная цена. Подходит для разработки с нуля с чёткими требованиями.
Выделенный embedded-инженер — ежемесячный ретейнер, встроенный в ваш Jira/Linear. Для продуктовых компаний с постоянными потребностями в прошивке: новые аппаратные ревизии, добавление функций, расследование багов.
Аудит и спасение кода — существующая прошивка с проблемами надёжности, питания или производительности. Аудируем кодовую базу, инструментируем систему, находим корневые причины.
Технический стек
- МК: ARM Cortex-M (STM32, NXP Kinetis/LPC), ESP32/ESP8266, AVR, PIC32
- RTOS: FreeRTOS, Zephyr, ThreadX; bare-metal планировщик там, где накладные расходы RTOS не оправданы
- Протоколы: I2C, SPI, UART, USB, CAN 2.0A/B, Modbus RTU/TCP, BLE 5.x, LoRaWAN, Zigbee, GSM/GPRS/LTE-M, NB-IoT, MQTT, CoAP
- Инструментарий: GCC ARM Embedded, Keil MDK, IAR EWARM, ESP-IDF, PlatformIO
- Отладка: J-Link, ST-Link, OpenOCD, SEGGER SystemView, логические анализаторы
- Качество: MISRA C:2012, PC-lint, Cppcheck, Unity/CMock, LCOV
Смежные услуги
Если нужна прошивка плюс облачный бэкенд, мобильное приложение или проектирование платы — IoT-разработка полного цикла. Для выделенного IoT-инженера, закрывающего и прошивку, и слой связи — IoT-инженер в найм.
Получить оценку
Расскажите о микроконтроллере, требованиях по связи, сроках и целевом объёме производства. Ответим в течение 24 часов с оценкой скоупа.
Часто задаваемые вопросы
Сколько стоит разработка прошивки?
Проекты с фиксированным скоупом: $5 000–$30 000 в зависимости от сложности микроконтроллера, количества периферии, стеков связи и требований к сертификации. Ретейнер на выделенного embedded-разработчика — от $8 000 в месяц. После недельного технического скоупинга называем конкретную цифру.
Чем отличается embedded C от embedded C++?
Embedded C — компактное подмножество C99/C11 без динамической памяти, исключений и с детерминированным использованием стека. Embedded C++ добавляет классы и шаблоны, но требует строгой дисциплины (без STL, без RTTI, без исключений по умолчанию). Используем оба: BSP и драйверы на C, прикладной слой на C++ там, где это оправдано.
Берётесь за bring-up MCU с нуля?
Да. Bare-metal BSP bring-up — дерево тактирования, карта памяти, скрипт линковщика, стартовый код, инициализация периферии — основная часть нашей работы. Поднимали STM32, ESP32, NXP Kinetis и кастомные RISC-V цели с чистого кристалла.
Можете работать с нашим существующим схемотехническим дизайном?
Да. Присылайте схемы и даташиты под NDA — изучим до начала работ. Спасли несколько проектов, где прошивка буксовала из-за аппаратных проблем. Выявляем их на старте, а не обходим в коде.
Сколько занимает типичный проект по прошивке?
Сфокусированный драйвер периферии или стек связи: 2–4 недели. Полная прошивка IoT-устройства средней сложности (датчики, связь, OTA, управление питанием): 8–16 недель. Продукционная прошивка от bring-up до сертификации: 4–6 месяцев. Если платы ещё в производстве — начинаем на симуляторах или отладочных комплектах.
Подписываете NDA перед изучением схем?
Всегда. Подписываем взаимное NDA до любого технического обсуждения, связанного с вашей интеллектуальной собственностью.
Какие семейства микроконтроллеров поддерживаете?
ARM Cortex-M (STM32 вся линейка, NXP Kinetis/LPC, SAM), Xtensa (ESP32/ESP8266), AVR (ATmega, ATtiny, XMEGA), PIC32 и отдельные RISC-V цели. Для новых проектов по умолчанию выбираем STM32 или ESP32 под требования по связи и питанию.