[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
В фазе адреса на линиях AD[31:0] будет 379h. В фазе данных – 00008100h, либо XXXX81XXh, в любом случае правильный байт будет указан при помощи CBE[3:0]# и AD[1:0], CBE в фазе данных будет XX01b -в случае использования команды
outportb (0x379, 0x81);
Правда, в дешифраторе адреса AD[1:0] использовать затруднительно, так как значение BARx для I/O в двух младших битах должно быть 01b (и не может быть изменено). Также, трудно использовать для дешифрации AD[31:16], поскольку очень многие машины (Intel- и AMD-based) оставляют в BARx[31:16] значение FFFFh, не записывая туда 0000. Так что, если основная платформа – PC x86, то для I/O участвуют в дешифрации AD[15:2]. При чтении все 4 байта должны принимать какие-то значения несмотря на CBE[3..0]#.
Также см. специф, , гл. 3.2.2 (если rev. 2.1), “Addressing”.
P.S. Это общие сведения, без привязки к рассматриваемому вами проекту. Может быть, кому-то есть что добавить.
E-mail: info@telesys.ru