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

 
 
> 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
Ответов
oleg_lwd
сообщение Jan 13 2010, 12:24
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 26-10-05
Пользователь №: 10 131



Даже не и знаю что тут объяснять

void OS_yeld(void) - Смена стеков Z-указывает на текущий своп стека.

Идея сохранения локальных регистровых переменных (ЛРП) основана на том, что CV(У меня 1.25.3 у новых CV не знаю) при входе в функцию сохраняет их в стек данных в последнюю очередь (до 6 регистров ), этот стек и используется для сохранения ЛРП при смене задач, но задачи и сопроцедуры теперь НЕ сохраняют ЛРП, эта задача теперь возложена на ВЫЗЫВАЮЩЮЮ задачу.
Код для сохранения восстановления в стеке ЛРП такой же, как у самого компилятора, но что делает компилятор автоматически при входе и выходе из функции, для смены задач приходится делать вручную (подсмотрев код для сохранения восстановления в стеке ЛРП в asm файле, для CV 1.25.3 - шесть вариантов).

пример допустим 4 ЛРП, Swp –своп стека.

#asm("adiw R28,4");#asm("rcall __SAVELOCR4"); - сохранили ЛРП (__SAVELOCR4-подсмотрели asm)

Swp; Z указывает на Swp (в CV 1.25.3 работает)

OS_yeld(); - переход

#asm("rcall __LOADLOCR4");-восстановили ЛРП

Попытался как-то это автоматизировать с помощью дефайнов.

Начальная инициализация свопов стеков и первого входа в задачи дело вкуса разработчика как у меня сделано мне не нравится неудобно.
Таймеры , события, mutex – тоже дело вкуса разработчика.

Передача данных задаче через R22R23, пример есть для варианта для mega128

Кстати подобная идея для IAR где то на форуме уже была.
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
- - 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
|- - 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 Текстовая версия Сейчас: 31st July 2025 - 23:20
Рейтинг@Mail.ru


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