[an error occurred while processing this directive]
|
Кажется, я не совсем верно выразился. Перепутаны не A0 и A1, а AD0 и AD1, т.е. со стороны разъема PCI. На шине PCI транзакция начинается с адреса AD[31..0] в котором адресные линии AD[1..0] задают не сам адрес, а порядок передачи данны в пакете "burst order": AD[1..0] = 0 -> "linear increment", AD[1..0] = 2 -> "cacheline wrap mode", остальные значения зарезервированы (см. PCI_2.2 стр.29).
Поэтому при чтении байтов по смещению 0 и 2 адрес на шине PCI один и тот же, отличаются только значения C/BE[3..0]#, да и то лишь в том случае, если устройство на стадии получения адреса от Config Manager указало, что существуют "side effects on read" при 32-битном чтении (BAR[3] = 1, см. PCI_2.2 стр. 202). Но данные при таком чтении будут отличаться D1 <-> D0, что, впрочем, легко проверить и без всяких осциллографов, если прочитать значения заведомо известых регистров из "Config Space" вашей платы. Кстати, если используемое вами значение "Vendor ID" оканчивается на B"01" или B"10", то вы это уже проверили, и все что я вам здесь написал к вашей плате не относится...
E-mail: info@telesys.ru