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


Почему выбраны эти архитектуры? Так получилось, что именно 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
Там на этот ссылка стоит: easyelectronics.ru/avr-uchebnyj-kurs-arxitektura-programm-chast-2.html
Мой диспетчер уже давно портирован на STM32 и LPC13xx/17xx, ну и на STM8 портируется тоже махом, просто руки у меня еще до восьмерок не дошли.
AVRX она разве вытесняющая??? О_о чистой воды кооперативка же. ПО крайней мере когда я ее бегло оглядывал. Да и размер и требования намекают на это. На тини, где она вполне бодро влезает, вытеснялку не поднять.
Я про 2.6 версию, она на С и типа вытесняющая:
А 2.3 на асме и для tiny.
Fully pre-emptive, priority driven schedulerwww.barello.net/avrx/overview.htm
А 2.3 на асме и для tiny.
А зачем нужны, собственно говоря, эти операционки? Все приглядываюсь, куда бы ее присобачить. Ну посудите сами. Есть проект ну почти реального времени. Одновременнно обрабатываются клавиатура, графический дисплей, передача и прием данных по уарту с периодичностью 10 мс.А между приемом и передачей обработка принятых данных. Как начитаюсь про uCOS, так и думаю, куда бы ее всунуть.
Сильно облегчают масштабирование проекта и скорость написания кода. На вытеснялке так можно вообще даунский код писать. Например протокол программно делать не на конечных автоматах, А тупо ногу поднял, задержка, опустил, задержка, и все это зациклено в пределах задачи. А ужо диспетчер РТОС красиво это развернет и превратит в систему в которой нет тупых задержек. Разумеется не бесплатно. Схавав неслабый кусок производительности, памяти и флеша.
Схавав неслабый кусок производительности, памяти и флеша.Вот лежит у меня на столе STM3210C_EVAL с запущенной на нём демкой на укосе.
Есть там график загрузки процессора. Меленькая такая мохнашка в районе нуля. Единицы процентов. При паре десятков запущенных процессов.
Что касается памяти и флеша, тоже вопрос спорный. Вместо того, чтобы для каждого конкретного случая городить велосипед собственной конструкции, используем стандартные сервисы. Возможно, что даже и выигрыш можно получить. Ну а вообще главный ресурс — это время разработчика. И оно очень даже экономится.
Вы думаете кому то важна та самая мохнашка производительности по отношении к основному времени простоя? Производительность меряют во времени отклкика на критические задачи. Какое время отклика вы можете гарантировать?
Главный ресурс это не время разработчика, а бабло заказчика. Что будет выгодней то и будет юзаться.
Главный ресурс это не время разработчика, а бабло заказчика. Что будет выгодней то и будет юзаться.
Если грамотно использовать автоматный подход, то проблема многозадачности решается сама собой, нет расходов по сохранению регистров, экономится память. Единственная проблема, что подход отличается от классического. Циклы for, заменяются приращениями с условиями, функции выполняются не полностью, а по одному шагу с запоминанием состояния. Это сложнее, но для небольших проектов вполне приемлимо, особенно при дефиците ресурсов.
TNKernel забыли wiki.pic24.ru/doku.php/tnkernel/ref/intro
TN NET TCP/IP electronix.ru/forum/index.php?showtopic=66194
TN NET TCP/IP electronix.ru/forum/index.php?showtopic=66194
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
Я имел в виду что есть порт для Cortex-M3
А разве это ОС, а не сетевой стек?Да стек, думал неплохо колонку добавить для дополнительных сервисов.
www.tnkernel.com/tn_net_1.html
Комментарии (28)
RSS свернуть / развернуть