Вопрос по структуре PCI драйвера для ядра 2.6.12: Проблема доступа к I/O memory PCI - устройства. Делаю так:
struct pci_driver hppm_driver = { /* .... */ }; int init_module(void) {
pci_register_driver(&hppm_driver);
} int cleanup_module(void) { pci_unregister_driver(&hppm_driver); } module_init(init_module); module_exit(cleanup_module);
Я так понял, что для ядра 2.6.х этого достаточно для инициализации. Далее получаю базовый адрес: int *plbase, *pbase, pci_reg; unsigned long base; base = pci_resource_start(pci_dev, 3); plbase = (unsigned int*)&base; pbase = (unsigned int*)*(plbase+1); //--- получаю базовый адрес pci_reg = *(pbase+REG_OFFSET); И получаю ОШИБКУ СЕГМЕНТАЦИИ. Подскажите. что делаю не так ???
Спасибо.