Зверніть увагу: Це питання спеціально згадує два RTOS, але є більш загальним і на нього, ймовірно, може відповісти хто-небудь, хто раніше написав код C для вбудованих RTOS, і своє програмне забезпечення запускалося безпосередньо на MCU.
Мені цікаво дізнатися більше про вбудовані RTOS та написання програм для них. Зараз я дивлюся на Embox та RIOT, оскільки вони з відкритим кодом, сучасні, активні і, здається, мають чудову документацію. Моя мета має дві фази: Фаза 1 - з'ясувати, як компілювати та прошивати ці ОС у MCU (можливо, AVR або ARM). Фаза 2 полягає в тому, щоб написати просту програму C (в основному безголовий демон), яка б розвивалася з часом як "додаток для хобі". Потім я б прошив / розгорнув цю програму в тому ж MCU, тим самим успішно розгорнувши програму, що складається з Embox / RIOT та мого додатка, розміщеного поверх нього.
Перш ніж спуститися на будь-які дороги, які в кінцевому підсумку призводять до тупиків, я наткнувся на цю статтю , яка досить добре пояснює, чому додатки в режимі реального часу, написані на C / асемблері та прошиті до MCU, насправді не потребують RTOS під ними. .
Тож зараз я справді розгублений і ставлю під сумнів деякі мої фундаментальні розуміння теорії обчислень. Я думаю, я намагаюся прийняти рішення про те, чи потрібно взагалі використовувати Embox / RIOT:
- Залишайте курс і перейдіть з "стеком додатків" на MCU обох ОС + додаток; або
- Прислухайтеся до попередження статті та просто перейдіть з MCU, який працює в моєму додатку "голий метал"
Очевидно, що колишнє - це більше роботи, і тому для того, щоб пройти цей маршрут, краще було б бути вагомою причиною. Тож я запитую: які реальні переваги ці (та подібні) вбудовані RTOS пропонують розробникам додатків MCU / C? Від яких конкретних особливостей може отримати користь моя програма C (можливо, не винаходивши колесо?) За допомогою RTOS? Що втрачається, викидаючи RTOS та голий метал?
Я прошу конкретних прикладів тут, а не медійного шуму, який ви отримуєте, коли переходите до Вікіпедії для RTOSes ;-)