Re[3]: Unbreakable code
От: Геннадий Майко США  
Дата: 05.11.06 14:21
Оценка:
Здравствуйте, fraddy,

F>Описываю проблему:

F>Я писал фирмварь для некоего девайса. Этот девайс работает на своем процессоре и подключается к РС через LPC-bus. Девайс может общаться с РС (хостом) только в течении окна в 500 микросекунд (конфигурируемый период) раз в определенный (также кон) интервал времени. Задача тестогого приложения — узнать, успевает ли РС в это окно принять все данные. То есть девайс посылает интеррапт, открывает окно и ждет. В интеррапт-хендлере РС посылает запрос и получает ответ. Девайс закрывает окно.
F>Задача — узнать, уложились ли в 500 микро с начала интеррапта до конца получения ответа. Если нас прерывали — хрен с ним. Игнорируем результат.
--
1. Что такое LPC-bus?

2. После появления hardware сигнала прерывания, обработка прерывания под Windows состоит из 2х частей — системная + driver interrup subroutine. Вторую часть в принципе можно сделать непрерываемой. Однако время выполнения первой части предугадать в общем случае сложно, она зависит от конфигурации системы (например, являются ли прерывания shared, установлены ли драйвера для этих устройтств, какой порядок установки драйверов и т.п.).

Ваша задача — "узнать, уложились ли в 500 микро с начала интеррапта до конца получения ответа" — относится к работе вашего устройства с данным кокретным PC или ее необходимо будет решать для любой, заранее неопределенной, конфигурации PC?
В первом случае я бы просто попытался измерить интервал осциллографом или логическим анализатором.
Во втором случае, если девайс может сам отсчитать это время от начала прерывания, я бы попросил сам этот девайс (напримрер, тестовое firmware) генерировать разные значения, если запрос на данные пришел внутри и за пределами окна, а потом проанализировал эти данные в программе.

C уважением,
Геннадий Майко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.