Цитата(Vladimir_T @ Oct 15 2007, 10:04)

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