Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вышла FreeRTOS V4.0.5 ... 8.2.3
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > FreeRTOS
Страницы: 1, 2, 3, 4
Evgeny_CD
http://www.freertos.org/

Changes between V4.0.4 and V4.0.5 released August 13, 2006
http://www.freertos.org/History.txt

Доросли до коммерческой версии - FreeRTOS-pro ($650 USD per developer seat)
http://www.highintegritysystems.com/freertospro.html

Исходники
http://www.freertos.org/a00104.html

С лицензией все в порядке
http://www.freertos.org/a00114.html

Лист, форум
http://www.freertos.org/a00115.html

Дока качественная. В частности, подробно расписана архитектура ОСи и ее имплементация, разжеваны примеры и пр.
http://www.freertos.org/implementation/index.html

Real Time Application Design Using FreeRTOS in small embedded systems
http://www.freertos.org/tutorial/index.html

Motorola/Freescale ColdFire RTOS port - очень интересно в свете моих последних изысканий
http://www.freertos.org/portcoldfire.html

Наиболее интересные фичи
* both preemptive and cooperative options.
* supports both tasks and co-routines.

Вопросы:

1. Интересно, в чем она проигрывает uCOS?
2. Супергибкость ОСи - это хорошо (от PIC до ColdFire и x86). Но не накладывает ли это какие-нибудь ограничения на структуру ОСи?
3. Интересно мнение о FreeRTOS от юзавших ее в реальных проектах.
zltigo
Цитата(Evgeny_CD @ Aug 20 2006, 16:16) *
Интересно, в чем она проигрывает uCOS?

Ни в чем, кроме наличия большого количества накопившихся за время ее жизни наворотов и портов. У FreeRTOS более 'добротное' (ядро достойное более мощных контроллеров) без искуственных ограничений 64 задачи - 64 приоритета (про нынешние _заплатки_ uCOS я в курсе) и разных простеньких решений (типа прокрутки своего таймера для каждой из задач) хороших опять таки для минималистичных ядрышек. При этом у uCOS сильный перекос между "старинным" ядром и многочисленными поздними функциональными наворотами. FreeRTOS как раз при аккуратном, гибком и потенциально более развиваемом ядре штатным функционалом обделена - даже семафоры на очередях построены. Я вообще столкнулся с uCOS в начале 90х (когда встал вопрос о системке под 186) и был поражен ее кривизной и шаманским портом под x86. С тех пор, конечно прошло много лет и "студенческий курсовик" изрядно обтесали, народ нанес разных примочек разного качества и степени полезности, написаны книжки и учебники, масса портов, но "осадок остался" :-). Когда на ARM переходил текущую версию uCOS рассматривал только из общеобразовательного интереса.
Evgeny_CD
Цитата(zltigo @ Aug 20 2006, 19:51) *
У FreeRTOS более 'добротное' (ядро достойное более мощных контроллеров) без искуственных ограничений 64 задачи - 64 приоритета (про нынешние _заплатки_ uCOS я в курсе) и разных простеньких решений (типа прокрутки своего таймера для каждой из задач) хороших опять таки для минималистичных ядрышек. При этом у uCOS сильный перекос между "старинным" ядром и многочисленными поздними функциональными наворотами. FreeRTOS как раз при аккуратном, гибком и потенциально более развиваемом ядре штатным функционалом обделена - даже семафоры на очередях построены.
Спасибо за отзыв - Ваше мнение ценно.

Т.е. получается, что автор FreeRTOS решил идти "длинным путем" - изначально заложил хорошее ядро (при минимуме сервисов ОСи), вылизал его за несколько лет, накопил необходимый "список фич", и теперь потихоньку движется всторону коммерциализации этого дела на основе накопленного опыта и знаний. Уважаю!
klen
Кроме всего перечисленного для меня вжно еще одно качество - "изгибаймость": "ненравятся синие трусики..?? НЕ НАДЕВАЙ!!" - тоесть дописывай свою функциональность к шедуллеру какая нужна тебе. Вот как раз щас думаю на счет быстрых сигналов, как их нарисовать стоб они давали всегда раное количество тактов между вызовом в одной задачи и разблокировки другой и работали быстро. А то синхронизация задач для меня как воздух.
Опять же приятно жить когда никому ничего не должен.
zltigo
Сегодня 4.10 появился
Цитата
FreeRTOS V4.1.0 is now available. This includes some changes to the queue
send and receive functions to make their behaviour more intuitive. This
update is partially due to the work on our new sister project -
http://www.SafeRTOS.com.
Doka
Цитата(Evgeny_CD @ Aug 20 2006, 17:16) *
Дока качественная. В частности, подробно расписана архитектура ОСи и ее имплементация, разжеваны примеры и пр.
http://www.freertos.org/implementation/index.html

