1

У меня карта Compact PCI в шасси PXI; он имеет 2 бара памяти, которые должны быть доступны через операции National Instruments NiVisa. У меня проблемы с Windows 7, меняющей регистр команд на карте во время последовательности запуска, так что полосы памяти карты недоступны. Я запустил анализатор шины и заметил, что регистр команд пространства конфигурации установлен на желаемое значение (0x0197) после запуска BIOS.

Я бы хотел, чтобы это значение сохранялось в последовательности запуска Windows. Он остается тем же при использовании операционной системы Windows XP, но не при работе под управлением Windows 7. Я настроил машину с двойной загрузкой с Windows XP и Windows 7, чтобы убедиться, что все оборудование одинаково во время сравнения. После последовательности запуска Windows 7 это значение равно 0x0194.

Я могу установить регистр команд на 0x197, чтобы получить эти последние два бита так, как я хочу, из программы, которую я использую для общения с картой PXI, и это позволяет мне использовать карту по своему усмотрению, но это не стабильное исправление. Я получаю частые ошибки при запуске новых сеансов связи (после закрытия старых сеансов), что выделение памяти не может быть выполнено библиотеками National Instruments.

  • Есть ли способ запретить Windows 7 настраивать карту PXI?

Кажется, уже так, как я хочу, после того, как BIOS сделан. Похоже, что Windows CE отключает настройку карты с флагом реестра NoConfig . Я не смог найти метод, который работал бы на Windows 7 или Windows XP.

Windows XP также пытается перенастроить конфигурационное пространство карты, но оставляет его в работоспособном состоянии. Необязательно, так как это улучшило бы мое понимание, но, вероятно, касательно решения моей проблемы, я заинтересован в:

  • Какая разница в реконфигурации Windows 7, которая дает другой результат на этой карте, чем Windows XP?

1 ответ1

1

Добро пожаловать в 21 век. Вы используете операционную систему Plug and Play.

Вы не можете пойти в памяти устройства отображения и ввода / вывода регистров в памяти и ввода / вывода пространства волей-неволей, что это именно то , что вручную позволяет памяти и ввода / вывода доступа на устройстве PCI будет делать. Сопоставление ресурсов устройства должно выполняться совместно с менеджером Plug and Play операционной системы. Диспетчер Plug and Play отслеживает, какие диапазоны адресов памяти и ввода-вывода используются и кем, и гарантирует отсутствие конфликтов из-за (скажем) нескольких устройств, отображающих одинаковые диапазоны адресов.

Windows отключает память и циклы ввода-вывода для вашего устройства, поскольку не было возможности назначить память и ресурсы ввода-вывода для вашего устройства в рамках процедуры подсчета шины Plug and Play и арбитража ресурсов. (Я исключаю возможность того, что Windows решила отключить вас, учитывая, что Busmastering включен.) Либо в карте физической памяти вашего компьютера просто нет места для ресурсов, которые устройство хочет отобразить, либо не удалось запустить ваше устройство с назначенной конфигурацией ресурсов. (Я исключаю возможность того, что ваше устройство просто сломано и не сообщает о своих требованиях к ресурсам в пространстве конфигурации PCI.)

Последнее является более вероятным. Обычная причина - устройство PCI, у которого нет драйвера устройства. Без драйвера устройства для управления устройством в первую очередь, PaP Manager не сможет назначить конфигурацию ресурса для вашего устройства и перевести его в состояние "запущено". Для этого требуется (функциональный) драйвер устройства для ответа на соответствующие PaP IORP. В этом случае: Вашему устройству нужен драйвер устройства.

Диспетчер устройств расскажет вам, что происходит с вашим устройством в этом отношении.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .