|
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 1 2009, 13:03
|

Участник

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

|
Проверил сам - да действительно почти совпадают несколько вступительных фраз! Дико прошу извинений! Посыпаю голову пеплом! И т.д. и т.п. Обязательно сделаю ссылку на scmRTOS. Отличная, кстати говоря ОС. Но не захотела работать на CodeVision. Также и на остальную литературу с которой работал: 1. Иртегов Д.В. Введение в операционные системы. – СПб.: БХВ- Петербург, 2002. – 624 с.: ил. 2. Столлингс В. Операционные системы, 4-е издание.: Перев. с англ. – М: Издательский дом «Вильямс», 2002. – 848 с.: ил. 3. Гордеев А.В., Молчанов А. Ю. Системное программное обеспечение. – СПб.: Питер, 2002. – 736 с.: ил. 4. Олифер Н.А., Олифер В.Г. Сетевые операционные системы. – СПб.: Питер, 2001. – 544 с.: ил. 5. Таненбаум Э. Современные операционные системы. 2-е изд. – СПб.: Питер, 2002. – 1040 с.: ил. 6. Алгоритмы планирования процессорного времени. И.С. Гусев
Если кто-либо действительно прочел документацию до конца, то там понятна разница в подходе и реализации. А если бы уже проверили на простеньком прилагающемся демо, ну наверное так совсем все ясно стало!
Сообщение отредактировал LVII - Nov 1 2009, 13:12
|
|
|
|
|
Nov 1 2009, 14:43
|

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

|
Цитата(Petka @ Nov 1 2009, 15:34)  Спокуха. Вы же ссылки не забудете сделать? Есть ссылка - это уже не плагиат а цитата =) Ссылки нужны ещё для того, если возникнут вопросы, можно было заглянуть в первоисточник и узнать ошибка возникла в процессе перевода или так и задумано было... +1 Особенно учитывая то, что в "процитированных" фрагментах несколько раз повторяется слово " асинхронный", тогда как обсуждаемая ОС - кооперативка и там все переключения происходят синхронно. Ну а по сути предложенных исходников Мелочи, но сильно затрудняющие чтение - "исходные исходники" отформатированы так, как будто кто-то вставил цитату в форум без тега code. Понятно, что это исправляет один вызов indent или пара тыков в редакторе, но... "осадок остался" А портированные на avr-gcc (с которых я начал) изобилуют маслом масляным комментариями вида mRTOS_Tasks[mRTOS_InitTasksCounter].CurrentPriority = Priority; // установить текущий приоритет задачи что тоже только затрудняет чтение.Никак не могу понять смысла сохранения статусного регистра при синхронном переключении. Всё равно никакой компилятор не ждёт, что после возврата из любой функции (а не только кооперативного переключения) статусный регистр будет тот же, что и перед вызовом. Ну и - это уже касается порта avr-gcc - обёртки ATOMIC_BLOCK(ATOMIC_RESTORESTATE) всё равно напрочь затирают сохранённое в блоке задачи и восстановленное значение тем, которое "получили в наследство" от той задачи, с которой идёт переключение. Тот, кто портировал - мог бы это и заметить и вместе с автором оси задуматься над смыслом проделываемых операций. Хитрая хитрость с "приоритетами"... Что это даёт? Пусть есть четыре задачи(с приоритетами) A(10) B(3) C(3) В(3) Тогда, при условии, что все задачи что-то молотят, не переходят в ожидание, вызовы будут идти так AAAAAAABCDABCDABCDИтого на начальном участке выполняется только задача А, а на конечном идёт так, как будто у неё приоритет такой же, как у всех. Если "приоритет", означает "суммарное время, отданное задаче", то зачем так сложно? А если Цитата Чем больше это число, тем чаще будет переходить управление к этой задаче втрое более высокий приоритет означает более выскоую частоту вызова, то задача решена в объёме средней температуры по больнице. К примеру, сначала AAAAAAA просто тупо прокуртится в if( !flag ) DISPATCH; а потом флаг взведётся, но сначала выполнятся все низкоприоритетные, и только потом вернётся управление к А, она не будет вызываться чаще на этом участке. Тут бы ABACADABACADABACADAно это требует совсем другого подхода. А в таком виде, как оно есть, на мой взгляд, не имеет смысла. Только ОЗУ и код даром выброшены.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
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  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 LVII ОС была намеренно минимизирована. Чтобы уместилась... Nov 2 2009, 11:34 _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, 12:34) ОС была ... Nov 2 2009, 18:01  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  ReAl Цитата(Огурцов @ Nov 2 2009, 20:01) Я бы ... Nov 3 2009, 17:08   Огурцов Так и не надо в мелкий. Надо мало секса с этими ка... Nov 3 2009, 21:20    ReAl Цитата(Огурцов @ Nov 3 2009, 23:20) Так и... Nov 3 2009, 22:46     _Pasha Цитата(ReAl @ Nov 4 2009, 01:46) если уж ... Nov 3 2009, 23:19     defunct Цитата(ReAl @ Nov 4 2009, 00:46) если уж ... Nov 3 2009, 23:27 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
|
|
|