Jump to content

    

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

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

Перевожу проект с 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 микросекунд.

Share this post


Link to post
Share on other sites
Здравствуйте.

Перевожу проект с 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 не является постоянным, зависит от количества секторов и пр...

Share this post


Link to post
Share on other sites
Задержка времени между стоп -битом символа на 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

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this