Если бы так было на самом деле, то опять все печально: программа QNX начинает читать в 4 раза позднее, чем драйвер в Windows. Я запускал программу на очень высоком приоритете, это картину не меняло.
Ваши выводы видятся мне сомнительными. Во-первых, если мне не изменяет память, драйверы ОС Windows выполняются в контексте ядра и, по мере надобности вольны использовать ISR как им заблагорассудится. Во-вторых, разница между обработкой прерываний в потоке и в ISR действительно может достигать 8мкс+. И это не предел даже для QNX6 (в зависимости от аппаратуры), не говоря уже об ОС общего назначения. Было бы интересно взглянуть на
среднюю оценку времени завершения отработки IRQ в
потоке Windows. Linux, например, в подобных условиях склонен показывать себя отнюдь не с лучшей стороны (хотя ввиду отсутствия требований РВ ему это можно простить). Также интересны результаты по обработке прерывания именно в обработчике QNX4.
Думаю что запрос снимает все же сама ОС QNX.
Полагаю, тогда бы это привело к сбрасыванию всех остальных прерываний "автоматически" операционной системой. Думается это бы не осталось незамеченным.
в QNX4.25 - примерно 12-15 мкс.
С фирменным драйвером платы АЦП в WindowsXP SP3 - примерно 4-5 мкс.
Просто для справки: тесты проводились на одной и той же машине? И не было ли разделений прерываний?