Если мы уже можем запускать программы на Cortex-m, как микроконтроллеры, зачем нам даже устанавливать RTOS (или другие операционные системы)? Какие преимущества он может обеспечить, если микроконтроллер предназначен для многоцелевого использования?Зачем нам нужна RTOS на ARM Cortex-M
ответ
Операционная система обеспечивает уровень абстракции между кодом, написанным прикладным программистом, и фактическим оборудованием, на котором работает программа. Поэтому вам не нужно беспокоиться, как программист, о деталях аппаратного обеспечения, поскольку они обрабатываются драйверами. И, таким образом, вы можете скомпилировать одну и ту же программу для многих различных аппаратных платформ, если они запускают ту же (или совместимую) операционную систему.
Нет, вам не нужна RTOS, только если вам нужны/нужны особенности RTOS. Вы можете запрограммировать микроконтроллер так, как вы/у нас всегда есть, если хотите.
Типичные вещи ОСРВ может принести,
- управления памятью (владеет памятью)
- обработки прерываний поддержка
- Планирование (упреждающий или кооперативная)
- Обычно несколько водителей в BSP для вашего оборудования/SOC
- Инструменты отладки
- Какая-то оболочка
- файловые системы
- IPC (межпроцессного communitation)
- Инструмент люкс
- Скопление среда
- Защита памяти
- Networking
Ваше приложение может или не может понадобиться эти функции в зависимости от вашей конечной цели. Некоторые из них могут нанести ущерб работе вашей организации (например, набор инструментов и среда сборки). По мере созревания продукта вам могут потребоваться функции, которые вы не учитывали.
Однако совершенно индивидуальное решение, вероятно, будет иметь меньшую печать. Условия гонки, связанные с обработкой прерываний, могут оказаться довольно трудными. Вероятно, большинство RTOS даст лучшую реализацию, чем что-то обычай, который развивается с течением времени. Если вы очень целеустремлены, конечный автомат с опросом устройств может быть более оптимальным (жесткое реальное время), но снова трудно получить право.
Если RTOS является лицензированным BSD (или другим разрешительным), возможно, повторное использование кода драйвера для вашей собственной инфраструктуры. В какой-то момент ваш код может стать «RTOS». Есть many to choose from.
POSIX соответствие является общим стандартом. Если вы ограничиваете свой код POSIX, вы переноситесь на многие разные ОСРВ/ОС. Однако чаще всего API, который более богат, чем POSIX; это один из способов, которыми они различают друг друга. Возможно, вы сможете использовать более 3 rd партийных библиотек, если RTOS POSIX совместим.
- 1. Зачем нам нужна функция crossCheckMatching?
- 2. Зачем нам здесь нужна конкретизация?
- 3. Зачем нам нужна обработка исключений?
- 4. Зачем нам нужна ветвь dev?
- 5. Зачем нам нужна призма Delphi
- 6. Зачем нам нужна виртуальная память?
- 7. Зачем нам нужна автоматизация API?
- 8. Зачем нам нужна идиома базы-член?
- 9. Зачем нам нужна flatMap (в общем)?
- 10. Зачем нам нужна синхронная операция в ios
- 11. Зачем нам нужна «карта» в MapReduce?
- 12. Зачем нам нужна сериализация веб-сервис
- 13. RTOS в RTOS
- 14. пример проекта для использования потока Keil RTOS на ARM STM32F4xx
- 15. Зачем нам нужна функция сравнения по времени * по одному байту?
- 16. Зачем нам нужна виртуализация адресов в операционной системе?
- 17. Зачем нам нужна dnx или кросс-платформа для веб-сайта
- 18. Зачем нам нужна отладочная информация при профилировании с помощью Vtune?
- 19. Зачем нам нужно блокирование намерений?
- 20. Зачем нам перспективное разделение?
- 21. Зачем нам нужно targetNamespace?
- 22. Зачем нам делегаты C#
- 23. Зачем нам нужна высота окна просмотра для вычисления Процент прокрутки?
- 24. Зачем нам нужна библиотека времени выполнения при написании компилятора?
- 25. Зачем нам нужна обработка переходных ошибок для хранения?
- 26. Зачем нам насмешливые рамки?
- 27. Зачем нам нужен enabled_shared_from_this
- 28. Зачем нам шаблон Observer?
- 29. Зачем нам нужен strdup()?
- 30. Зачем нам нужны волокна
Спасибо, мне все еще нужна операционная система, если мой микроконтроллер должен выполнять один и тот же код каждый раз, когда он получает вход от датчика.? – user5203299
Вам нужна многозадачность? используя множество разных устройств? передача данных по сети? Сохранение измерений в виде файлов? –
В нескольких случаях да, но у меня также могут быть проекты, которые не включают многозадачность. – user5203299