Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RTOS для MSP430F4xx
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
shasik
Озаботился выбором RTOS. Надоело писать громадные вложенные "switch". Почитал кое-какие материалы про RTOS - заинтересовало. Особенное порадовали исходники некоторых example'ов. Изящно! Если, конечно, можно использовать такое слово для описания кода программы.
Теперь стоит проблема выбора: какую RTOS выбрать для использования именно с MSP430f4xx?

Исходные данные:
1. В последнее время чаще всего используем F449/F439
2. В 50% случаев с LCD (7- и 14- сегментые)
3. Есть "лишних" 15-20 кБ ROM и 512-1024 Б ОЗУ (в среднем).
4. Чаще всего F_MCLK = 1048576 Гц (оптимальное отношение энергопотребление/быстродействие)
5. Хотелось бы получить стабильную RTOS c "хорошой" реакцией (посмотрел описания некоторых RTOS - с их скоростью переключения между задачами и навороченностью, чтобы обеспечить необходимую скорость реакции придется разгоняться как минимум до 8 МГц, чего не очень хочется). Вполне допускаю отсутствие некоторых модных и "жизненно необходимых" примочек.

Пока только читал/смотрел/знакомился с embOS, FreeRTOS, jacOS, Salvo RTSO, SOS, uCOS.
Хотелось бы услышать дельные отзывы о реальном (!) использовании той или иной RTOS именно для MSP430. Посмотрел обсуждения на других форумах - субъективный базар, полное IMHO ("все используем XXX_RTOS, потому что мне она досталась на халяву, а платить деньги за soft я не согласен", "XXX_RTOS круче YYY_RTOS т.к. при использовании XXX размер программы меньше аж на целых ??? байта, а лишнего size'a никогда не бывает" и тому подобное). Если идет разумный обмен накопленным опытом, то это чаще всего ARM'ы, а про MSP430 тишина (поиск в этом подфоруме по слову "RTOS" тоже не обнадежил).

Наверняка, есть же люди (не побоюсь сказать ЧЕЛОВЕКИ), которые в свое время тоже решали что выбрать, которые попробовали пару-тройку RTOS'ов и могут доходчиво выразить свои ощущения от пребывания в той-или иной RTOS.

ЗЫ: это не лень, а претензия на "только дурак учится на своих ошибках, продвинутые же люди - на чужих".
Andy Mozzhevilov
Посмотрите на scmRtos
http://scmrtos.sourceforge.net/
AHTOXA
Цитата(Andy Mozzhevilov @ Mar 4 2008, 16:50) *
Посмотрите на scmRtos
http://scmrtos.sourceforge.net/


Интересно, а под mspgcc она пойдёт?
Сергей Борщ
Цитата(AHTOXA @ Mar 4 2008, 14:44) *
Интересно, а под mspgcc она пойдёт?
"В лоб" - нет. Но там в репозитории есть реализация под avr-gcc. Имея ее в качестве образца, несложно из порта для msp под IAR сделать порт для msp под mspgcc. Если будете реализовывать - добро пожаловать в коллектив разработчиков.
dxp
Цитата(Сергей Борщ @ Mar 4 2008, 18:50) *
"В лоб" - нет. Но там в репозитории есть реализация под avr-gcc. Имея ее в качестве образца, несложно из порта для msp под IAR сделать порт для msp под mspgcc. Если будете реализовывать - добро пожаловать в коллектив разработчиков.

Насколько мне известно, mspgcc до сих пор не поддерживает С++ - стартап и библиотека для этого не сделаны. Но возможно я отстал от жизни. smile.gif
jorikdima
использую scmRTOS... просто потому что использую. Особо не выбирал, нужно было что то простое и небольшое. К тому же авторы тут недалеко smile.gif Законченного проекта нет.

Кстати оффтоп. Сергей Борщ, к вамкак к разработчику хочу обратиться. Почему ОСЬ виснет, когда я отключаю полностью оптимизациюв ИАР. Не готов пока ответить где виснет, особо не разбирался, просто забил пока на это. Просто думаю, может это уже известная фича или баг.
AHTOXA
Цитата(Сергей Борщ @ Mar 4 2008, 17:50) *
"В лоб" - нет. Но там в репозитории есть реализация под avr-gcc. Имея ее в качестве образца, несложно из порта для msp под IAR сделать порт для msp под mspgcc. Если будете реализовывать - добро пожаловать в коллектив разработчиков.


Уже год наверное собираюсь начать осваивать svn, всё некогда:-) Спасибо за ссылку, качаю... И за предложение спасибо:-)

Цитата(dxp @ Mar 4 2008, 18:03) *
Насколько мне известно, mspgcc до сих пор не поддерживает С++ - стартап и библиотека для этого не сделаны. Но возможно я отстал от жизни. smile.gif


Надо попробовать... Судя по этому посту, есть шанс что заработает.
Сергей Борщ
Цитата(jorikdima @ Mar 4 2008, 16:32) *
Кстати оффтоп. Сергей Борщ, к вамкак к разработчику хочу обратиться.
Смотря какой порт - если ARM, то ко мне, если фуджик - к spf, если avr-gcc - то к ReAl, остальные - к dxp. Без оптимизации как-то и не пробовал, но подозреваю, что отключается встраивание функций. Вообще, если вдруг "начало виснуть", то самая частая причина - переполнение стека какого-то из процессов.
shasik
Цитата(Andy Mozzhevilov @ Mar 4 2008, 13:50) *
Посмотрите на scmRtos
http://scmrtos.sourceforge.net/

