реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Сравнение RTOS для STM32 по времени реакции
ArtDenis
сообщение Nov 7 2014, 15:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



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

Сообщение отредактировал ArtDenis - Nov 7 2014, 15:24


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 7 2014, 15:30
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Вот тут мы сравнивали scmRTOS и TNKernel.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Nov 7 2014, 15:33
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



Спасибо за ссылку, но сравнения всего двух RTOS мало.


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 7 2014, 16:37
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Здесь можно посмотреть временные характеристики для Keil RTX. Не знаю, насколько они актуальны.
http://www.keil.com/support/man/docs/rlarm...timing_spec.htm
Нужно искать нечто аналогичное для других ОС.
Go to the top of the page
 
+Quote Post
Lagman
сообщение Nov 7 2014, 20:23
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Скорость реакции, надо чтобы ОСРВ отработала или достаточно скорости обработки прерывания?
Ведь МК это не ЦП на ПК с ОС, он может приняв внешнее прерывание, не передавая событие в ОСРВ, переварить его в обработчике прерывания (если не сложное вычисление) и отработать событие, при этом ОСРВ будет осуществлять свою работу "параллельно", приостановится на время обработки прерывания. (на процессорах с многоуровневой системой прерываний и FreeRTOS такое можно сделать на раз).
Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Nov 8 2014, 04:47
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



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

Сообщение отредактировал ArtDenis - Nov 8 2014, 08:16


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 8 2014, 08:49
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(ArtDenis @ Nov 8 2014, 06:47) *
+ AHTOXA померил время реакции scmRTOS на VLDiscovery (24 МГц). У него получилось 6.5 мкс, что уже гораздо лучше.


Не знаю на что в scmRTOS тратят время, но нормальные RTOS тратят на это в два раза меньше.
Смотрите бенчмарки ChibiOS.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 8 2014, 10:28
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(AlexandrY @ Nov 8 2014, 13:49) *
Не знаю на что в scmRTOS тратят время, но нормальные RTOS тратят на это в два раза меньше.
Смотрите бенчмарки ChibiOS.

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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Mahagam
сообщение Nov 8 2014, 12:05
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240



эм. только не забывайте, что freertos сравнивать ни с чем нельзя. лицензия не позволяет =8)
Go to the top of the page
 
+Quote Post
Lagman
сообщение Nov 8 2014, 12:25
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(ArtDenis @ Nov 8 2014, 07:47) *
под скоростью реакции я имею ввиду промежуток времени от момента уведомления ОС о событии до начала выполнения первых инструкций обработчика события.
Вчера померил это время на серии STM32L152 на максимальной рабочей частоте (32 МГц) с FreeRTOS. Минимум, что удалось выжать с 2-мя задачами - это 11.7 мкс, что довольно печально на мой взгляд. + AHTOXA померил время реакции scmRTOS на VLDiscovery (24 МГц). У него получилось 6.5 мкс, что уже гораздо лучше.

В сообщении от AHTOXA есть ссылка на хоть какую то методику тестирования, а вот что и как тестировали (больше похоже на измерение переключения контекста) и как настраивали другие не понятно, так же надо иметь ввиду что на некоторых МК, ногодрыг может быть ограничен определенной частотой, которая указана в документации к МК.
Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Nov 8 2014, 12:49
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



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

Сообщение отредактировал ArtDenis - Nov 8 2014, 12:49


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
ZASADA
сообщение Nov 8 2014, 17:32
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 738
Регистрация: 13-01-11
Из: Минск
Пользователь №: 62 210



во FreeRTOS есть несколько способов сбросить ногу. по умолчанию в примерах используется самые медленный с переинициализацией всех регистров. да и системные тики по умолчанию там тоже печально медленные.
думаю если все норм настроить, то выйдет гораздо меньше нынешних 11.7 мкс.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 8 2014, 17:36
Сообщение #13


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(AHTOXA @ Nov 8 2014, 12:28) *
Ваш наезд насчёт "нормальных" осей выглядит как минимум некрасиво. Нормальные участники форума так не делают.
По вашей ссылке есть ссылка на независимое тестирование, где цифры гораздо более правдоподобны (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 МГц

Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Nov 8 2014, 18:03
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



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


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 8 2014, 20:45
Сообщение #15


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(AlexandrY @ Nov 8 2014, 22:36) *
Т.е. 2,7 мкс на 24 МГц

Да, я видел. Это какой-то сильно "синтетический тест". Возможно, просто вызывали в цикле функцию, переключающую контекст. Без собственно оси и всего остального.
2.7мкс на 24 МГц - это всего 64 такта процессора.
12+12 тактов на вход/выход в прерывание планировщика + сохранение контекста (8 регистров + SR = 10 тактов) + восстановление контекста (13 тактов),
Это уже 47 тактов. Осталось 17 тактов. В эти такты надо уместить:
  • собственно вызов перепланировки;
  • запрет/разрешение прерываний;
  • переключение стеков;
  • поиск самого приоритетного готового к выполнению процесса;
  • ну и, наконец, надо включить и выключить светодиод.

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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016