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

Сравнение RTOS для STM32 по времени реакции

Приветствую всех. Для проекта выбираю RTOS с вытесняющей многозадачностью. Основной критерий выбора - скорость реакции. Не хочется пробовать друг за другом все популярные RTOS для замера времени реакции, т.к. это займёт какое-то время. Может существует уже готовое сравнение времени реакции различных RTOS на STM32 (не важно для какого семейства)? Заранее спасибо.

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

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


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

Здесь можно посмотреть временные характеристики для Keil RTX. Не знаю, насколько они актуальны.

http://www.keil.com/support/man/docs/rlarm...timing_spec.htm

Нужно искать нечто аналогичное для других ОС.

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


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

Скорость реакции, надо чтобы ОСРВ отработала или достаточно скорости обработки прерывания?

Ведь МК это не ЦП на ПК с ОС, он может приняв внешнее прерывание, не передавая событие в ОСРВ, переварить его в обработчике прерывания (если не сложное вычисление) и отработать событие, при этом ОСРВ будет осуществлять свою работу "параллельно", приостановится на время обработки прерывания. (на процессорах с многоуровневой системой прерываний и FreeRTOS такое можно сделать на раз).

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


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

Lagman, под скоростью реакции я имею ввиду промежуток времени от момента уведомления ОС о событии до начала выполнения первых инструкций обработчика события.

Вчера померил это время на серии STM32L152 на максимальной рабочей частоте (32 МГц) с FreeRTOS. Минимум, что удалось выжать с 2-мя задачами - это 11.7 мкс, что довольно печально на мой взгляд. + AHTOXA померил время реакции scmRTOS на VLDiscovery (24 МГц). У него получилось 6.5 мкс, что уже гораздо лучше.

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

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


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

+ AHTOXA померил время реакции scmRTOS на VLDiscovery (24 МГц). У него получилось 6.5 мкс, что уже гораздо лучше.

 

Не знаю на что в scmRTOS тратят время, но нормальные RTOS тратят на это в два раза меньше.

Смотрите бенчмарки ChibiOS.

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


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

Не знаю на что в scmRTOS тратят время, но нормальные RTOS тратят на это в два раза меньше.

Смотрите бенчмарки ChibiOS.

Ваш наезд насчёт "нормальных" осей выглядит как минимум некрасиво. Нормальные участники форума так не делают.

По вашей ссылке есть ссылка на независимое тестирование, где цифры гораздо более правдоподобны (2.92µs на 72 МГц). У scmRTOS на 72МГц получалось 2.7µs. Причём мы не учитывали время включения и выключения светодиода, как в этой ссылке.

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


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

эм. только не забывайте, что freertos сравнивать ни с чем нельзя. лицензия не позволяет =8)

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


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

под скоростью реакции я имею ввиду промежуток времени от момента уведомления ОС о событии до начала выполнения первых инструкций обработчика события.

Вчера померил это время на серии STM32L152 на максимальной рабочей частоте (32 МГц) с FreeRTOS. Минимум, что удалось выжать с 2-мя задачами - это 11.7 мкс, что довольно печально на мой взгляд. + AHTOXA померил время реакции scmRTOS на VLDiscovery (24 МГц). У него получилось 6.5 мкс, что уже гораздо лучше.

В сообщении от AHTOXA есть ссылка на хоть какую то методику тестирования, а вот что и как тестировали (больше похоже на измерение переключения контекста) и как настраивали другие не понятно, так же надо иметь ввиду что на некоторых МК, ногодрыг может быть ограничен определенной частотой, которая указана в документации к МК.

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


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

Lagman, у меня методика тестирования простейшая. Есть две задачи. Одна низкоприоритетная и одна - высокоприоритетная. Высокоприоритетная задача ожидает бинарный семафор, и как только получает его, сразу сбрасывает ногу МК. Низкоприоритетная с некоторой периодичностью взводит ту же самую ногу МК и сразу же отдаёт семафор. На осциллографе контролируется длительность импульса на ноге МК.
Изменено пользователем ArtDenis

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


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

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

думаю если все норм настроить, то выйдет гораздо меньше нынешних 11.7 мкс.

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


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

Ваш наезд насчёт "нормальных" осей выглядит как минимум некрасиво. Нормальные участники форума так не делают.

По вашей ссылке есть ссылка на независимое тестирование, где цифры гораздо более правдоподобны (2.92µs на 72 МГц). У scmRTOS на 72МГц получалось 2.7µs. Причём мы не учитывали время включения и выключения светодиода, как в этой ссылке.

 

Смотрите лучше по ссылке http://chibios.sourceforge.net/reports/STM32F100-24-GCC.txt

--- Test Case 11.4 (Benchmark, context switch)
--- Score : 364984 ctxswc/S
--- Result: SUCCESS

 

Т.е. 2,7 мкс на 24 МГц

 

 

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


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

ZASADA. Я примеры не использовал, а ноги "дрыгаются" самым быстрым способом :) Настройки ОС выкрутил на максимум, чтобы отключить все навороты. Кстати, со всеми наворотами время реакции получается около 30 мкс

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


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

Т.е. 2,7 мкс на 24 МГц

Да, я видел. Это какой-то сильно "синтетический тест". Возможно, просто вызывали в цикле функцию, переключающую контекст. Без собственно оси и всего остального.

2.7мкс на 24 МГц - это всего 64 такта процессора.

12+12 тактов на вход/выход в прерывание планировщика + сохранение контекста (8 регистров + SR = 10 тактов) + восстановление контекста (13 тактов),

Это уже 47 тактов. Осталось 17 тактов. В эти такты надо уместить:

  • собственно вызов перепланировки;
  • запрет/разрешение прерываний;
  • переключение стеков;
  • поиск самого приоритетного готового к выполнению процесса;
  • ну и, наконец, надо включить и выключить светодиод.

Так что я гораздо больше доверяю независимому тесту. Не то, чтобы я подозревал разработчиков чибиос в жульничестве, но лёгкое лукавство там, похоже, присутствует.

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


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

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

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

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

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

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

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

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

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

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