Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

От «гولого железа» к ОС: почему я сменил фокус во встроенной разработке

Взгляд назад на «эпоху bare-metal»

Мое первое знакомство с встроенным ПО датируется 2008 годом, когда я, студент второго курса, учился программировать на чипе 8051. С дипломом по компьютерным наукам, большая часть моего кода запускалась на ПК, поэтому запуск программы напрямую на «голой» плате стал прорывным моментом. Я до сих пор помню, как проработала моя первая прошивка для велосипедного фонаря. Однако чем больше bare-metal проектов я брался, тем больше проблем выявлялось.

Ключевые болевые точки bare-metal разработки

Параллелизм

В bare-metal прошивке один цикл while (1) обычно содержит почти всю транзакционную логику. Когда одна рутина вызывает функцию задержки, процессор блокируется в этой задержке, заставляя все остальные задачи ждать. Такое последовательное выполнение расточит такты CPU и сильно ограничивает параллелизм.

Модульность

Высокая связность и низкая связанность достичь сложно, когда каждая функция живет в монолитном цикле. Зависимости тесны, код трудно рефакторить или расширять для крупных проектов. Например:

Ограничения экосистемы

Многие продвинутые программные компоненты зависят от низкоуровневой ОС. Примеры:

Требования реального времени

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

Повторное использование

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

Преимущества операционных систем

К 2010 году набирали популярность STM32, и я начал экспериментировать с RT-Thread. За прошедшее десятилетие я широко использовал RT-Thread и обнаружил, что он трансформирует встроенную разработку.

Модульность

RTOS разделяет прошивку на независимые потоки, у каждого свое контекст выполнения. Это разделение естественно повышает модульность и упрощает сопровождение.

Параллелизм

Когда поток вызывает sleep() или уступает управление, планировщик автоматически передает контроль другим готовым потокам, улучшая утилизацию CPU и общий параллелизм системы.

Гарантии реального времени

RTOS предоставляют детерминированное планирование: задачи имеют приоритеты, и ядро гарантирует, что задачи с высшим приоритетом вытесняют низкоприоритетные. Это встроенное поведение реального времени критично для систем, ответственных за безопасность.

Эффективность разработки

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

Программная экосистема

И Linux, и RT-Thread реализуют фреймворк драйверов устройств, абстрагирующий железо. Инженеры могут написать драйвер раз и развернуть на многих платах, радикально сокращая платформозависимый код. Эта экосистема также поощряет обмен: я регулярно публикую открытые компоненты на GitHub, и коллеги по всему миру вносят вклад, создавая живое, коллаборативное сообщество.

Заключение

Переход от bare-metal к RTOS расширил мою способность писать модульный, параллельный и безопасный для реального времени код. Он также открыл доступ к более богатой экосистеме, где процветают переиспользуемые компоненты, и разработчики могут сотрудничать через границы железа.

Встроенный

  1. Системы счисления: римская, позиционная и двоичная
  2. Токовые сигнальные системы: стандарт 4–20 мА подробно
  3. Почему ультра-точное Wi-Fi позиционирование критично для контакт-тренинга в промышленности
  4. Почему отключения электроэнергии сохраняются — и как предиктивная аналитика может прекратить даунтайм
  5. Обеспечение физической безопасности: критическая роль кибербезопасности для спокойствия
  6. Почему пневматические конвейерные системы превосходят традиционные ленты: 3 ключевых преимущества
  7. Как надежные IT-системы двигают будущее глобальных цепочек поставок
  8. Цифровая трансформация в фармацевтических цепочках поставок: 6 ключевых вопросов для производителей
  9. Безопасность систем сжатого воздуха: основные процедуры эксплуатации
  10. Прослеживаемость: ключевая основа для успеха IIoT-оснащенного производства