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

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> Подскажите пожалуйста, про многозадачность.
osnwt
сообщение Oct 20 2006, 06:09
Сообщение #31


Частый гость
**

Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664



Цитата(_Алекс @ Oct 20 2006, 08:52) *
Посмотрел ОС scmRTOS, jacOS, Salvo. многозадачность нужна в AVR а все операционки со своей поддержкой много МК самых разных, поддержка разных компиляторов, условная компиляция, комментарии в исходнике не поймешь, да и исходник сам не найти, компоновка в среде, закрытые подключаемые библиотеки…

scmRTOS: есть поддержка AVR, один компилятор IAR, условная компиляция - и это правильно, комментарии отличные, русская документация с фрагментами исходников OS для понимания, исходники открыты для любого использования, в т.ч. коммерческого, пример использования в комплекте - собирается командной строкой (что не мешает использовать IDE), библиотек нет - только исходники. Автор оперативно отвечает.

Вот пример отладки в среде Proteus программы с использованием scmRTOS на AVR. Видно, как можно шагать по исходному коду системы.

Цитата
Понравилась Salvo но где исходник!

jacos - оптимизированная Salvo, послужившая его дальним прообразом. А исходники jacos автор в свое время предлагал за умеренные деньги. Сейчас, как мне сообщили, он вообще не ответил на вопросы. Система не обновлялась уже очень давно, и есть сомнения, что автору еще интересно заниматься ее поддержкой. Потому мои знакомые от ее использования отказались - мало ли что, а поправить не выйдет. А исходники Salvo, как я понимаю, коммерческие - но доступные (у меня нет).

Цитата
В моем проекте задач 6. Причем некоторые требуют жесткой временной привязки и активно используют таймеры, порты ввода вывода, ШИМ, SPI, USART.

Такие вещи надо стараться делать по прерываниям.

Цитата
Остальные задачи, включить выключить, считать дискретный вход. Мне кажется, нужен хороший кооперативный приоритетный планировщик как, например в Salvo (вот бы его исходник) ни какой глобализации объять не объятное, только то что нужно. Осталось написать кооперативный планировщик, скажем задач 10 максимум. Может есть у кого исходник.

Jacos более чем подходит этому описанию, а условная компиляция позволяет отсеять то, что не используется. Один минус: отсутствие исходников и поддержки на данный момент (по известной мне информации, может, она ошибочна).
Go to the top of the page
 
+Quote Post
µµC
сообщение Oct 20 2006, 09:47
Сообщение #32


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710



Цитата(_Алекс @ Oct 20 2006, 09:52) *
Посмотрел ОС scmRTOS, jacOS, Salvo. многозадачность нужна в AVR а все операционки со своей поддержкой много МК самых разных, поддержка разных компиляторов, условная компиляция, комментарии в исходнике не поймешь, да и исходник сам не найти, компоновка в среде, закрытые подключаемые библиотеки…

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

Цитата(_Алекс @ Oct 20 2006, 09:52) *
Мне кажется, нужен хороший кооперативный приоритетный планировщик как, например в Salvo (вот бы его исходник) ни какой глобализации объять не объятное, только то что нужно. Осталось написать кооперативный планировщик, скажем задач 10 максимум. Может есть у кого исходник.


Исходники можно взять для jacos, и повторю, нужны они лишь при обновлении версий компиляторов. Раньше можно было немножко заплатить за поддержку, сейчас ее нет, но есть исходники.
Salvo только за деньги, за довольно приличные. Можно слямзить исходники, но лямженный порт для AVR не встечал. Может есть у кого?
Go to the top of the page
 
+Quote Post
_Алекс
сообщение Oct 20 2006, 10:50
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 14-09-06
Пользователь №: 20 377



Исходники можно взять для jacos, и повторю, нужны они лишь при обновлении версий компиляторов. Раньше можно было немножко заплатить за поддержку, сейчас ее нет, но есть исходники.
Salvo только за деньги, за довольно приличные. Можно слямзить исходники, но лямженный порт для AVR не встечал. Может есть у кого?
[/quote]

А у вас нет исходника jacos.
Go to the top of the page
 
+Quote Post
µµC
сообщение Oct 20 2006, 11:19
Сообщение #34


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710



Цитата(_Алекс @ Oct 20 2006, 14:50) *
А у вас нет исходника jacos.


Есть. Обращайтесь к автору и у вас будет текущая версия.
Go to the top of the page
 
+Quote Post
Alex B._
сообщение Oct 20 2006, 12:39
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274



