Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ищется официально бесплатная RTOS для PIC32
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Ruslan1
Здравствуйте!

Если тема уже обсуждалась, пните меня сразу в нужную сторону.

Есть новый проект, где есть вроде бы мощное железо (PIC32, то есть MIPS32 M4K ядро, много ROM и RAM). Функционал несложный, но разношерстный и руки чешутся прикрутить это все в виде отдельный задач многозадачки (кнопки, дисплейчик, внешние устройства хранения, несколько измериловок иногда даже с независимыми хардверными интерфейсами и т.п.).
В активе имею опыт серьезного использования микриумовского юкоса (с ихней же графикой) на атмелевском ARM9, впечатления самые лучшие остались. Но тут засада в том, что коммерческие RTOS очень сильно не приветствуются, скажут мне "пиши совсем без RTOS, нечего морду баловать" и будут правы. Поэтому ищется что-то что можно использовать официально бесплатно.

Озвучу хотелки по пунктам:
1. RTOS с портом для PIC32.
2. официально бесплатная
3. документация на английском или хоть на русском. Помнится, с большим удовольствием Лабросса читал....
4 доступна в исходниках. Несколько раз микриум приходилось под себя править- наверное повесился бы без исходных текстов. Идеал если так и подключается к проекту в виде компилируемых исходников.
5. Нужный функционал- наверное тот который стандартно все RTOSы дают: приоритеты, семафоры, сообщения.... . Встроенная поддержка сложных интерфейсов не нужна, все равно их не хватит, свое писать проще чем в чужом копаться.
6. Похожесть по логике работы на микриум (если есть выбор), я быстрее разберусь.
7. Не экзотика. Надоело быть первопроходимцем там где это не нужно.


На данный момент рассматриваю FreeRTOS, но может быть еще какие-нибудь варианты хорошие есть?
kosyak©
TNKernel - http://www.tnkernel.com/
порт для пиков - http://www.tnkernel.com/port_dsPIC.html
Ruslan1
Цитата(kosyak© @ Jan 18 2011, 20:39) *

Ага, спасибо за совет. Сам после нескольких часов чесания интернета понял что нужно выбирать между FreeRTOS и TNKernel. Теперь надо найти какие-то аргументы в пользу одной из них. Можете чем-то аргументировать, что в TNKernel лучше чем в оппоненте (FreeRTOS)? Мне кажется, что в TNKernel механизмы взаимодействия процессов богаче, но не уверен.
http://www.pic24.ru выглядит как неплохой русскоязычный саппорт для TNK.

Я не понимаю, почему Microchip не говорит ни слова о TNK, хотя FreeRTOS у них в списке рекомендуемых опреационок есть. В то же время на майкрочиповском форуме нашел следующее (обсуждается криво работающий под FreeRTOS аппнот):
Цитата
I have given it a try and gave up. It's hard to get things working with FreeRTOS and once it is working, a lot of functionality one may expect from a mature RTOS is missing.

FreeRTOS does not offer:

Timers: The only timing functionality is to suspend a thread for a number of ticks.
Event flags: Most RTOSes offer event flags which is a powerfull mechanism making application development much easier.
Memory management from ISR's: ISR's are not allowed to allocate a buffer.
Time out: No time outs are offered.

Added to the poor performance and the complex API for me this is no serious alternative.

Why is this RTOS so popular, from a technical perspective it is just not what one may expect so probably some good PR.

и еще, уже про TNK:
Цитата
You might want to take a look at TNKernel. There is a PIC32 port now -- but, it is hidden on the Russian side of the web site. Apparently the English side is not being updated.
The source code is in english.
Still no "Timer", but the Event Flags feature is very handy. You can easily signal periodic tasks from the timer interrupt.


Ну, с таким недостатком TNK, как плохой инглиш саппорт, можно смириться, наоборот лишний повод добится нужности если вдруг к потенциальным противникам попадет sm.gif

