Какая частота для FreeRTOS оптимальна?

FreeRTOS и частота переключенияКогда я начал работать со FreeRTOS, я уперся в следующую магическую строчку в FreeRTOSConfig.h:
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
Это частота переключения между задачами.
Почему 1000? А почему не 10000 или 100? А если у меня STM32F4, настроенный на 168 MHz? Я могу выбрать другую, большую частоту? Ответы были какие-то туманные. Самый адекватный: «если будет слишком часто переключаться, то планировщик задач будет потреблять слишком много временного ресурса». Слишком много — это сколько? Решил разобраться. Под катом — ответ на вопрос «какая частота подходит для данной ситуации?».

UPD: существенное исправление: добавил количество потоков, изменились результаты!


Читать дальше
  • +4
  • 28 июля 2014, 16:47
  • PICC

FreeRTOS (время переключения) v №2

В моей предыдущей попытке написать статью, я чуть чуть неверно проводил тестирование задержки переключения задач. Разобравшись со своими ошибками хочу повторить тестирование.

Читать дальше
  • +5
  • 15 мая 2013, 18:26
  • NiC

WebServer на STM32+ENC28J60+uIP+RTOS

Нужно было мне сделать девайс с веб-сервером. Сам сервер должен просто отдавать файлы и принимать/отправлять UDP, поэтому, использовать сложные стеки мне не хотелось(несмотря на большую производительность STM32). Остановился я однозначно на uIP.
Но в примерах есть только веб-сервер с отдачей файлов, сохраненных в памяти МК, а мне надо было отдавать с карты. Помучался 5 вечеров и вроде что то сделал. В стеке мне очень не понравилось то, что он оптимизирован под ОС, пришлось ставить FreeRTOS.
Теперь о том, что я переделал.

Читать дальше

Документация для CoOS и FreeRTOS на русском.

Вот случайно нагуглил переводы руководств к этим двум славным осям:
wiki.fh-up.ru/wiki/CoOS
wiki.fh-up.ru/index.php?title=FreeRTOS

Авось кому-то и пригодится.

Template для STM32 (IAR+PHYDriver+CMSIS+FreeRTOS)

Если кто не в курсе, то template это шаблон по русски. Зачем он нужен? Ну если вам не охото париться каждый раз при создании нового проекта вытаскивая куски рабочего кода из старых проектов и удаляя всё ненужное, то он может вам пригодиться.

Кроме того в данном шаблоне портирован FreeRTOS 7.1.0 под STM32F103VB + StdPerith Driver 3.5.0 на последний IAR 6.30, в общем всё свежак. Когда я попытался вместе всё это сварганить, то наловил кучу самых разных багов, поэтому если кто не хочет париться и наступать на мои грабли, то можете пользоваться готовым без проблем.

Итак шаблон включает в себя:
— демо проект под IAR 6.30 С/С++ для STM32F103VB
— CMSIS library
— StdPeriph Driver STM32F10xx V3.5.0
— FreeRTOS 7.1.0

Не знаю как тут прикреплять файлы в .rar, тогда вот ссылки
Скачать можно отсюда
Исходники просмотреть можно здесь
Или просто зайти сюда, вполне вероятно что template я буду обновлять со временем.

STM32 + uIP + enc28j60

Долго облизывался на подключение МК к Ethernet, ходил вокруг цикла статей Lifelover'a, и решил попробовать. Но как в том анекдоте «не в лото, а в покер, не Волгу, а сто рублей и не выиграл, а проиграл» отличия от проекта Lifelover'a будут следующие:

  • камень stm32f103v, флеша у которого аж 512к. Меньше 64к у STM32 — редкость, что не может не радовать
  • tcp стек решил взять готовый, в частности uIP. Пробовал стек от Lifelover'a, но там много AVR-овских особенностей — раздельная адресация как минимум. В итоге запустил, погонял, но решил все-таки перейти на стандартный стек.
  • ОС, естественно, FreeRTOS,
  • Ну а Ethernet-контроллер все тот же enc28j60, подключенный через SPI

В этой статье мы соберем минимальное приложение, которое висит на порту 1000 и что-то там пишет.



Читать дальше

STM32 + FreeRTOS

Про использование FreeRTOS есть достаточно много материалов, подробно описывающих работу с задачами, семафорами и очередями. Поскольку у нас блог посвящен STM32, то расскажу про минимально необходимые телодвижения, чтобы запустить эту ОС.


Читать дальше

Трудности перевода

Только закончил перевод для второго примера работы с STM32F4-Discovery от www.emcu.it, но учитывая что в данном примере рассказывается про работу с ОСРВ, а я с этой темой, к сожалению, не на «ТЫ» и дабы избежать не только грамматических, но и смысловых ошибок, решил выложить pdf'ку на суд сообщества, до официального релиза. Готов к практически любой критике.
P.S. опыт письменного перевода весьма не легкое дело, как казалось вначале, но тем ни менее всем советую!
  • 0
  • 16 января 2012, 14:44
  • Sheld
  • 1

FreeRTOS – определяем среднюю загрузку ядра микропроцессора (CPU utilization)



В одном из проектов на базе FreeRTOS появилась необходимость определить: на сколько, в среднем, загружено ядро МП. Конечно, для систем реального времени более критичным является показатель пиковой загрузки, но знать «среднюю температуру по больнице» иногда тоже полезно.



Читать дальше
  • +2
  • 21 октября 2011, 14:56
  • e_mc2