[an error occurred while processing this directive]
|
Дело в том что в базовом адресном регистре (БАР) находиться только начальный адрес блока памяти или регистров.
На начальном этапе я так понял операционная система (ОС) записывает в данный регистр все единицы. Потом считывает данную запись и определяет по ней объем адресуемый этим БАРом памяти. И потом ОС записывает в данный БАР определенный адрес, с которого будет начинаться данный блок памяти или регистров.
Как я вижу решение задачии ндикации, того что пришедший адрес попал в даиппазон адресов одного из блоков памяти или регистров (один из базовых адресных регистров являеться адресованным)
Я ввел для каждого БАРа дополнительный регистр, указывающий размер блока памяти или регистров. Этот размер я складываю с начальным адресом данного блока (храниться в БАРе) и тем самым определяю верхнюю границу данной области. А далее я сравниваю пришедший по шине адрес на больше или равно с начальным адресом блока и на меньше или равно с верхним адресом блока, и объединяю оба сигнала по И. Получился сигнал индикации, того что один из базовых адресных регистров являеться адресованным.
У меня соответственно вопрос. Может я сильно намудрил из-зи плохого знания PCI интерфейса? Все намного проще?
Благоларен буду за консультацию
E-mail: info@telesys.ru