реклама на сайте
подробности

 
 
> mRTOS-кооперативная операционная система, порт CodeVision, порт WinAvr, mRTOS-кооперативная операционная система для AVR
LVII
сообщение Oct 30 2009, 11:53
Сообщение #1


Участник
*

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



Предлагаю на рассмотрение уважаемым ембеддерам кооперативную операционную систему реального времени для малых и средних контроллеров AVR, правда никто не запрещает использовать ее для всех типов контроллеров. Существует два порта - под CodeVision и WinAVR.
Сразу же хочу оговориться, что понятие реального времени в случае кооперативных систем достаточно условно - это описано в статье на сайте и документации к ОС.
Используя эту систему начинаю разработку с проектирования ПО - используя упрощенную нотацию UML в бесплатном редакторе DIA.
Разрабатывать проекты получается быстрее, существенно легче стало обеспечивать модификацию, сопровождение и отладку программного обеспечения. Понятнее и прозрачнее стали тексты программ.

Адрес сайта - http://movilavn.narod.ru/

Зайти в раздел "Статьи", выбрать статью - "mRTOS - кооперативная операционная система для микроконтроллеров".
Для загрузки доступны сама ОС, документация и примеры использования.

Сообщение отредактировал LVII - Oct 30 2009, 11:58
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
LVII
сообщение Nov 1 2009, 13:03
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 1 2009, 13:18
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



че за базар?
граждане? код смотрите который вам предлагают, не нравится используйте другое.
я книгу пишу по GNU tools for ARM, часть текста будет "как я перевел из ...." и примеры не все мною будут писаны! и че теперь я плагиатор?
цель - дать информацию в нужном виде для решения поставленной задачи
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 1 2009, 13:34
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(klen @ Nov 1 2009, 16:18) *
че за базар?
граждане? код смотрите который вам предлагают, не нравится используйте другое.
я книгу пишу по GNU tools for ARM, часть текста будет "как я перевел из ...." и примеры не все мною будут писаны! и че теперь я плагиатор?
цель - дать информацию в нужном виде для решения поставленной задачи

Спокуха. Вы же ссылки не забудете сделать? Есть ссылка - это уже не плагиат а цитата =) Ссылки нужны ещё для того, если возникнут вопросы, можно было заглянуть в первоисточник и узнать ошибка возникла в процессе перевода или так и задумано было...
Go to the top of the page
 
+Quote Post
ReAl
сообщение Nov 1 2009, 14:43
Сообщение #5


Нечётный пользователь.
******

Группа: Свой
Сообщений: 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
но это требует совсем другого подхода.

А в таком виде, как оно есть, на мой взгляд, не имеет смысла. Только ОЗУ и код даром выброшены.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 17:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016