нда. .а вот ПДФки похоже нет :-/
всеже с Нardcopy НandBook работать удобнее.. Это расстроило..
..или может я плохо искал?
Evgeny_CD
Цитата(Doka @ Aug 29 2006, 00:50) *
нда. .а вот ПДФки похоже нет :-/
всеже с Нardcopy НandBook работать удобнее.. Это расстроило..
..или может я плохо искал?
Там chm вроде как предлагают купить баксов за 20 или 25. Это не есть здорово, но обвинить автора в жадности лично у меня язык не поворачивается.

Хотя в последнее время у него наметилась тенденция к коммерциализации ОСи, один проект http://www.SafeRTOS.com. чего стоит.

Если автора не увлечет "темная сторона силы", то проекту это только на пользу пойдет.
zltigo
Цитата(Doka @ Aug 28 2006, 23:50) *
нда. .а вот ПДФки похоже нет :-/
всеже с Нardcopy НandBook работать удобнее.. Это расстроило..
..или может я плохо искал?

PDF я как-то делал (для последней 3.xx ветки) и здесь выкладывал.
Раздельчик с cproutines можно отдельно приложить.


Цитата(Evgeny_CD @ Aug 29 2006, 00:17) *
Если автора не увлечет "темная сторона силы", то проекту это только на пользу пойдет.

С другой стороны последний патч "оттуда" пришел - значит накопали там. Думаю, что FreeRTOS будет получать все достижения из той ветки, иначе на ту ветку особо никто и не позарится. А присвоение другого имени коммерческому варианту было неизбежно из-за вызывающего имени основного.
spf
Через две недели с небольшим уже 4.1.0 ...
zltigo
FreeRTOS cегодня дорос до 4.2.0 - две заплаточки и правочка в подарок от SafeRTOS
zltigo
4.2.1 ничего не поменялось, но добавился порт на AVR32
zltigo
4.3.0 появился. Портов добавили и для некоторых CAN и Ethernet.
В ядре никаких изменений.
spf
Цитата(zltigo @ Jun 6 2007, 02:00) *
Портов добавили и для некоторых CAN и Ethernet.

Подробнее -- History
zltigo
4.3.1 объявился:
Added STMicroelectronics STM32 Cortex-M3 demo application.
Updated ustdlib.c for the GCC LM3S6965 demo.
zltigo
4.4.0
Changes between V4.4.0 and V4.3.1 released July 31, 2007

+ Added AVR32 UC3B demo application.
+ Updated AVR32 UC3A port and demo applications.
+ Added IAR lwIP demo for AVR32 UC3A.
+ Updated listGET_OWNER_OF_NEXT_ENTRY() to assist compiler optimisation
(thanks Niu Yong for making the suggestion).
+ Added xTaskGetSchedulerState() API function.
+ BUG FIX: Corrected behaviour when tasks that are blocked indefinitely
have their block time adjusted (within xQueueSend() and xQueueReceive()),
and are the subject of a call the vTaskResume() when they are not
actually in the Suspended state (thanks Dan Searles for reporting the
issues).
zltigo
V4.5.0 появилась на CVS

+ Added xQueueSendToBack().
This does the same as xQueueSend().

+ Added xQueueSendToFront().
Allows data to be placed into the front of a queue. This is for high priority data.

+ Added xQueuePeek().
Allows an item to be retrieved from a queue without actually removing the item from the queue.

+ Added Mutex type semaphores.
These are very similar to the existing binary semaphores but include a priority inheritance mechanism. See the semphr.h header file for the macro xSemaphoreCreateMutex() for usage information. configUSE_MUTEXES must be set to 1 in FreeRTOSConfig.h to use this feature.

+ Added demo source file GenQTest.c
This demonstrates the usage of the above new features. The Demo/PC project for OpenWatcom has been updated to include the new demo.

These files should not yet be considered complete but I am not as yet aware of any issues they contain. Feedback is appreciated.

-----------------------------------------------------------------------------------------------
Посмотрел. Кроме вышеупомянутого произведена чистка кода под оптимизацию, выброшены пару давно практически ненужных (года полтора назад писал - реакции не последовало еще-бы блоки памяти под MCB и стек объединил- пустой расход RAM) переменных в том числе и из TCB. Warnings, скорее всего, будет поменьше при компиляции. Местами ошибки типа xQueueSendToFromFromISR() вместо
xQueueSendToFrontFromISR()
Николай Z
Цитата(zltigo @ Aug 20 2006, 19:51) *
При этом у uCOS сильный перекос между "старинным" ядром и многочисленными поздними функциональными наворотами. FreeRTOS как раз при аккуратном, гибком и потенциально более развиваемом ядре штатным функционалом обделена ....


