Выбор RTOS в домашних условиях для AVR, STM8 и немного STM32 :)

Нити, потоки...Задумался о выборе RTOS. Первая цель — обучение, следующая — использование в своих проектах. В процессе поиска и чтения понял, что запомнить всё не могу, пришлось делать табличку сравнения. Когда таблица была готова, решил выложить её сюда. Во-первых, потому, что кому-то ещё она может быть полезна, во-вторых, я мог что-то пропустить, в комментариях подскажут :)

Почему выбраны эти архитектуры? Так получилось, что именно AVR наиболее популярен на этом сайте. STM8 догоняет благодаря цене и доступности. STM32 — одни из самых дешевых и доступных ARM Cortex-M3 и просто моден. Да, выбор архитектур совпадает с популярными тегами в панели справа… :)

Почему эти компиляторы? Перечисленные компиляторы официально бесплатны.

Почему про STM32 так мало? Пока мой интерес к ним чисто теоретический, но решил сразу посмотреть, что для них есть.

Кликабельная таблица в виде картинки (заверстать её сюда нельзя, к сожалению):

Таблица

Раньше я уже успел поиграться с Protothreads, поэтому главным образом смотрел на полноценные кооперативные и вытесняющие RTOS.

Больше всего по описанию понравилась FreeRTOS, пожалуй, она самая популярная, поэтому проблем с документацией нет. Из минусов (для меня) — нет порта для STM8.

Интересно выглядит Atomthreads (её автор много пишет на форумах AVR Freaks), к сожалению, документация только doxygen'овская.

Приятно удивила качеством русской документации OSA. Первоначально она была написана для PIC'ов, но сейчас портирована на AVR и STM8.

Если пропустил какую-то систему, которую нужно посмотреть — пишите, добавлю.

Таблица в форматах .xls и .ods прикреплена к посту.
  • +3
  • 10 июня 2011, 23:37
  • artvolk
  • 1
Файлы в топике: mcu-rtos.zip

Комментарии (28)

RSS свернуть / развернуть
А разве у Хальта ось не на асме?
0
Там на этот ссылка стоит: easyelectronics.ru/avr-uchebnyj-kurs-arxitektura-programm-chast-2.html
0
Есть и на си и на асме.
0
Да, надо добавить в статью отмазку, что ОСи на асме не рассматривал :)
0
… хорошоб знать какая документация есть по всем этим ОСям: сайты, книги,…
0
Количество документации коррелирует с датой последнего релиза и количеством архитектур :)
0
… просто язык да семейство мк, както маловато и начинающему ни о чем не говорит — разве что чуть-чуть
0
К «продолжающим» себя никак не отношу, но мне кажется, что для того, чтобы начинать разбираться с RTOS об архитектуре и доступных компиляторах нужно иметь представление…
0
ИМХО, вытесняющие оси для МК — перебор. Они (МК) по определению однозадачны. А для себя под АВР склепал подобие кооперативки — диспетчер + таймерная служба + служба ошибок, завязаная на юсарт + семафорная служба (чтоб отделить железо от пользователя).
0
  • avatar
  • psv
  • 11 июня 2011, 00:22
Мой диспетчер уже давно портирован на STM32 и LPC13xx/17xx, ну и на STM8 портируется тоже махом, просто руки у меня еще до восьмерок не дошли.
0
Там всё изначально было под это заточено, поэтому не удивлён. :) Не нашел в открытом доступе кода, поэтому поставил знаки вопроса. Есть где-то?
0
Конкретно как релиз нет. А вот в виде скелета для примера встречалась емнип в статьях про STM32 в архивах с примерами.
0
уважаемый DIHALT поконкретней не подскажете где найти ваш диспетчер в варианте для STM32 или может быть выложите отдельно?
0
AVRX она разве вытесняющая??? О_о чистой воды кооперативка же. ПО крайней мере когда я ее бегло оглядывал. Да и размер и требования намекают на это. На тини, где она вполне бодро влезает, вытеснялку не поднять.
0
Я про 2.6 версию, она на С и типа вытесняющая:

Fully pre-emptive, priority driven scheduler
www.barello.net/avrx/overview.htm