>> Один минус: отсутствие исходников
Это не минус. Если система активно развивается автором - не нужно ему мешать. Ну поправите вы что-то, добавите дополнительные сервисы, а автор выпустит новую версию. И ваши проекты уже не будут совместимы с родной библиотекой. В случае с jacOS - уже вряд-ли - обновлений давно нет и не придвидится, но в общем случае править что-то в ядре RTOS - нужно разбираться во всем коде. Иначе система будет работать но в один прекрасный момент вылетит. И хорошо если в момент тестирования, а не у клиента.
Go to the top of the page
 
+Quote Post
osnwt
сообщение Oct 20 2006, 16:57
Сообщение #36


Частый гость
**

Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664



Цитата(Alex B._ @ Oct 20 2006, 15:39) *
>> Один минус: отсутствие исходников
Это не минус. Если система активно развивается автором - не нужно ему мешать. Ну поправите вы что-то, добавите дополнительные сервисы, а автор выпустит новую версию.

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

Что касается правки, то есть и другая модель внесения изменений: пишется письмо автору, где предлагается некая функциональность и патчи примера ее внесения. Если автор считает, что это заслуживает внесения в официальный порт - он это сделает в очередном релизе. Если нет - то нет. Я такую модель обкатал на AVR-USB драйвере - она очень хорошо работает. Все, что мне было нужно, автор дописал в оригинале, сохранив совместимость с исходной версией. В итоге я просто перешел на новую версию, выкинув свои патчи, а драйвер стал более функциональным. При этом диалог был конструктивным: не "а нельзя ли добавить вот это?", а "хочется вот такое, я сделал так - прошу посмотреть и реализовать, если одобрямс".
Go to the top of the page
 
+Quote Post
Alex B._
сообщение Oct 20 2006, 18:27
Сообщение #37


Знающий
****

Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274



Согласен на полминуса.
Для того чтобы лучше понять - есть документация. Если она убогая - вообще нужно отказаться от этого продукта, альтернатив всегда хватает.
Опять же, что мешает задать вопрос в техподдержку (если либа или РТОС платная) - ведь деньги платятся не только за архив с исходниками. А если бесплатное - автор, как правило сам охотно идет на контакт.
Дальше. Поставка в скомпилированных либах или объектниках - некая защита интеллектуальной собственности. Можно купить софт гораздо (в разы) дешевле.
И еще. Поставляя библиотеку, ядро РТОС в объектниках производитель может гарантировать клиенту ее работоспособность. С исходниками сложнее - в 99% указывается на то, что автор не несет ответсвенности за ошибки в ПО, если исходники каким-то образом изменены.

В общем тут перетирать эту тему очень долго можно. ИМХО начинающему исходники абсолютно не нужны и даже вредны
Go to the top of the page
 
+Quote Post
osnwt
сообщение Oct 20 2006, 18:33
Сообщение #38


Частый гость
**

Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664



Поддержка - или платить постоянно за нее, или автору надоело, или самому влезать. Впрочем, тут возможны варианты, не о чем спорить.

Защита собственности - да, хотя многие отличные продукты вроде scmRTOS или AVR-USB драйвера открыты. Если это критично, то можно выбирать из таких, в том числе.

А ответственности за ПО никто не несет вообще - даже Microsoft :-) Так что все это условно.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 21 2006, 03:26
Сообщение #39


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(_Алекс @ Oct 18 2006, 16:29) *
Есть несколько задач (программ) которые должны выполнятся с минимальным временем, можно организовать как линейный список функций, которые последовательно вызываются из главной функции main() при условии что время выполнения каждой функции ограничено т.е. внутри функции нет кода который задерживает выполнения (ожидает чего либо).
Например одна функция обрабатывает принятый массив с USARTа. другая расшифровывает принятую команду и выполняет ее, подготавливает ответ к отправке (квитирование).
Еще пару функций, которые что-то делают (обслуживают клавиатуру, исполнительные устройства). Получается все запутанно, если делать все функции в виде конечных автоматов с минимальным временем работы каждой. Хорошо было бы, если каждая функция выполнялась в виде задачи, ожидает, данные с параллельного потока пускай ждет, получила что хотела, выполняет. Есть задержка в функции скажем, на 20 секунд, пускай ждет, в это время выполняются другие функции. С операционными системами как-то все сложно, может планировщик задач да и все. Какие есть решение не сложные? Механизм взаимодействия функций друг с другом.

