|
mRTOS-кооперативная операционная система, порт CodeVision, порт WinAvr, mRTOS-кооперативная операционная система для AVR |
|
|
|
Oct 30 2009, 11:53
|

Участник

Группа: Участник
Сообщений: 49
Регистрация: 13-05-08
Пользователь №: 37 469

|
Предлагаю на рассмотрение уважаемым ембеддерам кооперативную операционную систему реального времени для малых и средних контроллеров AVR, правда никто не запрещает использовать ее для всех типов контроллеров. Существует два порта - под CodeVision и WinAVR. Сразу же хочу оговориться, что понятие реального времени в случае кооперативных систем достаточно условно - это описано в статье на сайте и документации к ОС. Используя эту систему начинаю разработку с проектирования ПО - используя упрощенную нотацию UML в бесплатном редакторе DIA. Разрабатывать проекты получается быстрее, существенно легче стало обеспечивать модификацию, сопровождение и отладку программного обеспечения. Понятнее и прозрачнее стали тексты программ. Адрес сайта - http://movilavn.narod.ru/Зайти в раздел "Статьи", выбрать статью - "mRTOS - кооперативная операционная система для микроконтроллеров". Для загрузки доступны сама ОС, документация и примеры использования.
Сообщение отредактировал LVII - Oct 30 2009, 11:58
|
|
|
|
|
 |
Ответов
|
Nov 2 2009, 11:34
|

Участник

Группа: Участник
Сообщений: 49
Регистрация: 13-05-08
Пользователь №: 37 469

