Як будується програмне забезпечення для таких машин, як банкомати чи телевізори?


14

Як початківець програміст, я працював лише з програмуванням на базі комп'ютерних програм, але питання дуже часто трапляється мені в голову, оскільки я розпочав програмування, і не можу відповісти на нього належним чином.

Машини не діють самостійно, це робота програміста, він говорить йому, що робити і коли це робити, але моя цікавість лежить під комп'ютерами. Я візьму приклади програмного забезпечення для банкоматів на цій посаді, але майте на увазі, що є багато інших, таких як дисплей пральної машини або телевізор, мобільний телефон, як ви його називаєте.

Як саме будується програмне забезпечення для таких машин? Я думаю, це не може бути ідентичним програмуванню на комп'ютері. Якою мовою вони користуються, щоб такі речі працювали і як можна виконати роботу? Чи є спеціалісти, які спеціалізуються на такому програмуванні? Який процес змушення цих машин оживає?



Дякую за посилання Я не мав поняття про це, поки не знайшов ваше посилання. Також чому це було знято? Що з цим не так?
Багстер

3
@ThePlan Люди, як правило, спростовують питання, які не належать до типу "Як вирішити цю конкретну проблему?"
CFL_Jeff

3
Хоча люди можуть звертатись з кількох причин і не зобов’язані пояснювати себе, підказка на стрілці downvote зазначає: "Це питання не показує жодних зусиль для дослідження; воно незрозуміле чи не корисне" - Я думаю, що перше речення дуже близьке до Достатнє пояснення для отриманого вами шлюбу, будь-ласка , пройдіть хоча б невеликі дослідження, перш ніж запитати програмістів.
янніс

9
Я кажу, наріжте його трохи млявим. Важко дослідити вбудоване програмування, коли ви не знаєте цього терміна.
Карл Білефельдт

Відповіді:


15

Він відомий як вбудовані системи або вбудована розробка програмного забезпечення. Я рекомендую цю книгу, якщо ви хочете дізнатися більше про загальний процес, не надто переходячи до якоїсь однієї архітектури. Він навіть дає операційну систему в режимі реального часу, з якою можна грати.

Вбудоване програмування дуже залежить від архітектури. Зазвичай ви працюєте в умовах серйозної реакції, розміру програми, відновлення помилок та обмежень витрат. Наприклад, у вас може бути z80 (8-бітний процесор, вони є скрізь) і, можливо, кілька кілобайт пам'яті, щоб грати. У вас може бути лише ПЗУ, щоб повідомити системі, що робити і як налаштувати програму. Це може бути лише пара кілобайт. Чому так мало пам’яті? Добре, якщо ви виготовите 15 мільйонів маленьких присосок; кожна копійка стає 150 000 доларів.

Я б запропонував познайомитися з чимось на кшталт Arduino або Sbobbler Robots, якщо ви хочете дізнатися більше, роблячи. Що стосується Мов, типовим набором є C, C ++ і Assembly, хоча Java може бути використана (і справді спочатку була розроблена для цього домену, якщо ви можете подумати про цю думку). Lisp та ML обидва розгорнуті.

Дізнайтеся скільки завгодно про архітектуру, тому що, як я вже сказав, розподіл пам’яті та побізні операції стають дійсно важливими.


Дякую, ця відповідь є моїм вибором прийнятої відповіді, оскільки вона пояснює вбудовані системи в двох словах, а також дає мені можливість книги.
Багстер

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 - дякую, не робіть тут банкоматів, тому я не знаю, що вони роблять. . .
Wyatt Barnett

Банкомат = автоматична машина для переказів. Банківська машина AKA. AKA Машина, яка дозволяє знімати гроші зі свого рахунку, а не звертатися до касира.
FrustratedWithFormsDesigner

Я знаю це, просто не працюй з ними як ні з чим, крім клієнта. . .
Віатт Барнетт

4

Я бачив два банкомати, відкриті в Денвері, штат Колорадо. Обидва були (тоді) банкоматами Compass Bank, і обидва були Windows XP під загартованою справою. Мені дісталося запитати техніків, що конкретно один з них біг, і він сказав щось на кшталт "Вбудований XP".

Отже, я вважаю, що програмування банкоматів сьогодні схоже на вбудоване програмування, і більше схоже на стандартну розробку Windows.


Не лише «в ці дні». Банкомати, які використовуються для запуску Windows NT 3 або OS / 2. І інтерфейс, який ви бачите, швидше за все, це HTML-сторінки, які відображає Internet Explorer. Мова програмування може бути будь-якою - я працював над системою Java, яка замінила одну, написану на VB. Банкомати насправді - це лише звичайні ПК з незвичайними периферійними пристроями та драйверами.
Майкл Боргвардт

3

Ці типи пристроїв програмуються за допомогою вбудованого програмування . Це дуже низький рівень програмування, який сильно займається логікою та воротами.

Якщо ви зацікавлені в практичному вивченні вбудованого програмування, я рекомендую заглянути в ардуїно .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.