Недавно запустил scmRTOS на микроконтроллере ATmega16. Версия ОС 1.10, компилятор GCC. Никаких сложностей не встретил. Пример, приложенный к ОС, собрался сразу и без проблем. Потом написал свою, с нуля, тестовую программу. Сборка также прошла отлично. Рекомендую обратить внимание на эту ОС: есть исходники, есть хорошо написанный мануал.т Есть отзывы о ее надежной работе.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
yod
сообщение Oct 24 2006, 10:18
Сообщение #40


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 20-10-06
Пользователь №: 21 500



У многих "универсальных" ОС основная проблема - неоптимизированное ядро. Там бы все ручками...
А так их реакция не радует. Монопольный режим ядра, да и долгое время переключения задач.
Прикрепляю архив с "в последний лохматый раз" переделаной "переключалкой контекстов".
Описывать неохота smile.gif если кому интересны подробности - спрашивайте.
Сие работает на давайсах с мега48, другой на 16.
Написано на асме и для асма (но очень хочется сами задачи на С писать, сейчас "вопрос прорабатывается").
Если кто-нибудь что-нибудь предложит по оптимизации ядра, будет хорошо.
интересны:
Функция проверки истечения таймаута;
Функция проверки говых по событию задач;
время переключения задач:
с одной на ту же около 150 тактов (примерно)
с одной на другую от 200 тактов (примерно).
прерывания рабоают в монопольном режиме.
планировщик в общем режиме.
//--------------------------------
щаз там уарт на 115200 зашит и прием зациклен на передачу через буферную систему.
При старте выдает тестовую строчку. Работоспособность проверял только что.
С уважением, yod
Прикрепленные файлы
Прикрепленный файл  AVRasmOS.zip ( 36.65 килобайт ) Кол-во скачиваний: 69
 
Go to the top of the page
 
+Quote Post
Turion
сообщение Oct 25 2006, 11:59
Сообщение #41





Группа: Новичок
Сообщений: 9
Регистрация: 28-11-05
Пользователь №: 11 498



А ничего, что на сайте scmRTOS висит версия 2.04a-beta от 28.04.2006. Как у нее со стабильностью,как никак бета-версия. Можно ее применить в серьезном проекте.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 25 2006, 12:13
Сообщение #42


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Turion @ Oct 25 2006, 14:59) *
А ничего, что на сайте scmRTOS висит версия 2.04a-beta от 28.04.2006. Как у нее со стабильностью,как никак бета-версия. Можно ее применить в серьезном проекте.
Думаю, что можно. Для MSP430 применял именно эту бету, работает. Из нее же делал порт для ARM.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
µµC
сообщение Oct 25 2006, 12:47
Сообщение #43


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710



Цитата(yod @ Oct 24 2006, 14:18) *
Функция проверки истечения таймаута;
Функция проверки говых по событию задач;
время переключения задач:
с одной на ту же около 150 тактов (примерно)
с одной на другую от 200 тактов (примерно).
прерывания рабоают в монопольном режиме.
планировщик в общем режиме.


Ну jacOS, например:
Функция проверки истечения таймаута - ok;
Функция проверки говых по событию задач - ok;
время переключения задач:
с одной на ту же - 55 тактов (mega16, IAR 420A, prim2)
с одной на другую - от 55 тактов (OS_Cooperate(), скажем, OS_Delay() - 146 тактов).
прерывания рабоают в монопольном режиме - ? Не понял что имеется в виду.
планировщик в общем режиме - ok.
Go to the top of the page
 
+Quote Post
yod
сообщение Oct 25 2006, 12:57
Сообщение #44


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 20-10-06
Пользователь №: 21 500



jacOS - это круто, потому что FSM (Finite State Machine)
и соотвественно в расчет не идет - не сравнима.
Go to the top of the page
 
+Quote Post
µµC
сообщение Oct 25 2006, 13:14
Сообщение #45


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 2-05-06
Пользователь №: 16 710



Цитата(yod @ Oct 25 2006, 16:57) *
потому что FSM (Finite State Machine)


В каком месте FSM? Да где там хоть намек на FSM, ничего не путаете? Вообще, если не трудно, поясните свою мысль.

Цитата(yod @ Oct 25 2006, 16:57) *
и соотвественно в расчет не идет - не сравнима.


Обычная невытесняющая ось. С чем не сравнима? На мой взгляд, невытесняющие оси, по природе своей, на порядок (двоичный, троичный) более подходят для AVR , чем вытесняющие. Но, до пьедестала несравнимых (несравненных) сама концепция их не вытягивает.
Go to the top of the page
 
+Quote Post

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

 


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


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