Что в программном обеспечении означает термин «встроенный»?

9

Поэтому я стремился расширить свои знания в области встроенного и аппаратного программирования более низкого уровня, однако каждый раз, когда я ищу работу, в которой упоминается «встроенная», это всегда материал высокого уровня. Для меня это не имеет большого смысла.

Итак, что именно влечет за собой «встроенный»? Когда я думаю о встроенном, я думаю о программировании микроконтроллера более низкого уровня и тому подобном. Если встроенный не является подходящим названием для этого, то что я должен искать?

durron597
источник

Ответы:

4

Определите, что вы подразумеваете под вещами более высокого уровня. Написание драйверов и любого другого типа программного обеспечения, связывающегося с аппаратным обеспечением, - это, вероятно, то, о чем думает большинство людей, когда вы упоминаете встроенное программное обеспечение. Хотя это часть этого, это только малая часть. После того, как вы выполнили все эти настройки, остается написать целое приложение, которое, вероятно, никогда не будет напрямую взаимодействовать с оборудованием, и, скорее всего, в большинстве случаев это большая часть усилий по разработке. На каком-то уровне это может быть сравнимо с программированием на «более высоком» уровне. Однако во встроенном мире вы, вероятно, работаете с некоторыми ограничениями, особенно с точки зрения вычислительной мощности и памяти. Вот список вещей, о которых я думаю ежедневно, которые, вероятно, имеют меньшее значение в разработке более высокого уровня в большинстве случаев.

  • Параллельный поток (как защита, так и синхронизация)
  • Распределение и освобождение памяти и использование
  • Управление кучей (избегая фрагментации)
  • Соблюдение сроков в реальном времени
  • Приоритизация потоков
  • I / 0 производительность
  • DMA переводы
  • Размеры стека
  • Производительность библиотеки
  • Языковые функции (исключения раздувают ваш код)

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

Pemdas
источник
7

Из Википедии / Встраиваемая система :

Встроенная система - это компьютерная система, предназначенная для выполнения одной или нескольких выделенных функций, часто с вычислительными ограничениями в реальном времени.

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

Если вы считаете, что «высокоуровневые вещи» означают «использует язык программирования высокого уровня» или даже «это большой объектно-ориентированный проект», то, конечно, всегда возможно, что вы можете иметь программное обеспечение очень высокого уровня во встроенной системе. ,

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

Это очень широкий термин, действительно. Некоторые вещи, которые я не ожидал бы услышать под названием «Встраиваемые», это программное обеспечение для ПК, веб-приложения и серверное программное обеспечение в целом. Конечно, нет никакой гарантии, что встроенное программное обеспечение исключит какие-либо высокоуровневые программы или дизайн.

ProdigySim
источник
Кроме того, я мог бы указать, что цель указания того, что ваше программное обеспечение является встроенным, состоит в том, чтобы показать, что у вас будет меньше библиотек и существующих решений, из которых можно построить ваше решение.
ProdigySim
+1. Типичными примерами встроенных систем являются компьютеры в POS или банкоматах. Даже если они работают с готовыми ОС, такими как Windows или Linux.
nikie
1

Я подозреваю, что вы смотрите на работу, где «встроенный» означает «компьютер в коробке», обычно тот, который выполняет одну конкретную задачу. Вполне вероятно, что под управлением большей части дистрибутива Linux или ОС Microsoft, но он будет достаточно полным, и вы сможете использовать стандартные графические среды разработки и так далее. Встроенная часть действительно появляется, когда устройство поставляется в виде многоканального видеомагнитофона, устройства потоковой передачи мультимедиа или охранной сигнализации.

В наши дни вы можете выполнять большую часть обработки на устройстве мощностью 1 Вт, поэтому определение встраиваемого оборудования соответственно увеличилось. Но даже 20 лет назад у нас были встроенные устройства с батарейным питанием, работающие на довольно стандартной DOS, и мы создавали программы для них, используя IDE дня (например, сканеры штрих-кода Symbol имели библиотеки для C и Pascal, поэтому мы использовали Turbo Pascal на Win3.1 для построить исполняемые файлы). Но мы также поставляли «промышленные ПК», которые загружали DOS, а затем наше программное обеспечение, и ввод был ограничен несколькими большими водонепроницаемыми кнопками, установленными на коробке из нержавеющей стали. 15-дюймовый ЖК-дисплей за стеклом в этой коробке означал, что у нас было много вариантов вывода, но подключение клавиатуры означало открытие коробки (внутри пищевой фабрики). Это может считаться встроенным с некоторых точек зрения. В основном, у пользователя было мало вариантов восстановления после ошибок. - Силовой цикл это или нет.


источник