Встроенное программное обеспечение


Встроенное программное обеспечение — это компьютерное программное обеспечение , написанное для управления машинами или устройствами, которые обычно не считаются компьютерами, широко известными как встроенные системы . Обычно он специализирован для конкретного оборудования , на котором он работает, и имеет ограничения по времени и памяти. [1] Этот термин иногда используется взаимозаменяемо с прошивкой . [2]

Точная и стабильная характерная особенность заключается в том, что никакие или не все функции встроенного программного обеспечения инициируются/контролируются через человеческий интерфейс, а вместо этого через машинные интерфейсы. [3]

Производители встраивают встроенное программное обеспечение в электронику автомобилей , телефоны, модемы, роботы , бытовую технику, игрушки, системы безопасности, кардиостимуляторы , телевизоры и телевизионные приставки, а также цифровые часы . [4] Это программное обеспечение может быть очень простым, например, элементы управления освещением, работающие на 8-битном микроконтроллере с несколькими килобайтами памяти, с подходящим уровнем сложности обработки, определяемым с помощью вероятностно-приблизительно правильных вычислений [5] (методология, основанная на рандомизированные алгоритмы ). Однако встроенное программное обеспечение может стать очень сложным в таких приложениях, какмаршрутизаторы , элементы оптической сети, самолеты , ракеты и системы управления технологическими процессами . [6]

В отличие от стандартных компьютеров, которые обычно используют операционные системы, такие как macOS , Windows или Linux , встроенное программное обеспечение может не использовать операционную систему. Когда они используют одну из них, можно выбрать из широкого спектра операционных систем, обычно это операционная система реального времени . Код для встроенного программного обеспечения обычно пишется на C или C++ , но различные языки программирования высокого уровня , такие как Java , Python и JavaScript , теперь также широко используются для целевых микроконтроллеров и встроенных систем. [7] Языки ассемблератакже часто используются, особенно при загрузке и обработке прерываний . Ада используется в некоторых военных и авиационных проектах.

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

Встроенное программное обеспечение должно включать все необходимые драйверы устройств во время производства, а драйверы устройств пишутся для различных аппаратных устройств. Эти драйверы устройств, называемые BSP ( пакет поддержки плат ), образуют слой программного обеспечения, содержащий драйверы для конкретных аппаратных средств и другие подпрограммы, которые позволяют конкретной операционной системе (обычно операционной системе реального времени или RTOS) функционировать в конкретной аппаратной среде. (компьютер или карта ЦП), интегрированная с самой RTOS. Программное обеспечение сильно зависит от выбранного процессора и конкретных чипов. Большинство разработчиков встраиваемого программного обеспечения имеют хотя бы поверхностные знания о чтении схем ., а также чтение спецификаций компонентов для определения использования регистров и системы связи. Преобразование между десятичными , шестнадцатеричными и двоичными числами полезно, а также использование битовых манипуляций . [8]


Крупный план микросхемы SMSC LAN91C110 (SMSC 91x), встроенной микросхемы Ethernet .
Встроенный системный текстовый пользовательский интерфейс с использованием MicroVGA [nb 1]