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

 
 
> Вопрос начинающего
_Артём_
сообщение Feb 1 2012, 16:56
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Прочитал давеча (FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 1. Введение)
Цитата
6. Время переключения контекста для AVR с кварцем на 16Мгц составит всего 20.8 мкс. Именно столько нужно для сохранения данных в стек задачи и вызов следующей. ( Интересное замечание, если сравнить это с PIC18xxx, то контроллер от AVR делает это быстрее в 4 раза!!!, скорее всего это связано с качеством компилятора)

и ранее (chibios Context Switch)
Цитата
AVR/ATMega128-16-GCC4.3.0 11.12µS

И в то же время scmRTOS: 38-42 us on AVR @ 8 MHz (что совпадает с ожидаемым результатом при полном сохранении контекста).
При этом список фич FreeRTOS гораздо длиннее чем в scmRTOS.
Как они так сделали?
Или они (FreeRTOS, chibios) о чём-то умалчивают?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Feb 2 2012, 04:03
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Переключение контекста или передача управления? Это немного разные вещи. Переключение контекста - это чисто закинуть контекст в стек и вынуть из стека оный. А передача управления ещё включает код в сервисах оси, планировщик и прочее. У scmRTOS указано именно время передачи управления. Время переключения контекста в основном определяется процессором (архитектурой, количеством ресурсов, которые надо сохранять) и тактовой и слабо зависит от ОС.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 2 2012, 14:14
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(dxp @ Feb 2 2012, 06:03) *
Переключение контекста или передача управления?

Ну Вы спросили...
Я бы сам хотел знать, потому и спрашивал.

Цитата(dxp @ Feb 2 2012, 06:03) *
Переключение контекста - это чисто закинуть контекст в стек и вынуть из стека оный. А передача управления ещё включает код в сервисах оси, планировщик и прочее. У scmRTOS указано именно время передачи управления.


Да, заметил: в описании scmRTOS - "process switching".

Цитата(dxp @ Feb 2 2012, 06:03) *
Время переключения контекста в основном определяется процессором (архитектурой, количеством ресурсов, которые надо сохранять) и тактовой и слабо зависит от ОС.


Тогда логично: у FreeRTOS 20 мкс на 16 МГц = время сохранения регистрового файла + время загрузки следующего. А вот сколько займёт передача управления при её наворотах?

А с ChibiOs непонятно: 11.12µS - видимо используют не все регистры.

Go to the top of the page
 
+Quote Post
Terminator
сообщение Feb 3 2012, 09:59
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Цитата(_Артём_ @ Feb 2 2012, 21:14) *
Тогда логично: у FreeRTOS 20 мкс на 16 МГц = время сохранения регистрового файла + время загрузки следующего. А вот сколько займёт передача управления при её наворотах?

Это как бы и есть передача управления, одна задача остановлена, контекст сменён, другая задача запущена.

Прошу заметить что вы сравниваете время для разных тактовых:
Цитата
scmRTOS: 38-42 us on AVR @ 8 MHz
FreeRTOS 20 мкс на 16 МГц

Так что время переключения у них примерно одинакого.
Go to the top of the page
 
+Quote Post



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

 


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


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