2010-05-04 2 views
1

В сегментированной архитектуре прерывания RTOS может похвастаться «нулевой задержкой прерывания», используя умное разделение работы между обработчиком прерываний и планировщиком. Существует, по меньшей мере, пара закрытых исходных экземпляров этого подхода, например, AVIX и Quasarsoft- Q-Kernel.Операционная система с прерываниями с открытым исходным кодом RTOS?

Связанный вопрос SO задал вопрос о open source RTOS links, но все предлагаемые операционные системы использовали унифицированные архитектуры прерываний.

Есть ли какая-либо сегментированная архитектура прерывания с открытым кодом RTOS?

ответ

1

Я считаю, что это также иногда называют «отложенным прерыванием» обслуживания или обработки, поэтому, возможно, стоит использовать этот термин для поиска кандидатов.

Возможно, возможно «подделать» его, зарезервировав уровни задач с наивысшим приоритетом для обслуживания ISR, так что скажем, что у вас есть 32 вектора прерываний, вы должны зарезервировать уровни приоритета от 0 до 31 (при условии, что ноль высок) для уровней ISR2 , Каждое реальное прерывание просто устанавливает флаг события, сигнализирующий задачу ISR2. В этом случае ваша ответственность не вызывать блокирующие функции в задачах ISR2, а ореховые неблокирующие службы ядра могут использоваться свободно.

Я не уверен, что это дает вам точно такой же эффект (мне нужно будет изучить его более полно, чем у меня, или позаботьтесь прямо сейчас), но это означает, что вы можете выполнять минимальную работу в истинном ISR, и настоящий ISR всегда будет вытеснять любой ISR2.

+0

Спасибо, Клиффорд, ваш намек «отсроченного прерывания» привел меня к smx rtos, который является собственностью, но с исходным кодом. В настоящее время я использую упомянутый вами подход (флаги с высоким приоритетом, устанавливающие флаги для включения прерываний с более низким приоритетом); он работает хорошо для некоторых приложений, но взаимодействие с фоновым планировщиком потоков является рискованным. –

Смежные вопросы