|
|
  |
RTOS для MSP430F4xx, Проблема Выбора |
|
|
|
Mar 4 2008, 10:29
|

Местный
  
Группа: Свой
Сообщений: 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.
ЗЫ: это не лень, а претензия на "только дурак учится на своих ошибках, продвинутые же люди - на чужих".
|
|
|
|
|
Mar 4 2008, 12:50
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Mar 4 2008, 15:15
|

фанат дивана
     
Группа: Свой
Сообщений: 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 до сих пор не поддерживает С++ - стартап и библиотека для этого не сделаны. Но возможно я отстал от жизни.  Надо попробовать... Судя по этому посту, есть шанс что заработает.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Mar 4 2008, 15:39
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Mar 4 2008, 21:30
|

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

|
Цитата(Andy Mozzhevilov @ Mar 4 2008, 13:50)  Уже не помню кто точно пел Б.Титомир или С.Лемох: "Делай как я!" Позвольте вопрос: в чем изюминка? Цитата(jorikdima @ Mar 4 2008, 16:32)  использую scmRTOS... просто потому что использую. Особо не выбирал, нужно было что то простое и небольшое. К тому же авторы тут недалеко  А вот это уже интересно! Будем изучать! В свое время даже в руках не держал MSP430, просто под руки случайно подвернулся FAQ от "Сергей Борщ" и "понеслась душа в рай", а тут Цитата(Сергей Борщ @ Mar 4 2008, 17:39)  Смотря какой порт - если ARM, то ко мне, если фуджик - к spf, если avr-gcc - то к ReAl, остальные - к dxp. - уважаемые все люди.
|
|
|
|
|
Mar 5 2008, 03:55
|

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

|
Цитата(shasik @ Mar 5 2008, 02:30)  Уже не помню кто точно пел Б.Титомир или С.Лемох: "Делай как я!" Позвольте вопрос: в чем изюминка?  Самое интересное, что я ее не использую (во всяком случае пока). Но исходные данные, которые вы привели в первом посте: Цитата 5. Хотелось бы получить стабильную RTOS c "хорошой" реакцией (посмотрел описания некоторых RTOS - с их скоростью переключения между задачами и навороченностью, чтобы обеспечить необходимую скорость реакции придется разгоняться как минимум до 8 МГц, чего не очень хочется). Хотелось бы, конечно, оперировать более конкретными понятиями (например, переключение контекста за ххх мкс), а не просто с "хорошей" реакцией, или "придется разгонять как минимум до 8 МГц" (а сейчас то сколько?). Но у этой RTOS, например для ARM, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS. То есть возможно она и подойдет. Ну и уже привели другие аргументы. И документация у нее ра русском, к тому же.
--------------------
Пасу котов...
|
|
|
|
|
Mar 5 2008, 10:24
|

Местный
  
Группа: Свой
Сообщений: 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 - это разные подхода к программированию. Как говориться: "Что дозволено Юпитеру, не разрешено быку"
|
|
|
|
|
Mar 5 2008, 13:01
|

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

|
Цитата(spf @ Mar 5 2008, 13:54)  У этой RTOS, для всех представленных портов, время переключения контекста между задачами примерно в 2 раз быстрее, чем у uCOS а что конкретно принимается за "время переключения контекста"? имхо, переключение контекста - это сохранение текущего контекста в стек, переключения указателя стека и восстановление контекста другой задачи. У любой ртос эти действия будут занимать одинаковое время, обычно вытесняющая задача уже известна. А вот время между возникновением прерывания, освобождением семафора в прерывании и входом в задачу, которая ожидает семафор - вот тут уже можно меряться. Вы это имели в виду?
|
|
|
|
|
Mar 7 2008, 14:28
|

Местный
  
Группа: Участник*
Сообщений: 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
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|