Завтра попробую составить табличку сравнения, не могу просто лотерею устраивать, буду думать что не угадал с выбором sm.gif
Цель стоит глобальная- сесть на выбранную RTOS и не сползать с нее хоть годик-другой, таская за собой по разным проектам.
kosyak©
Сам я ФриРТОС не пользовал..сравнивать не могу.
dENIM
блин такая же фигня
только для PIC24
есть исходник работы с RFID в FreeRTOS для кортекса М3
но в свою железку хочу делать на PIC24 + TNKernel, чисто исходя из габаритов
интересно, получится ли портировать код из FreeRTOS на TNKernel rolleyes.gif
ни разу еще такого не делал
kosyak©
Портировать конечно получится. Я думаю что фриртос имеет тот же набор сервисов ОС как и у тнкернел...
andron86
если не ошибаюсь, то во FreeRTOS нет механизма синхронизации через "Event Flags".
zltigo
QUOTE (andron86 @ Jan 19 2011, 11:50) *
если не ошибаюсь, то во FreeRTOS нет механизма синхронизации через "Event Flags".

Там на самом деле есть ТОЛЬКО очень приличный механизм очередей сообщений. Всяки разны семафоры FreeRTOS эмулируются на этом механизме. И как-то так получилось само собой, что я уже лет десять ничем другим кроме очередей не пользуюсь, ибо склонился к мысли, что в прилично продуманной программе сущностей должно минимальное количество. С этой точки зрения TNKernel представляет более полный набор специализированных системных сервисов и ее использование и особенно портирование должно пройти легче. Я уже как-то давно писал, что если-бы на момент выбора операционной системы под ARM TNKernel была доступна, я бы на тот момент опираясь на свой опыт выбрал-бы именно ее. Ибо она более привычна, и более похожа например, на ту-же uCOS. Но она на тот момент обнародована не была и я выбрал FreeRTOS. Потом я в ней признал то, что сейчас мне очень нравится - хороший уровень бескомпромисности в реализации системы, изначально заложенный менеджер памяти,.... Да, это стоит ресурсов как по коду, так по RAM и быстродействию, но как-то меня последнее время погоня за каждым тактом и байтом все меньше привлекать стала. Возможно в этом отношении TNKernel является золотой серединой между FreeRTOS и системами типа scmRTOS.
Да, FreeRTOS за многие годы была заметно под себя подогнана и теперь отличается от авторского варианта, но это, полагаю, произойдет с любой легкой встраиваемой системой. Вопрос на самом деле только в том, что выбрать для отправной точки.
Ruslan1
почти совсем выбрал TNKernel, но может кто-нибудь может подсказать:
1. Документация. Где брать актуальную документацию? с самим ядром все ясно, есть свежие версии в свободном доступе, а вот документацию нашел только 2006 года (tnkernel-user-guide-2-3.pdf). Может быть автор ее продает? я согласен и купить sm.gif Ну и конечно вопрос по литературе, может уже книжки какие издали про этот TNKernel ?
2. Популярность. Я вижу на электрониксе целый подфорум по freeRTOS, почему такого по TNKernel нет? сильно менее популярна или просто вопросов меньше?
zltigo
QUOTE (Ruslan1 @ Jan 19 2011, 20:21) *
почти совсем выбрал TNKernel, но может кто-нибудь может подсказать:

Ну так напишите Автору, он здешний форумчанин sm.gif
AlexandrY
Цитата(Ruslan1 @ Jan 18 2011, 18:53) *
Есть новый проект, где есть вроде бы мощное железо (PIC32, то есть MIPS32 M4K ядро, много ROM и RAM).


Я бы на вашем месте послал бы это железо и перешел бы на чипы от Freescale. И получил бы даром операционку MQX.
Спокойная жизнь была бы обеспечена еще на десяток проектов вперед.
dENIM
Сейчас возникла необходимость повозиться и с PIC24 и с Coldfire.
Т.е. одновременно буду изучать TNKernel и MQX.
Посмотрим кто жирнее ))
Ruslan1
Цитата(AlexandrY @ Jan 19 2011, 22:15) *
Я бы на вашем месте послал бы это железо и перешел бы на чипы от Freescale. И получил бы даром операционку MQX.
Спокойная жизнь была бы обеспечена еще на десяток проектов вперед.

