Может кто-нибудь подскажет как бороться с проблемой...
Драйвер для XP на основе NDIS miniport driver based on E100BEX sample.
DDK 2600.1106. Используется компилятор из DDK.
Компьютер ресетится в момент чтения из платы буфера данных в строке: Val = readl_p(Adapter->NicBuffer + Tail);
#define readl_p(addr) __le32_to_cpu(readl((void*)(addr)))
Этот-же драйвер нормально работает на компьютере AMD Athlon c winXP и P3 i815 c win2k.(скомпилирован под win2k)
Пробовали 2 разные матери на i945 (dell и intell) и разные процессоры (celeron и pentium D)
С чем может быть это связано и как действовать в такой ситуации? У меня уже нет идей.
S>Компьютер ресетится в момент чтения из платы буфера данных в строке: Val = readl_p(Adapter->NicBuffer + Tail);
Если есть возможность , то посмотри что пишет/читает драйвер и что действительно принимает PCI плата.
У меня глухо вешался компьютер время от времени. Причем нельзя даже было добраться, через JTAG порт, к внутренним регистрам DSP (которое сидело на PCI шине). Через Софтайз я смотрел, что посылает драйвер, а через хардверный дебагер (который подключил к DSP), контролировал правильность данных. Оказалось что драйвер посылал N слов, а фирмварь ждал N+1. Не правильно программировались внутренние DMAи у DSP и DMAи начинали писать за пределы физической памяти DSP, что приводило к зависанию всей системы.
Здравствуйте, 486, Вы писали: 486>Если есть возможность , то посмотри что пишет/читает драйвер и что действительно принимает PCI плата.
486>У меня глухо вешался компьютер время от времени. Причем нельзя даже было добраться, через JTAG порт, к внутренним регистрам DSP (которое сидело на PCI шине). Через Софтайз я смотрел, что посылает драйвер, а через хардверный дебагер (который подключил к DSP), контролировал правильность данных. Оказалось что драйвер посылал N слов, а фирмварь ждал N+1. Не правильно программировались внутренние DMAи у DSP и DMAи начинали писать за пределы физической памяти DSP, что приводило к зависанию всей системы.
Спасибо за ответ.
Плата не зависает, попробую сравнить что оказалось у нее в памяти после зависания PC.
DMA не используется ни с той ни с другой стороны. Очень странно что это зависит от чипсета. Думаю что прямых логических ошибок в коде нет