Каковы преимущества неперекачивающей ОС по сравнению с микроконтроллером с обнаженным металлом, по сравнению с самодельным кодом с фоновой петлей и архитектурой прерываний по таймеру? Какие из этих преимуществ являются достаточно привлекательными для того, чтобы проект принял ОС без упреждения, вместо того, чтобы использовать самодельный код с архитектурой фонового цикла?
,
Пояснение к вопросу:
Я действительно ценю все те, кто ответил на мой вопрос. Я чувствую, что ответ был почти там. Я добавляю это объяснение к моему вопросу здесь, которое показывает мое собственное рассмотрение и может помочь сузить вопрос или сделать его более точным.
Я пытаюсь понять, как выбрать наиболее подходящую ОСРВ для проекта в целом.
Для достижения этой цели поможет лучшее понимание основных концепций и наиболее привлекательных преимуществ различных типов ОСРВ и соответствующей цены, поскольку не существует наилучшей ОСРВ для всех приложений.
Я читал книги об ОС несколько лет назад, но у меня их больше нет. Я искал в Интернете, прежде чем опубликовать свой вопрос здесь, и обнаружил, что эта информация была наиболее полезной: http://www.ustudy.in/node/5456 .
Есть много другой полезной информации, такой как введения на веб-сайте различных ОСРВ, статьи, сравнивающие упреждающее планирование и не упреждающее планирование, и т. Д.
Но я не нашел ни одной темы, в которой упоминалось, когда выбирать ОС с непрогнозирующей ОСРВ, а когда лучше, просто написать собственный код, используя прерывание по таймеру и фоновый цикл.
У меня есть свои собственные ответы, но я их недостаточно удовлетворяю.
Я действительно хотел бы знать ответ или мнение от более опытных людей, особенно в отраслевой практике.
Насколько я понимаю, до сих пор:
независимо от того, используете ли вы или не используете ОС, всегда необходимы определенные виды кодов планирования, даже в форме кода, подобного следующему:
in the timer interrupt which occurs every 10ms
if(it's 10ms)
{
call function A / execute task A;
}
if(it's 50ms)
{
call function B / execute task B;
}
Преимущество 1:
ОС без приоритета определяет способ / стиль программирования для кода планирования, так что инженеры могут использовать одно и то же представление, даже если они не были в одном проекте ранее. Затем, с одинаковым взглядом на концептуальную задачу, инженеры могут работать над различными задачами и тестировать их, максимально профилируя их.
Но сколько мы действительно можем извлечь из этого? Если инженеры работают в одном и том же проекте, они могут найти способ совместно использовать одно и то же представление без использования ОС без упреждения.
Если один инженер из другого проекта или компании, он получит выгоду, если он знал ОС раньше. Но если он этого не сделал, то, опять же, для него не имеет особого значения изучение новой ОС или нового фрагмента кода.
Преимущество 2:
если код ОС был хорошо протестирован, значит, он экономит время на отладку. Это действительно хорошая выгода.
Но если приложение имеет только около 5 задач, я думаю, что не очень сложно написать собственный код, используя прерывания по таймеру и фоновый цикл.
Непрерывающая ОС здесь упоминается как коммерческая / бесплатная / устаревшая ОС с непревзойденным планировщиком.
Когда я писал этот вопрос, я в основном думал об определенных ОС, таких как:
(1) KISS Kernel (небольшая непревзойденная ОСРВ - заявлена на ее веб-сайте)
http://www.frontiernet.net/~rhode/kisskern.html
(2) uSmartX (облегченная ОСРВ - заявлено на его веб-сайте)
(3) FreeRTOS (Это ОСВ с вытеснением, но, как я понимаю, она также может быть настроена как
ОС без ОС ) (4) ОС / ОС (аналогично FreeRTOS)
(5 ) устаревший код ОС / планировщика в некоторых компаниях (обычно создаваемый и поддерживаемый компанией внутри компании)
(невозможно добавить дополнительные ссылки из-за ограничений новой учетной записи StackOverflow)
Как я понимаю, ОС без упреждения представляет собой набор этих кодов:
(1) планировщик, использующий стратегию без упреждения.
(2) средства для межзадачного общения, мьютекса, синхронизации и контроля времени.
(3) управление памятью.
(4) другие полезные средства / библиотеки, такие как Файловая система, сетевой стек, GUI и т. Д. (FreeRTOS и uC / OS предоставляют их, но я не уверен, что они все еще работают, когда планировщик настроен как не имеющий преимуществ)
Некоторые из их не всегда есть. Но планировщик обязателен.