Это что, выбрать новое семейство чтобы к нему RTOS подошел? sm.gif
Не будем обсуждать железо, я его уже выбрал и надеюсь что скоро плату увижу.
А спокойной жизни выбором железяки не добится, оно как раз часто масштабироваться может: то ног надо больше, то какой экзотический интерфейс.... Ну и точно не хочется изучать и применять RTOS с плохой портируемостью (если я правильно Вас понял, этот MQX для фрискайлов заточен).


Цитата(zltigo @ Jan 19 2011, 19:37) *
Ну так напишите Автору, он здешний форумчанин sm.gif


Написал я ему. Собственно не вижу ничего плохого если эту документацию можно купить, то есть без халявы. Но тут два момента: а есть ли она вообще и если есть, то как автору продать ее более одного раза. Какой-нить NDA подписать можно, но проконтролировать его исполнение а тем более организовать какое-то преследование нерадивых покупателей IMHO совершенно нереально. Вот я и думаю что автор и не писал и не будет это писать, пока сам не захочет или какая-то контора не оплатит ему эту работу. Альтруизм это хорошо, но кушать все равно хочется.....
AlexandrY
Цитата(Ruslan1 @ Jan 20 2011, 19:26) *
Это что, выбрать новое семейство чтобы к нему RTOS подошел? sm.gif
Не будем обсуждать железо, я его уже выбрал и надеюсь что скоро плату увижу.
А спокойной жизни выбором железяки не добится, оно как раз часто масштабироваться может: то ног надо больше, то какой экзотический интерфейс.... Ну и точно не хочется изучать и применять RTOS с плохой портируемостью (если я правильно Вас понял, этот MQX для фрискайлов заточен).


Ну не знаю вашей ситуации точно, поэтому чисто по своей логике скажу.

Софт гораздо сложнее и дольше писать чем делать железо.
Поэтому надо упрощать создание софта. Значит надо гибче смотреть на железо.
Но с другой стороны семейство Kinetis от Freescale гораздо шире чем семейство Microchip-а. Вот там действительно перспективы.

dENIM
Цитата(AlexandrY @ Jan 20 2011, 19:47) *
Но с другой стороны семейство Kinetis от Freescale гораздо шире чем семейство Microchip-а. Вот там действительно перспективы.
он не очень скоро станет популярен у поставщиков
Ruslan1
Цитата(dENIM @ Jan 20 2011, 20:54) *
он не очень скоро станет популярен у поставщиков