Уже не помню кто точно пел Б.Титомир или С.Лемох: "Делай как я!"
Позвольте вопрос: в чем изюминка?
Цитата(jorikdima @ Mar 4 2008, 16:32) *
использую scmRTOS... просто потому что использую. Особо не выбирал, нужно было что то простое и небольшое. К тому же авторы тут недалеко smile.gif

А вот это уже интересно! Будем изучать!
В свое время даже в руках не держал MSP430, просто под руки случайно подвернулся FAQ от "Сергей Борщ" и "понеслась душа в рай", а тут
Цитата(Сергей Борщ @ Mar 4 2008, 17:39) *
Смотря какой порт - если ARM, то ко мне, если фуджик - к spf, если avr-gcc - то к ReAl, остальные - к dxp.

- уважаемые все люди.
Andy Mozzhevilov
Цитата(shasik @ Mar 5 2008, 02:30) *
Уже не помню кто точно пел Б.Титомир или С.Лемох: "Делай как я!"
Позвольте вопрос: в чем изюминка?

smile.gif Самое интересное, что я ее не использую (во всяком случае пока).
Но исходные данные, которые вы привели в первом посте:
Цитата
5. Хотелось бы получить стабильную RTOS c "хорошой" реакцией (посмотрел описания некоторых RTOS - с их скоростью переключения между задачами и навороченностью, чтобы обеспечить необходимую скорость реакции придется разгоняться как минимум до 8 МГц, чего не очень хочется).

Хотелось бы, конечно, оперировать более конкретными понятиями (например, переключение контекста за ххх мкс), а не просто с "хорошей" реакцией, или "придется разгонять как минимум до 8 МГц" (а сейчас то сколько?).
Но у этой RTOS, например для ARM, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS. То есть возможно она и подойдет.
Ну и уже привели другие аргументы.
И документация у нее ра русском, к тому же.
shasik
Цитата(Andy Mozzhevilov @ Mar 5 2008, 05:55) *
Хотелось бы, конечно, оперировать более конкретными понятиями (например, переключение контекста за ххх мкс), а не просто с "хорошей" реакцией, или "придется разгонять как минимум до 8 МГц" (а сейчас то сколько?).

Цитата(shasik @ Mar 4 2008, 12:29) *
4. Чаще всего F_MCLK = 1048576 Гц (оптимальное отношение энергопотребление/быстродействие)

Данный момент ситуация такая: от внешнего устройства получаем прерывания с частотой 100 Гц, по протоколу должны выдерживать временные интервалы с точностью до 1 мс, кнопки и ЖКИ - как получиться. Вопрос: сколько мкс в ххх? Ксати, сейчас, все очень даже свободно, нет таких уж жестких и приницпиальных ограничений. А термин "хорошая реакция" - означает соответствующую конкретной ситуации, т.е. сегодня это может быть 1 мс, а завтра придется доводить до 50 мкс. Другими словами четкой цифры нет.

Цитата(Andy Mozzhevilov @ Mar 5 2008, 05:55) *
Но у этой RTOS, например для ARM, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS.

А на сколько эффективна она для MSP430? Думаю Вы согласитесь, что ARM и MSP - это разные подхода к программированию. Как говориться: "Что дозволено Юпитеру, не разрешено быку"
spf
Цитата(shasik @ Mar 5 2008, 15:24) *
А на сколько эффективна она для MSP430? Думаю Вы согласитесь, что ARM и MSP - это разные подхода к программированию. Как говориться: "Что дозволено Юпитеру, не разрешено быку"

скажем так "У этой RTOS, для всех представленных портов, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS".
Alex B._
Цитата(spf @ Mar 5 2008, 13:54) *
У этой RTOS, для всех представленных портов, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS

а что конкретно принимается за "время переключения контекста"? имхо, переключение контекста - это сохранение текущего контекста в стек, переключения указателя стека и восстановление контекста другой задачи. У любой ртос эти действия будут занимать одинаковое время, обычно вытесняющая задача уже известна.
А вот время между возникновением прерывания, освобождением семафора в прерывании и входом в задачу, которая ожидает семафор - вот тут уже можно меряться. Вы это имели в виду?
Сергей Борщ
Цитата(Alex B._ @ Mar 5 2008, 15:01) *
А вот время между возникновением прерывания, освобождением семафора в прерывании и входом в задачу, которая ожидает семафор - вот тут уже можно меряться. Вы это имели в виду?
Да, время между входом в flag.signal() в одном процессе и выходом из flag.wait() в другом (более приоритетном, естетственно).
Дон Амброзио
Цитата(shasik @ Mar 4 2008, 13:29) *
Озаботился выбором RTOS. Надоело писать громадные вложенные "switch". Почитал кое-какие материалы про RTOS - заинтересовало.

Если решите сами писать RTOS с нуля, то достаточно интересны концепции RTOS "Ужас"(UzhOS)

Официальный сайт разработчика тут: http://www.uzhos.tk/

А "разбор полётов" (т.е. обсуждение принципов построения этой RTOS) тут: http://board.sysbin.com/viewforum.php?f=19

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