А 2.3 на асме и для tiny.
0
А зачем нужны, собственно говоря, эти операционки? Все приглядываюсь, куда бы ее присобачить. Ну посудите сами. Есть проект ну почти реального времени. Одновременнно обрабатываются клавиатура, графический дисплей, передача и прием данных по уарту с периодичностью 10 мс.А между приемом и передачей обработка принятых данных. Как начитаюсь про uCOS, так и думаю, куда бы ее всунуть.
0
uCOS я так понял платная?
0
Сильно облегчают масштабирование проекта и скорость написания кода. На вытеснялке так можно вообще даунский код писать. Например протокол программно делать не на конечных автоматах, А тупо ногу поднял, задержка, опустил, задержка, и все это зациклено в пределах задачи. А ужо диспетчер РТОС красиво это развернет и превратит в систему в которой нет тупых задержек. Разумеется не бесплатно. Схавав неслабый кусок производительности, памяти и флеша.
0
Схавав неслабый кусок производительности, памяти и флеша.
Вот лежит у меня на столе STM3210C_EVAL с запущенной на нём демкой на укосе.
Есть там график загрузки процессора. Меленькая такая мохнашка в районе нуля. Единицы процентов. При паре десятков запущенных процессов.
Что касается памяти и флеша, тоже вопрос спорный. Вместо того, чтобы для каждого конкретного случая городить велосипед собственной конструкции, используем стандартные сервисы. Возможно, что даже и выигрыш можно получить. Ну а вообще главный ресурс — это время разработчика. И оно очень даже экономится.
0
Вы думаете кому то важна та самая мохнашка производительности по отношении к основному времени простоя? Производительность меряют во времени отклкика на критические задачи. Какое время отклика вы можете гарантировать?

Главный ресурс это не время разработчика, а бабло заказчика. Что будет выгодней то и будет юзаться.
0
У меня аналогичная ситуация. Но это пока всем проектам подходит такая организация.
0
  • avatar
  • DVF
  • 29 сентября 2011, 00:04
Если грамотно использовать автоматный подход, то проблема многозадачности решается сама собой, нет расходов по сохранению регистров, экономится память. Единственная проблема, что подход отличается от классического. Циклы for, заменяются приращениями с условиями, функции выполняются не полностью, а по одному шагу с запоминанием состояния. Это сложнее, но для небольших проектов вполне приемлимо, особенно при дефиците ресурсов.
0
Если писать программу как автомат, то тогда имеет смысл сразу описывать ее в виде грамматики и использовать соответствующий инструментарий (lexx/yacc/antlr/и тому подобное). Иначе развитие и сопровождение рискует превратится в один бесконечный геморрой.
0
Protothread тоже один из способов обёртки, думаю, ещё какие-то существуют…
0
0
  • avatar
  • DL36
  • 17 декабря 2011, 18:14
TNKernel забыли wiki.pic24.ru/doku.php/tnkernel/ref/intro

Судя по этому: wiki.pic24.ru/doku.php/tnkernel/ports

Оригинальная версия TNKernel разработана для микроконтроллеров с ядром ARM7 На сайте разработчика можно скачать порты для наиболее популярных контроллеров (NXP, Atmel, STM, Samsung), поддерживающие различные компиляторы (CW GCC, IAR, GCC, RealView, GreenHills).

Позже TNKernel была портирована для поддержки 16-битной архитектуры Microchip — микроконтроллеров PIC24F/H и цифровых сигнальных контроллеров dsPIC30/33. Пока существует только порт для наиболее популярного компилятора Microchip C30.

Она не подходит под те контроллеры, на которые я искал ОС… :(

TN NET TCP/IP electronix.ru/forum/index.php?showtopic=66194
А разве это ОС, а не сетевой стек?
www.tnkernel.com/tn_net_1.html
0
Я имел в виду что есть порт для Cortex-M3

А разве это ОС, а не сетевой стек?
www.tnkernel.com/tn_net_1.html
Да стек, думал неплохо колонку добавить для дополнительных сервисов.
0
Я просто изначально несколько ограничил:

<b>Почему про STM32 так мало?</b> Пока мой интерес к ним чисто теоретический, но решил сразу посмотреть, что для них есть.


Другими словами искал то, что работает прежде всего на AVR и STM8, если работает на STM32 — плюс на будущее :)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.