Кстати да. На Digi-key это семейство представлено 41-й позицией, но на складе ноль. А это основной поставщик для разработок, быстро,надежно и дешево. то есть для меня это аргумент доставабельности- если у дижикия нету, то это звоночек.
Да и фиг его знает, появилось и пропало. А майкрочип еще ни один камень не бросил, все можно найти. (ну или почти всеsm.gif
Alex B._
Цитата(Ruslan1 @ Jan 20 2011, 20:26) *
Собственно не вижу ничего плохого если эту документацию можно купить, то есть без халявы.

Так а какая вам документация-то нужна? Кроме той, которая есть на
http://www.pic24.ru/doku.php/tnkernel/ref/intro
она актуальна как для PIC24/PIC32, так и для Cortex-M3, отличия все указаны тут:
http://www.pic24.ru/doku.php/tnkernel/mchp_c30_16bit_port

Никакой другой документации нет и не будет
andron86
Цитата(Ruslan1 @ Jan 19 2011, 18:21) *
почти совсем выбрал TNKernel, но может кто-нибудь может подсказать:
1. Документация. Где брать актуальную документацию? с самим ядром все ясно, есть свежие версии в свободном доступе, а вот документацию нашел только 2006 года (tnkernel-user-guide-2-3.pdf). Может быть автор ее продает? я согласен и купить sm.gif Ну и конечно вопрос по литературе, может уже книжки какие издали про этот TNKernel ?
2. Популярность. Я вижу на электрониксе целый подфорум по freeRTOS, почему такого по TNKernel нет? сильно менее популярна или просто вопросов меньше?

1. tnkernel-user-guide-2-3.pdf - и этого хватит, исходники открыты. Ну, есть ещё это - кстати, автору респект.
2. Больше портов, больше всякой шелухи.
dENIM
Пробежавшись по диагонали, я так понял там SPI, I2C и прочие наружные органы еще дописывать надо?
Ruslan1
Цитата(Alex B._ @ Jan 23 2011, 01:50) *
Так а какая вам документация-то нужна? Кроме той, которая есть на
http://www.pic24.ru/doku.php/tnkernel/ref/intro
она актуальна как для PIC24/PIC32, так и для Cortex-M3, отличия все указаны тут:
http://www.pic24.ru/doku.php/tnkernel/mchp_c30_16bit_port

Никакой другой документации нет и не будет


Документация на pic24.ru абсолютно самодостаточна, но мне хотелось чего-нить печатаемого. Сварганил я для себе такой файл, вот как раз принтанул и перехожу в горизонтальное рабочее положение на диванчике....
Ruslan1
upload/OS/TNKernel/
выложил на ftp сгенерированный мной файл рускоязычной документации TNKernel_rus_20110124.pdf из того что было на www.pic24.ru, пользуйтесь если кому как мне лень с экрана читать sm.gif
там же выложил и последнюю существующую версию оригинальной англоязычной документации (tnkernel-user-guide-2-3.pdf). В интернете находится за 10 секунд, но вдруг для кого это проблема.

PS. Прочитал. Прослезился. Вот блин люди горы нахаляву переворачивают и новые строят........
PPS. Надеюсь в железе через недельку подергаю, а пока на кошках (тьфу, симуляторах) попробую......

Цитата(dENIM @ Jan 23 2011, 12:24) *
Пробежавшись по диагонали, я так понял там SPI, I2C и прочие наружные органы еще дописывать надо?


Да это же здоровья никакого не хватит, если разработчики кернела будут всю периферию каждого поддерживаемого профессора поддерживать, ну и у каждого программиста свои хотелки по взаимодействию задач. sm.gif
dENIM
разобрался в общем
ниче (ну или почти ниче) дописывать не надо...микрочиповская либа с периферией отлично прикрутилась и работает
Ruslan1
Цитата(dENIM @ Jan 31 2011, 16:42) *
разобрался в общем
ниче (ну или почти ниче) дописывать не надо...микрочиповская либа с периферией отлично прикрутилась и работает


Ага, полезная штука эти библиотеки. Вот как раз смотрю, что там в PIC32 с I2C делается, так в документации в соответствующей главе даже нет рекомендованного/необходимого порядка конфигурирования I2C модуля. Зато в хелпе к периферийной библиотеке все разжевано.
Применительно к использованию этих либов с многозадачкой- все ж просматриваю, чтобы какой-нибудь таймер и прерывания дополнительные они там не влепили скажем для контроля таймаутов - в примерах такого много.
Еще про либу: майкрочиповцы очень сильно(нет, правилнее сказать ОЧЕНЬ СИЛЬНО) поменяли состав по крайней мере I2C библиотек по сравнению с их же pdf-описанием этой же библиотеки трехлетней давности: изменилось все, а не только названия и смысл функций, кое-что удалено. Так что эти библиотеки точно нужно хранить как часть конкретного проекта, а не надеятся потом использовать свеженькую если понадобится перекомпилить через пару лет. (Кстати удалены из библиотеки именно те функции, которые в качестве аргументов таймауты имели, теперь это перекинули на конечного программиста sm.gif

отредактировал 20110131:
извиняюсь, нашел я эти старые функции, в дирректории "legacy"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.