Здравствуйте, fraddy,
F>Описываю проблему: F>Я писал фирмварь для некоего девайса. Этот девайс работает на своем процессоре и подключается к РС через LPC-bus. Девайс может общаться с РС (хостом) только в течении окна в 500 микросекунд (конфигурируемый период) раз в определенный (также кон) интервал времени. Задача тестогого приложения — узнать, успевает ли РС в это окно принять все данные. То есть девайс посылает интеррапт, открывает окно и ждет. В интеррапт-хендлере РС посылает запрос и получает ответ. Девайс закрывает окно. F>Задача — узнать, уложились ли в 500 микро с начала интеррапта до конца получения ответа. Если нас прерывали — хрен с ним. Игнорируем результат.
--
1. Что такое LPC-bus?
2. После появления hardware сигнала прерывания, обработка прерывания под Windows состоит из 2х частей — системная + driver interrup subroutine. Вторую часть в принципе можно сделать непрерываемой. Однако время выполнения первой части предугадать в общем случае сложно, она зависит от конфигурации системы (например, являются ли прерывания shared, установлены ли драйвера для этих устройтств, какой порядок установки драйверов и т.п.).
Ваша задача — "узнать, уложились ли в 500 микро с начала интеррапта до конца получения ответа" — относится к работе вашего устройства с данным кокретным PC или ее необходимо будет решать для любой, заранее неопределенной, конфигурации PC?
В первом случае я бы просто попытался измерить интервал осциллографом или логическим анализатором.
Во втором случае, если девайс может сам отсчитать это время от начала прерывания, я бы попросил сам этот девайс (напримрер, тестовое firmware) генерировать разные значения, если запрос на данные пришел внутри и за пределами окна, а потом проанализировал эти данные в программе.