"Вбудований" - це трохи завантажений термін.
З деякого відношення будь-яку систему, призначену для запуску однієї програми, можна назвати вбудованою системою, якщо є деяке обладнання, яким слід керувати. Можна, можливо, зателефонувати на 400 МГц PPC604 з 2 Гб оперативної пам’яті, що працює на Java-програмі поверх linux, вбудованої системи, якщо трапляється керувати процесом через локальні модулі вводу / виводу. З іншого боку, ардуїно, який просто працює з якоюсь мінімальною мережевою програмою, не був би вбудованою системою. Але, ймовірно, «вбудований» змушує більшість людей думати про флеш-контролери з лише кількома сотнями байтів оперативної пам’яті, жодної операційної системи, про яку говорити, і безліччю мікросхеми.
Незважаючи на це, ймовірно, два найбільші перешкоди, які не вбудовуються програмістами, зазвичай стикаються з вбудованими системами навчання - це регістри вводу / виводу та переривання.
Перебої можуть насправді бути легшими з двох понять для невбудованих програмістів, оскільки основні проблеми з цим, паралельністю та програмою, керованими подіями, часто зустрічаються в основних програмах. Те, що викликає переривання болю, - це реалізація надзвичайної чутливості системи до якості її роботи з перервами, а також тонкощі роботи з обладнанням для очищення стану переривання та налаштування на наступний. За допомогою GUI тупик вбиває лише додаток. З обробником переривань, тупик призводить до блокування всієї вашої системи.
Начебто пристрої вводу / виводу є тією сферою, яка викликає найбільші труднощі. Для непосвячених, це може бути дуже дивно виявити , що читання цього регістра тут впливає на цей регістр там . Написання символів 1 для очищення шматочків. Біти статусу, які очищаються, коли ви читаєте реєстр даних тощо. Існує так багато можливостей з обладнанням вводу-виводу, що немає загального правила поводження з ним, окрім того, як дізнатися, як знайти та інтерпретувати дані даних пристроїв. Написання драйвера пристрою для послідовного порту навчить вас багато чого про програмування вводу / виводу низького рівня.
Дійсно немає заміни для вивчення цих речей, ніж засукати рукави та запрограмувати кілька прямих мов C та / або мови монтажу на голому металі. Навіть вищезгадана вбудована система на базі Java, врешті-решт, потребує драйвера пристрою для вводу-виводу, а це означає, що в кінцевому підсумку мати справу з деяким С. Досвід - найкращий викладач. Виберіть мікроконтролер, будь то MSP430, TMS320, AVR, ARM, PIC, 68HC11, будь-що, знайдіть набір eval та побудуйте деякі системи.