Перейти к содержанию
    

Помогите определиться с RTOS

Доброго времени суток!

Решил в качестве самообразования освоить для себя применение RTOS для embedded.

В приоритете Cortex-M3..возможно M4 в недалеком будущем.

 

Пока есть начальные представления о TNKernel и FreeRTOS - создание задач моргания светодиодами. Наверное между ними и сводится выбор в конечном счете.

Задачи наверное типовые - опрос периферии, ethernet.

Субъективно TNKernel понравилась гораздо больше, но смущает только один нюанс - не слишком широкое распространение. Боюсь остаться один на один с возникающими граблями.

 

Наверное вопрос больше религиозный, но все же...что скажет купечество?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Субъективно TNKernel понравилась гораздо больше, но смущает только один нюанс - не слишком широкое распространение. Боюсь остаться один на один с возникающими граблями.

TNKernel используют достаточно много народа, так что не переживайте на счет распространения. Сам сижу на FreeRTOS - выбирал по доступности обучающих материалов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Субъективно TNKernel понравилась гораздо больше,

Добрый день! Понимаю, что спрашиваю Вас о субъективном, но все же... расскажите, пожалуйста, чем Вам понравилась TNKernel? Дело в том, что я тоже стою на грани выбора между этими двумя ОС... Обе мощные, серьезные системы... Ничего не знаю об одной из нихж такого, что бы сдвинуло весы из равновесия...

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день! Понимаю, что спрашиваю Вас о субъективном, но все же... расскажите, пожалуйста, чем Вам понравилась TNKernel?

День добрый!

Субъективно - стиль написания TNKernel понравился больше. Меньше файлов ядра, пример мигания светодиодом запустил сразу. При этом даже предупреждений компилятор не выдал. С FreeRTOS пытался начинать ранее. Там и файлов не в пример больше и предупреждений было уйма насколько помню.

TNKernel видится мне более легковесной по сравнению с FreeRTOS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Crossworks tasking library (CTL) - крайне просто, логично и красиво написана. исходники есть и легко собираются. примеры понятны. справка понятная и с примерами. есть всё для счастья.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Больше года использую TNKernel под ARM7, полгода под Cortex M3. Использовал все фичи, кроме выделения буферов памяти. Граблей пока не обнаружено. Недавно начал писать набор макросов для быстрого создания задач, семафоров, событий с наиболее часто используемым набором параметров. С данными макросами легко можно будет перейти на другую ОС в случае необходимости.

На тот момент, когда стояла такая же проблема выбора, у FreeRTOS не было примеров для ARM7 под IAR, у TNKernel они были и запустились сразу и без проблем - это и стало причиной выбора. Под Cortex M3 пришлось немного допилить проект для совместного использования с последней StdPeriferialLibrary и IAR 6.21. Еще где-то на форуме видел бенчмарк по переключению контекста для различных ОС - TNKernel в числе лидеров. TN-Net пока не пробовал, пока экспериментирую с LwIP.

Изменено пользователем EugenyAM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Больше года использую TNKernel под ARM7, полгода под Cortex M3. Использовал все фичи,

Добрый день!

Можно спросить? Есть ли возможность динамического создания и удаления задач в этой ОС? Если да, то это делается во флеши, или можно и к ОЗУ прикрутить (как во взрослых системах)?

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли возможность динамического создания и удаления задач в этой ОС? Если да, то это делается во флеши, или можно и к ОЗУ прикрутить (как во взрослых системах)?

 

Задача использует для своей работы две области ОЗУ - структуру TCB и стек задачи, а также, собствено функцию задачи ,которая размещается во флеш при компиляции. Указатели на эти три области памяти передаются функции tn_task_create.

Теоретически никто не мешает выделить память под TCB и стек динамически перед вызовом функции создания задачи. Если куча находится не на стеке, (в IAR вроде бы она лежит в отдельном сегменте) - все должно сработать.

Если речь идет о загрузке кода функции в ОЗУ и объявления его задачей - тоже подводных камней не видно (хотя сам не проверял). В описании функции задачи отсутствуют какие-либо специальные макросы и определения - она не отличается от обычной Си-функции void func(void). Для ее работы должно выполняться два условия - бесконечный цикл и хотя-бы один системный вызов внутри него (например tn_task_sleep или tn_event_wait) - без него программа зависает.

В любой момент задачу можно остановить и удалить из списка. Задача может быть остановлена и удалена как другой задачей (tn_task_terminate, tn_task_delete), так и сама собой (tn_task_exit, если нужно, с опцией TN_EXIT_AND_DELETE_TASK). Имхо, все сделано "по взрослому, но без излишеств".

Насколько я помню, в uCOS/II задачу можно было остановить только из самой себя.

Изменено пользователем EugenyAM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

Можно спросить? Есть ли возможность динамического создания и удаления задач в этой ОС?

А что это вам даст? Какую цель вы преследуете, стремясь к использованию динамического создания/удаления задач?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что это вам даст? Какую цель вы преследуете, стремясь к использованию динамического создания/удаления задач?

Пока только академический интерес...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

делаю на TNKernel под М3. в дальнейшем планирую постоянно использовать, радует что есть GUI, хотя его пока не смотрел но в дальнейшем понадобится, как раз плату развожу под это дело. выбирал тоже между freertos и TNKernel - последняя больше понравилась наглядностью понятностью и скоростью. на www.pic24.ru очень хорошая документация на русском и примеры

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

делаю на TNKernel под М3. в дальнейшем планирую постоянно использовать, радует что есть GUI, хотя его пока не смотрел но в дальнейшем понадобится, как раз плату развожу под это дело. выбирал тоже между freertos и TNKernel - последняя больше понравилась наглядностью понятностью и скоростью. на www.pic24.ru очень хорошая документация на русском и примеры

Я остановился на FreeRTOS почти случайно, потом с удовольствием узнал, что команда lwIP очень дружит с FreeRTOS и это правда полезно.

Не могу сказать лучше ли она или хуже, чем TNKernel, но в целом пользоваться просто, и задачи динамически создавать и удалять можно и таймеры есть и т д

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

делаю на TNKernel под М3. в дальнейшем планирую постоянно использовать, радует что есть GUI

 

Добрый день! КМК, фича довольно бесполезная для такого класса мк. Я на скриншоты этого GUI смотрел мельком - без слез не взглянешь. Если нужен GUI, Qt мне очень нравится в этом плане, но это уже другая весовая категория.

 

Я остановился на FreeRTOS почти случайно, потом с удовольствием узнал, что команда lwIP очень дружит с FreeRTOS и это правда полезно.

 

Да, радует еще и что аппноты у СТ тоже основаны на FreeRTOS+LwIP. Запустил у себя на плате Lwip 1.4.0 и FreeRTOS 7.1.0. Теперь осталось подружить их вместе :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Недавно встал вопрос об операционке, выбрал ChibiOS. До этого операционками не пользовался, да и ARM только начал осваивать.

Взлетел за пару дней. Изначально казалось, что все супер документировано и описание уж очень привлекло. После реальной работы выяснил, что иной раз надо таки копаться в коде, чтобы понять что и как. Думаю это справедливо для всех OPEN проектов, так как разработчики думают раз код есть, зачем человеческую документацию писать. В принципе пока доволен, но волнует слабая распространенность, боюсь со сложной проблемой придется в разработчику обращаться, надеюсь не откажет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...