Визначте, що ви маєте на увазі під матеріалами вищого рівня. Написання драйверів та будь-якого іншого типу програмного забезпечення, яке спілкується з обладнанням, - це, мабуть, те, про що думають більшість людей, коли згадуєте про вбудоване програмне забезпечення. Хоча це частина її, це лише невелика частина. Після того, як у вас є все це налаштування, все-таки є вся програма, яка пише, що, ймовірно, ніколи насправді не спілкується безпосередньо з обладнанням, і більш ніж це можливо в більшості випадків, це більшість зусиль з розробки. Це на певному рівні може бути порівняно з програмуванням "вищого" рівня. Однак у вбудованому світі ви, мабуть, працюєте з деякими обмеженнями, особливо з точки зору обчислювальної потужності та пам'яті. Ось перелік речей, про які я думаю щодня, які, мабуть, мають меншу важливість для розвитку вищого рівня в більшості випадків.
- Паралельність потоку (як захист, так і терміни)
- Розподіл пам’яті та їх розміщення та використання
- Управління купою (уникаючи фрагментації)
- Дотримання термінів у режимі реального часу
- Пріоритетність нитки
- I / 0 продуктивність
- Перекази DMA
- Розміри стека
- Продуктивність бібліотеки
- Мовні функції (винятки розбивають ваш код)
Крім того, вбудовані платформи, як правило, є вузькоспеціалізованими для досягнення однієї конкретної цілі на відміну від ПК, розробленого як платформа для загальних обчислень неоднорідності. Це означає, що у вас, мабуть, є багато спеціального коду, який може бути або не бути портативним.