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

 
 
> Обработка IRQ без использования средств uC/OS
Vladimir_T
сообщение Oct 15 2007, 04:04
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Здравствуйте, хотелось бы использовать обработку векторных прерываний IRQ без использования средств uC/OS на STR911. Поэтому хотел спросить у коллег, как лучше оформить обработчики IRQ, с тем, чтобы прерывания обрабатывались в фоновом режиме и использовались средства ОС (флаги событий и др.). Буду благодарен за ссылки или решения из личного опыта.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andy Mozzhevilov
сообщение Oct 16 2007, 02:53
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Vladimir_T @ Oct 15 2007, 10:04) *
Здравствуйте, хотелось бы использовать обработку векторных прерываний IRQ без использования средств uC/OS на STR911. Поэтому хотел спросить у коллег, как лучше оформить обработчики IRQ, с тем, чтобы прерывания обрабатывались в фоновом режиме и использовались средства ОС (флаги событий и др.). Буду благодарен за ссылки или решения из личного опыта.


Вопрос не совсем понятен.
Чтобы пользоваться сервисами ОС из прерываний на ARM7, то необходимо заходить в прерывания
через точку входа, описанную в порте ОС. Таким образом, независимо от того, хотите вы пользовать сервисы ОС из прерываний или нет, по окончанию обработки прерываний ОС попробует сделать
перепланирование.
Если вы будете заходить в IRQ самостоятельно, минуя точку входа ОС, тогда вы не сможете пользовать ни сервисы ОС из прерывания, ни (что более критично) завести системный таймер для тиков операционки.
Если вы хотите иметь прерывания, которые работают вне зависимости от критических секций ОС, то делайте их на FIQ. В этом случае порт оси надо будет чуть подправить в части функции входа в критическую секцию, чтобы в ней не запрещать FIQ. Пользовать сервисы ОС в этом случае из прерываний FIQ будет нельзя. Но, из FIQ можно будет сделать программное прерывание в контроллере прерывание, определенное как IRQ, в котором уже искользовать сервисы ОС. Во всяком случае в LPC я это делал без каких-либо проблем. Но тут зависит уже от контроллера прерываний STR, позволит ли он сделать такой финт.
А вообще, лучше вы опишите, зачем вам это нужно, потому что мне кажется, проблема может иметь другие, более элегантные пути решения.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 04:27
Рейтинг@Mail.ru


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