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

 
 
 
Reply to this topicStart new topic
> RTOS для MSP430F4xx, Проблема Выбора
shasik
сообщение Mar 4 2008, 10:29
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Озаботился выбором 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.

ЗЫ: это не лень, а претензия на "только дурак учится на своих ошибках, продвинутые же люди - на чужих".
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Mar 4 2008, 11:50
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Посмотрите на scmRtos
http://scmrtos.sourceforge.net/


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 4 2008, 12:44
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Andy Mozzhevilov @ Mar 4 2008, 16:50) *
Посмотрите на scmRtos
http://scmrtos.sourceforge.net/


Интересно, а под mspgcc она пойдёт?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 4 2008, 12:50
Сообщение #4


Гуру
******

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



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


--------------------
На любой вопрос даю любой ответ
"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
dxp
сообщение Mar 4 2008, 13:03
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

Насколько мне известно, mspgcc до сих пор не поддерживает С++ - стартап и библиотека для этого не сделаны. Но возможно я отстал от жизни. smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Mar 4 2008, 14:32
Сообщение #6


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



использую scmRTOS... просто потому что использую. Особо не выбирал, нужно было что то простое и небольшое. К тому же авторы тут недалеко smile.gif Законченного проекта нет.

Кстати оффтоп. Сергей Борщ, к вамкак к разработчику хочу обратиться. Почему ОСЬ виснет, когда я отключаю полностью оптимизациюв ИАР. Не готов пока ответить где виснет, особо не разбирался, просто забил пока на это. Просто думаю, может это уже известная фича или баг.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 4 2008, 15:15
Сообщение #7


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



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


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

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


Надо попробовать... Судя по этому посту, есть шанс что заработает.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 4 2008, 15:39
Сообщение #8


Гуру
******

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



Цитата(jorikdima @ Mar 4 2008, 16:32) *
Кстати оффтоп. Сергей Борщ, к вамкак к разработчику хочу обратиться.
Смотря какой порт - если ARM, то ко мне, если фуджик - к spf, если avr-gcc - то к ReAl, остальные - к dxp. Без оптимизации как-то и не пробовал, но подозреваю, что отключается встраивание функций. Вообще, если вдруг "начало виснуть", то самая частая причина - переполнение стека какого-то из процессов.


--------------------
На любой вопрос даю любой ответ
"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
shasik
сообщение Mar 4 2008, 21:30
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(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.

- уважаемые все люди.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Mar 5 2008, 03:55
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



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

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

Хотелось бы, конечно, оперировать более конкретными понятиями (например, переключение контекста за ххх мкс), а не просто с "хорошей" реакцией, или "придется разгонять как минимум до 8 МГц" (а сейчас то сколько?).
Но у этой RTOS, например для ARM, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS. То есть возможно она и подойдет.
Ну и уже привели другие аргументы.
И документация у нее ра русском, к тому же.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
shasik
сообщение Mar 5 2008, 10:24
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(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 - это разные подхода к программированию. Как говориться: "Что дозволено Юпитеру, не разрешено быку"
Go to the top of the page
 
+Quote Post
spf
сообщение Mar 5 2008, 10:54
Сообщение #12


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



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

скажем так "У этой RTOS, для всех представленных портов, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS".


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Alex B._
сообщение Mar 5 2008, 13:01
Сообщение #13


Знающий
****

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



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

а что конкретно принимается за "время переключения контекста"? имхо, переключение контекста - это сохранение текущего контекста в стек, переключения указателя стека и восстановление контекста другой задачи. У любой ртос эти действия будут занимать одинаковое время, обычно вытесняющая задача уже известна.
А вот время между возникновением прерывания, освобождением семафора в прерывании и входом в задачу, которая ожидает семафор - вот тут уже можно меряться. Вы это имели в виду?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 5 2008, 15:40
Сообщение #14


Гуру
******

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



Цитата(Alex B._ @ Mar 5 2008, 15:01) *
А вот время между возникновением прерывания, освобождением семафора в прерывании и входом в задачу, которая ожидает семафор - вот тут уже можно меряться. Вы это имели в виду?
Да, время между входом в flag.signal() в одном процессе и выходом из flag.wait() в другом (более приоритетном, естетственно).


--------------------
На любой вопрос даю любой ответ
"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
Дон Амброзио
сообщение Mar 7 2008, 14:28
Сообщение #15


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(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


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post

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

 


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


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