А можно поподробнее - в чем состоит "старинность" ядра? Я вообще-то ничего такого особенно модернового и в ядре RTOS (и RTEMS и uLinux-ов всяких) как-то не замечаю... Все ведь это достаточно давно проработанные идеи из еще "доюниксовской" эпохи 70-х годов. Другое дело, что в микроконтроллеры они были портированы достаточно недавно.

RTOS мне нравится не какой-то там новизно - мне кажется что ее там просто нет, а как раз продуманной и экономной реализацией необходимого минимума классических примитивов ОС.

Потому - хочу понять - а что собственно считается новым в его реализации?
zltigo
Цитата(Николай Z @ Aug 24 2007, 11:03) *
А можно поподробнее - в чем состоит "старинность" ядра?

Почитайте - увидите, что там все пляшет от максимально примиитивного ядра с ограниченным количеством задач имеющим разные приоритеты. Дальше украшения,улучшения...
Цитата
Потому - хочу понять - а что собственно считается новым в его реализации?

Я не писал про 'новое' в FreeRTOS я писал про "старинное" в uCOS, что совсем не одно и то-же.
Николай Z
Цитата(zltigo @ Aug 24 2007, 12:55) *
Почитайте - увидите, что там все пляшет от максимально примиитивного ядра с ограниченным количеством задач имеющим разные приоритеты. Дальше украшения,улучшения...

Я не писал про 'новое' в FreeRTOS я писал про "старинное" в uCOS, что совсем не одно и то-же.


Ну когда говорят про два предмета и один из них называют старинным - то второй как бы по дефолту - современный... Видимо тут уместнее говрить просто от том, что uCOS просто плохо или непродуманно реализована. Вникать в нее - мне большшого смысла нет ибо нет надобности, а для самообразования лучше подходят более поздние реализации - так что я Вам поверю на слово, а проверять буду лишь тогда - когда приспичит роеально.
Alechek
Цитата(zltigo @ Aug 23 2007, 01:40) *
V4.5.0 появилась на CVS

А можно расшифровать что за CVS и где его искать?
на freertos.org версия 4.4.0...
zltigo
Цитата(Alechek @ Aug 27 2007, 15:42) *
А можно расшифровать что за CVS и где его искать?

Тьфу, SVN, конечно.
http://freertos.svn.sourceforge.net/viewvc/freertos/
Alechek
Цитата
Тьфу, SVN, конечно.

Поискал, все равно там не нашел нигде 4.5.0
и в файле GenQTest.c упоминание о 4.4.0.
Решил начать осваивать ОС, хотелось бы с последней версии.
zltigo
Цитата(Alechek @ Aug 28 2007, 06:44) *
Поискал, все равно там не нашел нигде 4.5.0

А там и нет отдельно лежащего архива с надписью "4.5.0" - там отдельные патчи, которые после обкатки сольются с текущей версией и станут 4.5.0ю
Цитата
Решил начать осваивать ОС, хотелось бы с последней версии.

Начните с текущей. Для разборок ее более, чем достаточно. Потом подоспеет и официальный релиз.
Alechek
Скачал API c сайта, скомпилил в chm
выложил на фтп
zltigo
Цитата(Alechek @ Aug 28 2007, 13:43) *
Скачал API c сайта, скомпилил в chm
выложил на фтп

Я когда-то для 3.xx тоже в PDF перегонял smile.gif и в форуме выложено. Только, похоже Вы несколько поторопились - в 4.5.0 API претерпит изменения.
zltigo
Цитата(Alechek @ Aug 28 2007, 13:43) *
выложил на фтп

С трех попыток скачивания получен неизменно битый (без заголовка) файл sad.gif
Проверьте от себя.
Alechek
Цитата
олько, похоже Вы несколько поторопились - в 4.5.0 API претерпит изменения.

Ничего, качалка настроена. Перезалить поблем не будет! cool.gif

Цитата(zltigo @ Aug 29 2007, 17:18) *
С трех попыток скачивания получен неизменно битый (без заголовка) файл sad.gif
Проверьте от себя.

Попробовал слить обратно - все нормально, fc /b различий не находит. laughing.gif
Заливал-скачивал через FAR. Через Оперу тоже все ОК
zltigo
Цитата(Alechek @ Aug 30 2007, 08:17) *
Попробовал слить обратно - все нормально

