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

Задержка прерывания

Здравствуйте.

Перевожу проект с 2.6 версии на 3.x верcию ядра линукса.

Камень - sama5d3.

В модуле ядра происходит постоянная задержка прерывания приема символа (через usart) примерно в 30 микросекунд (от 15 микросекунд до 40 микросекунд).

 

Описание теста:

Из программы производится ioctl вызов к модулю.

В модуле происходит настройка usarta на посылку и прием 1 байта. И там же обработчик прерывания.

 

Время замерялось при помощи осциллографа.

 

Версия linux:

# uname -a

Linux buildroot 3.12.24-rt38 #4 PREEMPT RT Wed Aug 20 16:37:31 FET 2014 armv7l GNU/Linux

 

Почему всегда присутствует задержка? Не было ни одного запуска программы, чтобы задержка была хотя бы менее 10 микросекунд.

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


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

Здравствуйте.

Перевожу проект с 2.6 версии на 3.x верcию ядра линукса.

Камень - sama5d3.

В модуле ядра происходит постоянная задержка прерывания приема символа (через usart) примерно в 30 микросекунд (от 15 микросекунд до 40 микросекунд).

 

Описание теста:

Из программы производится ioctl вызов к модулю.

В модуле происходит настройка usarta на посылку и прием 1 байта. И там же обработчик прерывания.

 

Время замерялось при помощи осциллографа.

 

Версия linux:

# uname -a

Linux buildroot 3.12.24-rt38 #4 PREEMPT RT Wed Aug 20 16:37:31 FET 2014 armv7l GNU/Linux

 

Почему всегда присутствует задержка? Не было ни одного запуска программы, чтобы задержка была хотя бы менее 10 микросекунд.

 

Задержка времени между стоп -битом символа на rs-232 и стартом обработчика прерывания?

 

Linux -не система реального времени.

Прерывания не перебивают друг друга.

Приоритетов прерываний нет.

Пока обработчик прерывания IDE не отработает, следующий не стартует.

Время работы обработчика прерывания IDE не является постоянным, зависит от количества секторов и пр...

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


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

Задержка времени между стоп -битом символа на rs-232 и стартом обработчика прерывания?

 

Linux -не система реального времени.

Прерывания не перебивают друг друга.

Приоритетов прерываний нет.

Пока обработчик прерывания IDE не отработает, следующий не стартует.

Время работы обработчика прерывания IDE не является постоянным, зависит от количества секторов и пр...

 

Судя по версии линукс

Linux buildroot 3.12.24-rt38 #4 PREEMPT RT Wed Aug 20 16:37:31 FET 2014 armv7l GNU/Linux

это ядро линукс с пачем PREEMPT RT, поэтому этот линукс очень даже real time

 

 

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


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

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

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

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

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

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

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

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

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

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