Перейти к содержанию
    

mRTOS-кооперативная операционная система, порт CodeVision, порт WinAvr

Предлагаю на рассмотрение уважаемым ембеддерам кооперативную операционную систему реального времени для малых и средних контроллеров AVR, правда никто не запрещает использовать ее для всех типов контроллеров. Существует два порта - под CodeVision и WinAVR.

Сразу же хочу оговориться, что понятие реального времени в случае кооперативных систем достаточно условно - это описано в статье на сайте и документации к ОС.

Используя эту систему начинаю разработку с проектирования ПО - используя упрощенную нотацию UML в бесплатном редакторе DIA.

Разрабатывать проекты получается быстрее, существенно легче стало обеспечивать модификацию, сопровождение и отладку программного обеспечения. Понятнее и прозрачнее стали тексты программ.

 

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

 

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

Для загрузки доступны сама ОС, документация и примеры использования.

Изменено пользователем LVII

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю на рассмотрение уважаемым ембеддерам кооперативную операционную систему реального времени

Спасибо уже опробовал - понравилось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Благодарствую за положительную оценку!

Буду рад увидеть Ваши мнения, пожелания и критику.

Стоит ли дорабатывать до preemptive версии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Начинаем читать документацию, идущую в файле с mRTOS(стр. 2) :

Всю приведенные ниже выкладки, рассуждения и оценки являются результатом личного опыта и знаний автора, поэтому обладают долей субъективизма и могут содержать ряд неточностей и спорных моментов.

А теперь прочитаем документацию к scmRTOS(стр. 7):

Все приведенные ниже рассуждения, оценки, выводы основаны на личном опыте и знаниях автора и вследствие этого обладают известной долей субъективизма, что обуславливает наличие как неточностей, так и ошибок.

Ну и так далее - цельнотянутые куски из документации к scmRTOS.

:crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и так далее - цельнотянутые куски из документации к scmRTOS.

:crying:

И к тому же ось позиционируется как кооперативная, но от чего же такая пухленькая ? :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И к тому же ось позиционируется как кооперативная, но от чего же такая пухленькая ? :crying:

А чего "пухленькая"?

Простой пример из 4 задач:

AVR Memory Usage

----------------

Device: atmega8535

Program: 1660 bytes (20.3% Full)

(.text + .data + .bootloader)

Data: 72 bytes (14.1% Full)

(.data + .bss + .noinit)

Build succeeded with 0 Warnings...

 

Стоит ли дорабатывать до preemptive версии?

Стоит. Хотя и так вполне работает хорошо (у меня в реальном проекте).

Еще бы порт на IAR...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и так далее - цельнотянутые куски из документации к scmRTOS.

:crying:

 

До решения о написании собственной ОС, были изучены все доступные ОС, естественно и scmRTOS. Память у меня очень неплохая. Так, что ненароком повторил "цельнотянутые куски из документации к scmRTOS", но в документации это только общие слова(видно из вышеприведенных примеров). Но на всякий случай прошу прощения! Действительно важная, особенно техническая, часть документации - это эксклюзив. Это же касается идеи и кода.

 

Насчет "пухленькой" - были приняты меры для минимизации, но с тем, чтобы оставить необходимые возможности. Насколько я знаю, у всех подобных систем(кооперативная с приоритетным планированием) результаты немного хуже.

 

Насчет preemptive ОС - уже несколько раз брался. Но при решении конкретных задач(проектов), существующая ОС, удовлетворяла всем требованиям. Проекты включали подключение к TCP/P, используя WizNET 5100. Работа с GSM, через модули SIMCOM. Куча датчиков.

Но тем не менее, все это уже на этапе проектирования отлично вписывалось в mRTOS.

Да и само пректирование упрощалось.

Т.е. пока не вижу проекта для 8-ми битных микроконтроллеров с необходимостью preemptive ОС.

Может быть не прав. Поправьте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До решения о написании собственной ОС, были изучены все доступные ОС, естественно и scmRTOS. Память у меня очень неплохая. Так, что ненароком повторил "цельнотянутые куски из документации к scmRTOS", но в документации это только общие слова(видно из вышеприведенных примеров). Но на всякий случай прошу прощения! Действительно важная, особенно техническая, часть документации - это эксклюзив. Это же касается идеи и кода.

Это не память хорошая и не ненароком. Брать чужое и выдавать за свое называется по-другому.

Документация к scmRTOS:

Итак, в контексте текущего рассмотрения, операционная система – сово-

купность программного обеспечения (ПО), дающего возможность разбить поток

выполнения программы на несколько независимых, асинхронных по отношению

друг к другу процессов и организовать взаимодействие между ними. Т.е. внима-

ние обращено на базовые функции, оставляя в стороне такие вещи, присущие ОС

для больших машин, как файловые системы (т.к. и файлов-то никаких, обычно,

нет), драйверы устройств (которые вынесены на уровень пользовательского ПО) и

проч.

Документация к mRTOS:

Итак, в контексте текущего рассмотрения, операционная система – совокупность

программного обеспечения (ПО), дающего возможность разбить поток выполнения

программы на несколько независимых, асинхронных по отношению друг к другу

процессов и организовать взаимодействие между ними. Т.е. внимание обращено на

базовые функции, оставляя в стороне такие вещи, присущие ОС для больших машин, как

файловые системы (т.к. и файлов-то никаких, обычно, нет), драйверы устройств (которые

вынесены на уровень пользовательского ПО) и прочее.

 

Документация к scmRTOS:

Таким образом, исходя из того, что основная функция ОС – поддержка

параллельного асинхронного исполнения разных процессов и взаимодействия

между ними, встает вопрос о планировании (Scheduling) процессов, т.е. когда ка-

кой процесс должен получить управление, когда отдать управление другому про-

цессу и проч. Эта задача возлагается (хоть и не полностью) на часть ядра ОС, на-

зываемой планировщиком (Scheduler). По способу организации работы плани-

ровщики бывают:

Документация к mRTOS:

Таким образом, исходя из того, что основная функция ОС – поддержка параллельного

асинхронного исполнения разных процессов и взаимодействия между ними, встает вопрос

о планировании (Scheduling) процессов, т.е. когда какой процесс должен получить

управление, когда отдать управление другому процессу и прочее. Эта задача возлагается,

хоть и не полностью, на часть ядра ОС, называемой планировщиком (Scheduler).

По способу организации работы планировщики бывают:

Ну и так далее.

 

В документация к mRTOS читаем следующее(стр.13):

Data Stack используется для динамического хранения локальных

переменных, посредством его передаются параметры функций и сохраняются регистры во

время вызова функций обработки прерываний. В CodeVision для хранения адреса

вершины Data Stack используется Y-регистр (регистровая пара r28 и r29), в WinAVR

используется регистровая пара r24 и r25, а в ICCAVR регистровая пара r16 и r17.

У avr-gcc нет отдельного Data Stack, а есть единый стек для хранения адресов возврата и данных. Указатель на верхушку стека также хранится в регистровой паре Y. Через r24, r25 передаются параметры в функцию.

avr-libc

Call-saved registers (r2-r17, r28-r29):

May be allocated by gcc for local data. Calling C subroutines leaves them unchanged. Assembler subroutines are responsible for saving and restoring these registers, if changed. r29:r28 (Y pointer) is used as a frame pointer (points to local data on stack) if necessary. The requirement for the callee to save/preserve the contents of these registers even applies in situations where the compiler assigns them for argument passing.

* Function call conventions:

Arguments - allocated left to right, r25 to r8. All arguments are aligned to start in even-numbered registers (odd-sized arguments, including char, have one free register above them). This allows making better use of the movw instruction on the enhanced core.

 

If too many, those that don't fit are passed on the stack.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

alcosar - по существу вопроса у Вас, что нибудь есть?

Это о функционировании и удобстве применения предложенной ОС.

То, что Вы "цельнотянуто" процитировали из документации по GCC, поверьте я знаю.

Это просто вопрос терминологии - что и как называть Data Stack в разных компиляторах.

 

Брать чужое, что? Беллетристику?

Почитайте на досуге - "Embedded Multitasking with small microcontrollers" Keith E. Curtis.

Там найдете те же самые слова, только по английски.

 

Хочу напомнить, что на рассмотрение было представлено ПО, а не учебник по написанию ОС для встроенных систем.

К самой mRTOS есть какие-то претензии? К коду?

 

Вообще в чем Вы меня обвиняете. В том, что опубликовал свою ОС для свободного использования, а подложил чужую документацию, не иначе как в каких-то темных целях?

 