Да уж sad.gif у меня проблемы после последнего переезда FTP сервера sad.gif и со скоростью и главглн с содержимым, но с трех раз обычно получалось sad.gif. Продолжу....
ivstech
Скачал FreeRTOS. Оказывается, там нет файловой системы. Какие трудности могут возникнуть при "прикручивании" к ней, например, efsl ? Процессор LPC2148
zltigo
Цитата(ivstech @ Aug 30 2007, 14:02) *
Оказывается, там нет файловой системы.

Ужас smile.gif. А зачем она в ядре системы?
Цитата
Какие трудности могут возникнуть...

Никаких. Я конкретно FatFs c мелкими правками использую (кстати на днях FatFs обновился до 0.05).
deadman
Веселая ОСь.
Пришлось вернуться к старому Keil.
Начинаю применять. Посмотрим, что получится.
Пока могу сказать, что надо очень аккуратно с указателями: стеки у задач свои, можно запросто нарваться на DAbt_Handler и долго искать хвосты.
zltigo
Цитата(deadman @ Sep 13 2007, 12:19) *
Веселая ОСь.

??
Цитата
Пока могу сказать, что надо очень аккуратно с указателями: стеки у задач свои, можно запросто нарваться на DAbt_Handler и долго искать хвосты.

А что, бывают системы с вытесняющей многозадачностью у которых "стеки задач НЕ свои" smile.gif или в случае если системы никакой нет, то с указателями можно обращаться как попало smile.gif и без последствий???
deadman
С указателями аккуратно обращаться надо всегда. А в случае с freeRTOS ОЧЕНЬ аккуратно.
Причину вылета по Dabt искать в чужих исходниках "весело", особенно если видишь эту ОС впервые.
Не сразу доходит что сам где-то нашалил. smile.gif
zltigo
Цитата(deadman @ Sep 13 2007, 13:30) *
Не сразу доходит что сам где-то нашалил. smile.gif

Ну с этим все просто - примите, как аксимому, что нашалили именно Вы сами. Вероятность этого несоразмерима с вероятностями "шалостей" достаточно обкатанной системы и тем более компилятора...
deadman
Просто столкнулся с проблемой описанной в http://electronix.ru/forum/index.php?showtopic=33479
У меня LPC2119, плата своя. Довольно часто вылетал на DAbt & PAbt, судя по всему из-за MAM`а, т.к. скорость скинул - заработало.
alexander55
Цитата(deadman @ Sep 14 2007, 10:18) *
Просто столкнулся с проблемой описанной в http://electronix.ru/forum/index.php?showtopic=33479
У меня LPC2119, плата своя. Довольно часто вылетал на DAbt & PAbt, судя по всему из-за MAM`а, т.к. скорость скинул - заработало.

А какая разница, есть колесо или нет. Это проблема программирования железа, а не оси.
zltigo
Цитата(deadman @ Sep 14 2007, 09:18) *
Просто столкнулся с проблемой описанной..
...
У меня LPC2119, плата своя.

