[an error occurred while processing this directive]
Еще(+):
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено code_id 09 февраля 2005 г. 09:32
В ответ на: Ответ: отправлено bag 09 февраля 2005 г. 08:25

Кажется, я не совсем верно выразился. Перепутаны не 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: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru