|
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
|
|
|
|
|
 |
Ответов
|
Oct 30 2009, 17:14
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 30-03-06
Пользователь №: 15 598

|
Начинаем читать документацию, идущую в файле с mRTOS(стр. 2) : Цитата Всю приведенные ниже выкладки, рассуждения и оценки являются результатом личного опыта и знаний автора, поэтому обладают долей субъективизма и могут содержать ряд неточностей и спорных моментов. А теперь прочитаем документацию к scmRTOS(стр. 7): Цитата Все приведенные ниже рассуждения, оценки, выводы основаны на личном опыте и знаниях автора и вследствие этого обладают известной долей субъективизма, что обуславливает наличие как неточностей, так и ошибок. Ну и так далее - цельнотянутые куски из документации к scmRTOS.
|
|
|
|
|
Oct 31 2009, 11:19
|

Участник

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

|
Цитата(alcosar @ Oct 30 2009, 19:14)  Ну и так далее - цельнотянутые куски из документации к scmRTOS.  До решения о написании собственной ОС, были изучены все доступные ОС, естественно и scmRTOS. Память у меня очень неплохая. Так, что ненароком повторил "цельнотянутые куски из документации к scmRTOS", но в документации это только общие слова(видно из вышеприведенных примеров). Но на всякий случай прошу прощения! Действительно важная, особенно техническая, часть документации - это эксклюзив. Это же касается идеи и кода. Насчет "пухленькой" - были приняты меры для минимизации, но с тем, чтобы оставить необходимые возможности. Насколько я знаю, у всех подобных систем(кооперативная с приоритетным планированием) результаты немного хуже. Насчет preemptive ОС - уже несколько раз брался. Но при решении конкретных задач(проектов), существующая ОС, удовлетворяла всем требованиям. Проекты включали подключение к TCP/P, используя WizNET 5100. Работа с GSM, через модули SIMCOM. Куча датчиков. Но тем не менее, все это уже на этапе проектирования отлично вписывалось в mRTOS. Да и само пректирование упрощалось. Т.е. пока не вижу проекта для 8-ми битных микроконтроллеров с необходимостью preemptive ОС. Может быть не прав. Поправьте.
|
|
|
|
|
Nov 1 2009, 05:22
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 30-03-06
Пользователь №: 15 598

|
Цитата(LVII @ Oct 31 2009, 15:19)  До решения о написании собственной ОС, были изучены все доступные ОС, естественно и 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.
|
|
|
|
Сообщений в этой теме
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 _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 - по существу вопроса у Вас, что нибудь ес... 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 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
|
|
|