Ага "столкнулся" - ну не имеет описанная проблема отношения к LPC2119.
Цитата
Довольно часто вылетал на DAbt & PAbt, судя по всему из-за MAM`а, т.к. скорость скинул - заработало.

Ищите ошибки. У себя ищите.
zltigo
4.5.0 официально зарелизился. Сегодня дошли руки посмотреть - все осталось, как в депозитории. Все очень небрежно реализовано в виде заплаток sad.gif, опечатки, остуствие документации. Что-то странное. Видимо придется при необходимости делать по другому. Пока превнесенные наработки у себя использовать не буду sad.gif.
zltigo
4.6.0 объявился. Ну максимум на 4.5.1 тянет. Изменения только в GCC порте, дабы глюки от использования разных компиляторов минимизировать.
Ну и для 8/16 бит портов ошибочку в queue.h тихонечко подчистили. Все sad.gif.
zltigo
Собственно вот:
http://www.freertos.org/port_PIC32_MIPS_MK4.html

P.S.
Дурацкая манера менять номера версии при добавлении портов sad.gif
Oldring
А кстати, в связи с набором этой операционкой популярности поясните мне, пожалуйста, такой момент. Есть ли в FreeRTOS средства борьбы с priority inversion, или RT в названии для красного словца? Насколько я понял, только в этой самой последней версии появились мьютексы с неким наследованием приоритета, а до этого ничего не было...
zltigo
Цитата(Oldring @ Nov 6 2007, 12:05) *
Насколько я понял, только в этой самой последней версии появились мьютексы с неким наследованием приоритета, а до этого ничего не было...

В 4.6.0
Рассуждения о нюансах реализации поведения были инициирована Автором на форуме.
zltigo
4.7.0 объявилась. Несколько облегченные очереди в качестве альтернативы.
http://www.freertos.org/temp.html
Лобовые счетные семафоры. Первоисточник:
Changes between V4.6.1 and V4.7.0 released December 6, 2007

+ Introduced the counting semaphore macros and demo source files. The
Open Watcom PC project has been updated to include the new demo. See
the online documentation for more information.
+ Introduced the 'alternative' queue handling API and demo source files.
The Open Watcom PC project has been updated to include the new demo
source files. See the online documentation for more information.
+ Added AT91SAM7X Eclipse demo project.
+ Added the STM32 primer demo project for the GCC compiler and Ride IDE.
+ Removed the .lock files that were mistakenly included in the V4.6.1
eclipse workspaces.

Для раздумий над альтернативными семафорами рекомендую посмотреть сюда
http://freertos.narod.ru/semaphore.zip
zltigo
4.7.1

+ PIC32 (MIPS M4K based 32bit microcontroller) is now a fully supported
port.
+ All IAR Embedded Workbench demos for ARM targets are now saved in the
Embedded Workbench V5.x format. Embedded Workbench V4.x users can still
obtain the FreeRTOS.org V4.7.0 code from SourceForge, in which the old
format is used.
+ Mutexes with priority inheritance have been implemented to compliment the
existing binary semaphore features.
+ New recursive semaphore (mutex) functionality has been added.
+ New counting semaphore functionality has also been added.
+ Queues are now more flexible with the addition of new xQueueSendToFront(),
xQueueSendToBack() and xQueuePeek() API functions.
+ More support for Eclipse based projects.
Chudik
Цитата(Alechek @ Aug 28 2007, 02:43) *
Скачал API c сайта, скомпилил в chm
выложил на фтп

А куда именно. В разделе OS не увидел директории FreeRTOS sad.gif
Можно более полный путь, нежели просто фтп? wink.gif
zltigo
Цитата(Chudik @ Feb 23 2008, 19:34) *
А куда именно.

Да там уже достаточно старый документ, даже не 4.5 и сделан не слишком аккуратно. Пора заново сдирать.

Добавилось для 4.7.2:
+ Added Fujitsu MB91460 port and demo.
+ Added Fujitsu MB96340 port and demo.
+ Tidied up the capitalisation of include files to facilitate builds on
Linux hosts.
+ Removed some redundant casting that was generating warnings - but was
included to remove warnings on other compilers.
Chudik
Цитата(zltigo @ Feb 23 2008, 14:29) *
Да там уже достаточно старый документ, даже не 4.5 и сделан не слишком аккуратно. Пора заново сдирать.

Ну... может кто-нибудь сможет сделать. blush.gif
zltigo
Цитата(Chudik @ Feb 24 2008, 10:30) *
Ну... может кто-нибудь сможет сделать. blush.gif

Ну так, если Вам нужно, то и скачайте сайт, отредактируйте, индексируйте и распечатайте на PDF принтер smile.gif. Работа дурная, но не сложная можно сделать в качестве отдыха. Когда-то делал, когда нужно было совсем инертный народ направить на путь истинный smile.gif. А а общем-то там достаточно самодокументированные *.h файлы, а все остальное разок в интернете прочитать хватит.
Alechek
Цитата(zltigo @ Feb 24 2008, 03:29) *
Да там уже достаточно старый документ, даже не 4.5 и сделан не слишком аккуратно. Пора заново сдирать.

Надо? Сделаем! smile.gif
upload/OS/FreeRTOS/FreeRTOS_API(site)_4.7.2.chm

А насчет аккуратности это по большему счеты не ко мне..
За 35$ как я понимаю, можно получить то же самое smile.gif
Цитата
FreeRTOS Documentation
You can purchase an exact copy of this entire WEB site as a single Windows help file (.chm file) - a convenient way of viewing all the documentation on your local computer.
zltigo
Цитата(Alechek @ Feb 26 2008, 10:56) *
А насчет аккуратности это по большему счеты не ко мне..

Извините, это я не в смысле того, что делать было не надо! Спасибо, может пригодиться!
Что там у Автора - не знаю, но просто копия сайта на нормальный документ не особо тянет sad.gif - много лишнего, но ни оглавления нормального, ни поиска, ...... Когда делал PDF пришлось довольно много муторной работы делать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.