Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Free OS for AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
KA_ru
Просветите какую шаровую ОС взять.
Нужна для 3....5 таксов интенсивной загрузки.

На AVR.
_Pasha
Дайте, плз, чуть больше информации.
В смысле что значит "интенсивной загрузки".
Лично я пишу в асме нечто наподобие мультитредов. Каждый тред сам решает, когда переключиться
на следующую задачу. Но это - своя собственная ОС.
pitt
Цитата(_Pasha @ Oct 5 2007, 09:29) *
Каждый тред сам решает, когда переключиться на следующую задачу.

Это принцип работы кооперативного планировщика.
spf
Цитата(KA_ru @ Oct 5 2007, 16:44) *
Просветите какую шаровую ОС взять.
Нужна для 3....5 таксов интенсивной загрузки.

scmRTOS смотрел? ссылки на нее наплодили в форуме уже во всех разделах.
WEST128
Могу рекомендовать FreeRTOS, неплохо написана и есть порты на AVR, примеры смотрите на сайте http://www.freertos.org/
spf
Цитата(WEST128 @ Oct 6 2007, 01:08) *
Могу рекомендовать FreeRTOS, неплохо написана и есть порты на AVR

И сколько займет переключение между задачами в ней?
И сколько она памяти перерасходует?

PS: вот уж никогда не думал что freertos непрохо написана.Имхо: самая что ни на есть посредственная реализация, но маркетинг делает свое дело.
zltigo
Цитата(spf @ Oct 6 2007, 07:39) *
Имхо: самая что ни на есть посредственная реализация...

Из того, что она написана с отступления от принципа "минимализм превыше всего" и не похожа на uCOS, scmRTOS, ... не зачит, что реализация "посредственная" smile.gif. Ресурсов действительно требует больше и это надо мметь ввиду и думать при использовании на мелких контроллерах.
KA_ru
Задачки у меня простые.
Управлять мотором PWM(20кГц). Выдать/Принять(40кГц) IR команду.
Таймер с индикатором, точность 1 мс с внешней синхронизацией Start/Stop
Включатель/Выключатель с внешней синхронизацией.
Модуль измерения и создания задержек.
Всё это может запущено сразу или в любой последовательности.
Kris2007
uOS.
http://uos.vak.ru/doku.php.

Почитайте. ВещЬ!!:)
algidim
Цитата(spf @ Oct 5 2007, 17:57) *
scmRTOS смотрел? ссылки на нее наплодили в форуме уже во всех разделах.

А ссылка какая ? http://scmrtos.narod.ru/ - вот эта нерабочая, говорит "нет такой страницы"
AVR
Цитата(algidim @ Oct 6 2007, 17:37) *
А ссылка какая ? http://scmrtos.narod.ru/ - вот эта нерабочая, говорит "нет такой страницы"
http://scmrtos.sourceforge.net Вот эта ссылка рабочая. Хорошая ОСька, ресурсов не слишком много кушает, что как раз подходит для AVRок... smile.gif
algidim
Спасибо. А на русском языке ничего нет, просто та была явно на русский сайт.
ReAl
Цитата(algidim @ Oct 6 2007, 15:50) *
Спасибо. А на русском языке ничего нет, просто та была явно на русский сайт.

pdf-ка на страничке http://scmrtos.sourceforge.net/doc/index.html на самом деле на русском smile.gif
Это описание на v2, но отличия v3 от v2 не катастрофические для понимания.

p.s. Сейчас проверяю порт scmRTOS v3 для avr-gcc - ещё немного, причешу примеры и оно будет доступно. Там возникли некоторые проблемы, связанные с более нахальной в avr-gcc 4.x (WinAVR-20070525 и сборки от Klen, www.klen.org ) по сравнению с avr-gcc 3.4.6 (WinAVR-20060421) уоптимизацией вусмерть не отмеченного как volatile ( см. в том числе http://forum.sources.ru/index.php?showtopic=201904&st=0 ) поэтому я внимательно всё просматриваю.
_Pasha
Цитата(KA_ru @ Oct 6 2007, 14:18) *
Задачки у меня простые.
Управлять мотором PWM(20кГц). Выдать/Принять(40кГц) IR команду.
Таймер с индикатором, точность 1 мс с внешней синхронизацией Start/Stop
Включатель/Выключатель с внешней синхронизацией.
Модуль измерения и создания задержек.
Всё это может запущено сразу или в любой последовательности.


Ну вот, брат объявился.
Делал я это все на асме, так как слишком много Time-critical частей.
На 16 МГц кварце.
Поскольку управлять мотором иногда надо весьма аккуратно, то никаких
псевдопараллельных приемов не использовал - слишком большая зависимость от RAM снижает надежность
ЧЕСТНЫЙ СОВЕТ - ЧЕМ ДУБОВЕЕ И ПРОЩЕ - ТЕМ НАДЕЖНЕЕ
Кодом делиться не буду, потому что это меня кормит. smile.gif
Добавлю только - все, что касается вычислений и выборок PWM, внутренних тиков - вешается на одно большое прерывание от PWM. Может быть, даже придется внутри этого ISR разрешать прерывания.
WEST128
Лично я бы вашу задачу решал без применения ОС, она здесь не так уж и нужна, судя по количеству задач. А все сразу нельзя запустить, у вас же не многоядерный проц. Рекомендую начать определения допустимых временных отклонений для разных подзадач и времени, сколько займет их выполнение. Исходя из этого можно определить, решается ли задача теоретически (на вашем контроллере), а уже потом - с учетом накладок ОС. Не исключен случай, что вам прийдется для какой-то подзадачи выделить отдельный контроллер. Точно сказать не могу, т.к. не знаю всех деталей, но скорее всего это не про вас.
spf
Цитата(algidim @ Oct 6 2007, 19:37) *
А ссылка какая ?

Для ее поиска достаточно сделать поиск на форуме. Намеренно не стал давать ссылку, чтоб найденное зацепило глаз, некоторые темы уже обсуждались.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.