На досуге подумаю как изменить документацию, так, чтобы сказать то же самое, только совсем другими словами.

Изменено пользователем LVII

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не буду разбираться кто где плагиатор. Вот попался линк на "Embedded Multitasking with small microcontrollers" Keith E. Curtis.

hчсp://rapidshare.com/files/123380312/Embedded_Multitasking_with_small_microcontrollers.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще в чем Вы меня обвиняете. В том, что опубликовал свою ОС для свободного использования, а подложил чужую документацию, не иначе как в каких-то темных целях?

 

Вас обвиняют в плагиате. И никакие благие цели типа "для свободного использования" этот плагиат не оправдывают.

Может вы и саму ОС откуда-то "одолжили"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Один человек только протестировал!

 

Остальные контролеры из комитета по защите авторских прав видимо сверяли слово в слово документацию.

Общие фразы об устройстве ОС(плагиат) встречаются во многих учебниках посвященных операционным системам.

Кстати прежде чем бросаться словами надо понимать их значение. Плагиат подразумевает корыстные цели.

 

Видимо по существу дела толковых мнений не дождусь.

Ну и да ладно - любое хорошее дело не должно остаться безнаказанным!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Один человек только протестировал!

А вы думали все прям ломанутся тестировать? С какой стати? Имхо, если человек не может описать своими словами, как работает его собственная операционка, то ничего хорошего от неё ждать не приходится.

Общие фразы об устройстве ОС(плагиат) встречаются во многих учебниках посвященных операционным системам.

Кстати прежде чем бросаться словами надо понимать их значение. Плагиат подразумевает корыстные цели.

Не надо изворачиваться. Речь идёт не об общих фразах, а о передирании один-в-один, причём бездумном. Плагиат - он всегда плагиат, независимо от целей.

Видимо по существу дела толковых мнений не дождусь.

Да уж, теперь вряд ли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Один человек только протестировал!

 

Остальные контролеры из комитета по защите авторских прав видимо сверяли слово в слово документацию.

Общие фразы об устройстве ОС(плагиат) встречаются во многих учебниках посвященных операционным системам.

Кстати прежде чем бросаться словами надо понимать их значение. Плагиат подразумевает корыстные цели.

 

Видимо по существу дела толковых мнений не дождусь.

Ну и да ладно - любое хорошее дело не должно остаться безнаказанным!

Не обижайтесь, просто принято перед использованием/тестированием чего-либо читать документацию. Поэтому первые вопросы возникли по документации. Если документация продукта "A" один в один повторяет документацию продукта "Б", то встаёт резонный вопрос. А чего такого в продукте "А"? По поводу "плагиата": лучше-бы вместо тупого копирования, сделали-бы просто ссылку "такой-то подход хорошо описан там-то". И написали только то, что касается вашего проекта (его особенности, плюсы и минусы, подходы, идеология, тесты, примеры использования и.т.п). И люди к вам потянутся =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил сам - да действительно почти совпадают несколько вступительных фраз!

Дико прошу извинений! Посыпаю голову пеплом! И т.д. и т.п.

Обязательно сделаю ссылку на scmRTOS. Отличная, кстати говоря ОС. Но не захотела работать на CodeVision.

Также и на остальную литературу с которой работал:

1. Иртегов Д.В. Введение в операционные системы. – СПб.: БХВ-

Петербург, 2002. – 624 с.: ил.

2. Столлингс В. Операционные системы, 4-е издание.: Перев. с англ. – М:

Издательский дом «Вильямс», 2002. – 848 с.: ил.

3. Гордеев А.В., Молчанов А. Ю. Системное программное обеспечение. –

СПб.: Питер, 2002. – 736 с.: ил.

4. Олифер Н.А., Олифер В.Г. Сетевые операционные системы. – СПб.:

Питер, 2001. – 544 с.: ил.

5. Таненбаум Э. Современные операционные системы. 2-е изд. – СПб.:

Питер, 2002. – 1040 с.: ил.

6. Алгоритмы планирования процессорного времени. И.С. Гусев

 

Если кто-либо действительно прочел документацию до конца, то там понятна разница в подходе и реализации.

А если бы уже проверили на простеньком прилагающемся демо, ну наверное так совсем все ясно стало!

Изменено пользователем LVII

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...