Как создается программное обеспечение для таких устройств, как банкоматы или телевизоры?

14

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

Машины не действуют сами по себе, это работа программиста, он говорит, что и когда делать, но мое любопытство лежит под компьютерами. Я возьму примеры программного обеспечения для банкоматов в этом посте, но имейте в виду, что есть много других, таких как дисплей стиральной машины или телевизор, мобильный телефон, назовите его.

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

Bugster
источник
Спасибо за ссылку. Я понятия не имел об этом, пока не нашел вашу ссылку. И почему это было отвергнуто? Что с этим не так?
Bugster
3
@ThePlan Люди склонны занижать вопросы, которые не относятся к типу «Как мне решить эту конкретную проблему?»
CFL_Jeff
3
Хотя люди могут понизить голос по нескольким причинам и не обязаны объяснять себя, всплывающая подсказка на стрелке понижающего голоса гласит: «Этот вопрос не требует каких-либо исследовательских усилий; он неясен или бесполезен» - я думаю, что первое предложение очень близко к достаточное объяснение понижения, которое вы получили, пожалуйста, сделайте хотя бы небольшое исследование, прежде чем спрашивать программистов.
Яннис
9
Я говорю порезать его немного расслабиться. Трудно исследовать встроенное программирование, когда вы не знаете этот термин.
Карл Билефельдт

Ответы:

15

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

Встроенное программирование очень зависит от архитектуры. Обычно вы работаете с серьезным ответом, размером программы, исправлением ошибок и ограничениями по стоимости. Например, у вас может быть z80 (8-битный процессор, они везде) и, возможно, пара килобайт памяти для игры. У вас может быть только ПЗУ, чтобы сообщить системе, что делать и как настроить программу. Это также может быть всего несколько килобайт. Почему так мало памяти? Хорошо, если вы изготовите 15 миллионов маленьких присосок; каждый пенни становится 150000 долларов.

Я бы посоветовал возиться с чем-то вроде Arduino или Scribbler Robots, если вы хотите узнать больше, делая это. Что касается языков, C, C ++ и Assembly являются типичным набором, хотя Java может использоваться (и на самом деле изначально был разработан для этой области, если вы согласны с этой мыслью) Другие также могут быть использованы, я знал о Лисп и ML оба развернуты.

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

Мировой инженер
источник
Спасибо, этот ответ - мой выбор принятого ответа, потому что он объясняет встроенные системы в двух словах, а также дает мне возможность выбора книги.
Bugster
4
@ThePlan - хорошая вещь о встроенных в том, что вы можете проверить их. Если у вас есть только 3 входа и 3 выхода, то довольно легко проверить, что работает. Вам не нужно проверять, что происходит, если они запускают ваш код на иврите под Windows XP на турецкой клавиатуре с узбекской версией Flash.
Мартин Беккет,
@MartinBeckett: Вы несколько упрощали сложность разработки встраиваемых систем. У последнего было требование ответа в реальном времени, измеренное в нано секундах. Это было непроверенно - единственный способ узнать, что это правильно, - это доказать, что код был верным при разработке и проверке. В отличие от ковбоев, которые сегодня кодируют пользовательские приложения, чьи дефекты исправляются посредством онлайн-обновления.
Mattnz
Кроме того, может потребоваться, чтобы эти системы работали годами или даже десятилетиями без доступа людей или других лиц.
Мировой инженер
@mattnz - это не всегда легко, но по крайней мере выполнимо. В настольном коде ковбоя на вершине операционной системы, которую вы не можете полностью протестировать, написанном с помощью набора инструментов, который вы не можете полностью протестировать с тысячами других приложений, потенциально взаимодействующих с ним, плюс случайные действия пользователей - это в значительной степени безнадежно.
Мартин Беккет
5

Здесь определенно есть встроенный угол. Но в наши дни вы видите все больше и больше продвинутых платформ на так называемых встроенных устройствах. Например, у телевизоров LG и Samsung теперь есть API и магазины приложений. Телевизоры Sony будут работать под управлением Android.

Уайетт Барнетт
источник
3
... и некоторые банкоматы работают под управлением Windows. Когда они синего экрана, фотографии обычно заканчиваются на thedailywtf.com . А в моем городе местный общественный транспорт продает месячные проездные из киосков. Однажды я увидел один, который застрял при загрузке - он работал под управлением Windows 2000 (это было около 6 месяцев назад)!
FrustratedWithFormsDesigner
@FrustratedWithFormsDesigner - спасибо, не делайте здесь банкоматы, поэтому я не знаю, что они делают. , ,
Уайетт Барнетт
Банкомат = Банкомат. AKA Bank Machine. АКА Машина, которая позволяет вам снимать деньги со своего счета вместо того, чтобы идти к кассе.
FrustratedWithFormsDesigner
Я знаю это, просто не работайте с ними как с покупателем. , ,
Уайетт Барнетт
4

Я видел два банкомата, открытых в Денвере, штат Колорадо. Оба были (тогда) банкоматами Compass Bank, и оба были Windows XP в защищенном корпусе. Мне удалось спросить у специалиста, что, в частности, побежал один из них, и он сказал что-то вроде «XP Embedded».

Итак, я уверен, что программирование в банкоматах в наши дни не похоже на встроенное программирование, а скорее на стандартную разработку Windows.

Брюс Эдигер
источник
Не только "в эти дни". Банкоматы используются для запуска Windows NT 3 или OS / 2. И пользовательский интерфейс, который вы видите, скорее всего, будет HTML-страницами, отображаемыми Internet Explorer. Язык программирования может быть любым - я работал над системой Java, которая заменила систему, написанную на VB. Банкоматы - это обычные ПК с необычной периферией и драйверами.
Майкл Боргвардт
3

Эти типы устройств программируются с использованием встроенного программирования . Это очень низкоуровневый тип программирования, который тесно связан с логикой и гейтами.

Если вы заинтересованы в изучении встроенного программирования, я бы порекомендовал изучить Arduino .

CFL_Jeff
источник