"недоось" - громко сказано :)) планировщик (вытесняющая
многозадачность) со средствами запуска п/п, контроля их выполнения
(приоритетами, возможностью "прибить" задачу, к примеру),
интерпретатор команд (внутренних системных, или внешних,
поступающих, к примеру по UART, комплект системных таймеров, RTC,
набор драйверов внешней периферии, которую использую, набор
драйверов встроенной периферии (I2C, UART, ЦАП/АЦП). Был некий
вариант файловой системы для хранения данных и запуска программных модулей (потом отказался, "сложно и дорого" (расход памяти и машинного времени, да и в несильно больших проектах планировщик с "прибитым гвоздями" пулом до 16 задач - с головой хватает). Ассемблер, ессно :))
Можно, в принципе допиливать бесконечно, прикручивая всякие стандартные протоколы и драйверы стандартных устройств, к примеру каких-нить дисплеев, сделать поддержку нормальных (а не доморпощенных) файловых систем. Но как-то незачем было (да и главное - это требует памяти (ОЗУ), которой всегда недостаток, т.к. максимум, который я использовал - XMEGA с 8К ОЗУ ((да и то, почти вся использовалась под UART-буферизацию). Типичное применение на какой-нить меге до 1К ОЗУ.
Того потенциала, что есть - хватает с головой. Самый большой плюс, что это "мой велосипед", позволяющий модульно строить программы, который я могу накрутить /настроить как мне нужно именно под решение конкретной задачи :)