|
ОС была намеренно минимизирована. Чтобы уместилась даже на малые AVR типа 2313. Поэтому средства межпроцессорного взаимодействия такие, как сообщения, очереди, mailbox отсутствуют. В документации есть упоминание о том, как используя event организовать все это самостоятельно.
Асинхронно, синхронно. Асинхронно формируются(могут формироваться) event(прерывание). Синхронно передается управление. Это кооперативная операционная система - это + код вносят некоторые возможности RTOS.
Приоритеты. Кооперативная операционная система это сама ОС + прикладной код. Только тогда она может в какой мере заменить preemtive систему. Мой подход к проектированию таков - предположим есть 4 задачи. Есть период времени T приблизительно определенный суммой приоритетов процессов. Одна (первая) главная, вторая за период T может сгенирить 3 события, третья 2, четвертая 1. Назначаем приоритеты 1-ой 200, 2-ой 150, 3-ей 100, 4-ой 50. За время T каждой равномерно будет передано управление исходя из приоритетов. Приведенная схема проектирования упрощена. Но даже так работает!
Сохранение и восстановление статусного регистра. Сохраняем состояние процесса. Даже синхронно передавая управление, процесс может остаться в разных состояниях. При возврате анализируем статусный регистр. Иначе для сохранения состояния пришлось использовать статическую переменную. Экономия - не знаю? Но работает. Накладные расходы на это ничтожны. А возможность использования остается.
Сообщение отредактировал LVII - Nov 2 2009, 11:37
|
|
|
|
|
Nov 2 2009, 18:01
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(LVII @ Nov 2 2009, 12:34)  ОС была намеренно минимизирована Я бы хотел ось, которая поддерживает все. Опциями конечно, а не все сразу. Например, последовательные порты, работа с файловой системой, с ммс, с флешью, с озу, с индикаторами и т.д. А в урезанных осях против "своего цикла" я смысла не вижу.
|
|
|
|
|
Nov 3 2009, 17:08
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Огурцов @ Nov 2 2009, 20:01)  Я бы хотел ось, которая поддерживает все. Опциями конечно, а не все сразу. Например, последовательные порты, работа с файловой системой, с ммс, с флешью, с озу, с индикаторами и т.д. А в урезанных осях против "своего цикла" я смысла не вижу. Nut/OS (ethernut), если если говорить о кооперативных ОС. Но она "тяжёлая" в том смысле, что в мелкий кристалл всё равно не полезет.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Nov 3 2009, 22:46
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Огурцов @ Nov 3 2009, 23:20)  Так и не надо в мелкий. Надо мало секса с этими камнями и осями. Ну так вещь вроде как проверенная временем. Даже платы продаются в терре и у нас в имраде, но схемы открыты все и ось открыта. Я давно смотрел, по железу там только два варианта, кажется, было (ethernut1 на мега103 с последующим апгрейдом на мегу128 и ethernut2 на атмеловском АРМ at91r4008, если не путаю), сейчас больше. Управление памятью, система драйверов к железу, разные дополнительные платки, включая mp3-шную на VS1001 Всё подробно описано. www.ethernut.de Хотелось как-то посмотреть поплотнее, так как это хороший и большой пример того, что я плохо понимаю (если уж каждой задаче выделен свой стек - чего такого сильно экономит кооперативка по сравнению с вытеснялкой). Но как-то не срослось.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
LVII mRTOS-кооперативная операционная система, порт CodeVision, порт WinAvr Oct 30 2009, 11:53 oll Цитата(LVII @ Oct 30 2009, 16:53) Предлаг... Oct 30 2009, 12:25 LVII Благодарствую за положительную оценку!
Буду ра... Oct 30 2009, 17:04 alcosar Начинаем читать документацию, идущую в файле с mRT... Oct 30 2009, 17:14 _Pasha Цитата(alcosar @ Oct 30 2009, 20:14) Ну и... Oct 30 2009, 18:16  oll Цитата(_Pasha @ Oct 30 2009, 23:16) И к т... Oct 31 2009, 05:08 LVII Цитата(alcosar @ Oct 30 2009, 19:14) Ну и... Oct 31 2009, 11:19  alcosar Цитата(LVII @ Oct 31 2009, 15:19) До реше... Nov 1 2009, 05:22 LVII alcosar - по существу вопроса у Вас, что нибудь ес... Nov 1 2009, 07:00 AHTOXA Цитата(LVII @ Nov 1 2009, 12:00) Вообще в... Nov 1 2009, 07:52 sensor_ua Не буду разбираться кто где плагиатор. Вот попался... Nov 1 2009, 07:41 plus Цитата(sensor_ua @ Nov 1 2009, 10:41) поп... Nov 2 2009, 21:22 RA3WUM Цитата(sensor_ua @ Nov 1 2009, 10:41) Не ... Nov 3 2009, 10:58  mempfis_ Цитата(RA3WUM @ Nov 3 2009, 14:58) Спасиб... Nov 3 2009, 11:31 LVII Один человек только протестировал!
Остальные ... Nov 1 2009, 11:56 AHTOXA Цитата(LVII @ Nov 1 2009, 16:56) Один чел... Nov 1 2009, 12:05 Petka Цитата(LVII @ Nov 1 2009, 14:56) Один чел... Nov 1 2009, 12:16 LVII Проверил сам - да действительно почти совпадают не... Nov 1 2009, 13:03 klen че за базар?
граждане? код смотрите который вам пр... Nov 1 2009, 13:18  Petka Цитата(klen @ Nov 1 2009, 16:18) че за ба... Nov 1 2009, 13:34   ReAl Цитата(Petka @ Nov 1 2009, 15:34) Спокуха... Nov 1 2009, 14:43  haker_fox Цитата(klen @ Nov 1 2009, 21:18) я книгу ... Nov 2 2009, 00:24 oll Может "ОЗУ и код даром выброшены", но мн... Nov 1 2009, 17:23 ReAl Цитата(oll @ Nov 1 2009, 19:23) Может ... Nov 1 2009, 19:17  ReAl Цитата(ReAl @ Nov 1 2009, 21:17) Я просто... Nov 2 2009, 00:39 LVII Цитата(oll @ Nov 1 2009, 19:23) Да еще во... Nov 1 2009, 19:18 sensor_ua Цитатаи все это на одном таймере
для чего этот тай... Nov 1 2009, 17:38 LVII ЦитатаХитрая хитрость с "приоритетами"..... Nov 1 2009, 19:11 oll для чего этот таймер использовали?
Это я про систе... Nov 2 2009, 04:56 _Pasha Цитата(oll @ Nov 2 2009, 08:56) С ОС прио... Nov 2 2009, 06:28  oll Цитата(_Pasha @ Nov 2 2009, 11:28) Это же... Nov 2 2009, 07:20   MrYuran Цитата(oll @ Nov 2 2009, 10:20) для 1-WIR... Nov 2 2009, 07:25   _Pasha Цитата(oll @ Nov 2 2009, 10:20) как Вы ре... Nov 2 2009, 07:28 MrYuran По теме:
Подробно не смотрел, времени особо не был... Nov 2 2009, 07:32 _Pasha Цитата(LVII @ Nov 2 2009, 14:34) Даже син... Nov 2 2009, 11:50 ReAl Цитата(LVII @ Nov 2 2009, 13:34) Асинхрон... Nov 2 2009, 12:24  LVII Цитата(ReAl @ Nov 2 2009, 14:24) Таким об... Nov 2 2009, 22:48  LVII Цитата(Огурцов @ Nov 2 2009, 20:01) Я бы ... Nov 3 2009, 11:38   Огурцов Цитата(LVII @ Nov 3 2009, 12:38) На прост... Nov 3 2009, 14:00    _Pasha Цитата(Огурцов @ Nov 3 2009, 17:00) место... Nov 3 2009, 15:34   rembas [quote name='LVII' date='Nov 3 2009, 1... Nov 7 2013, 13:14     _Pasha Цитата(ReAl @ Nov 4 2009, 01:46) если уж ... Nov 3 2009, 23:19 oleg_lwd Посмотрел mRTOS, решил до кучи написать свою пере... Dec 18 2009, 09:34 oleg_lwd В процессе отладки реального проекта, пришлось не... Dec 21 2009, 08:22 oleg_lwd Сделал вариант для мелких AVR. Прерывания теперь ... Jan 11 2010, 09:22 oll Цитата(oleg_lwd @ Jan 11 2010, 14:22) Сде... Jan 12 2010, 13:10 oleg_lwd Даже не и знаю что тут объяснять
void OS_yeld(voi... Jan 13 2010, 12:24 gabd Цитата(oleg_lwd @ Jan 13 2010, 17:24) Даж... Mar 4 2016, 10:22 rembas HELP Уважаемый LVII проверил Ваш вариант mRTOS на ... Nov 12 2013, 07:35 arhiv6 В образовательных целях решил попробовать разобрат... Mar 9 2016, 19:09 gabd Если об ОС от oleg_lwd, имхо (я сам учусь )
Цитата... Mar 10 2016, 11:28 arhiv6 gabd, нет, вопросы были о mRTOS. Mar 10 2016, 12:03 gabd Наконец-то, скачал этот mRTOS (на работе narod бло... Mar 15 2016, 07:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|