LINUX.ORG.RU

История изменений

Исправление Drakonoff, (текущая версия) :

Извините, что пропал, сессия началась и сразу куча проблем навалилась..

Дело в том, что написать свой PCIe, конечно, хотелось бы, но в то же время хочется доделать то, что есть, и не пробовать множество других вариантов.

я нашел тут код на точно такую же систему как у меня, но программист (драйвер которого очень похож на мой) в конце своего кода создаёт класс может это как то влияет? если честно я вообще не врубаюсь что он делает с этим классом и вообще что это)

class_my_tst = class_create(THIS_MODULE, «my_enc_class»);

res=alloc_chrdev_region(&my_dev, 0, 1, DEVICE_NAME);

my_cdev = cdev_alloc( );

device_create(class_my_tst,NULL,my_dev,NULL,«my_bm%d»,MINOR(my_dev));

Исправление Drakonoff, :

Извините, что пропал, сессия началась и сразу куча проблем навалилась..

Дело в том, что написать свой PCIe, конечно, хотелось бы, но в то же время хочется доделать то, что есть, и не пробовать множество других вариантов.

я нашел тут код на точно такую же систему как у меня, но программист (драйвер которого очень похож на мой) в конце своего кода создаёт класс может это как то влияет? если честно я вообще не врубаюсь что он делает с этим классом и вообще что это)

[code]

//Create the class class_my_tst = class_create(THIS_MODULE, «my_enc_class»); if (IS_ERR(class_my_tst)) { printk(KERN_ERR «Error creating my_tst class.\n»); res=PTR_ERR(class_my_tst); goto err1; } /* Alocate device number / res=alloc_chrdev_region(&my_dev, 0, 1, DEVICE_NAME); if(res) { printk («<1>Alocation of the device number for %s failed\n», DEVICE_NAME); goto err1; }; my_cdev = cdev_alloc( ); if(my_cdev == NULL) { printk («<1>Allocation of cdev for %s failed\n», DEVICE_NAME); goto err1; } my_cdev->ops = &Fops; my_cdev->owner = THIS_MODULE; / Add character device */ res=cdev_add(my_cdev, my_dev, 1); if(res) { printk («<1>Registration of the device number for %s failed\n», DEVICE_NAME); goto err1; }; device_create(class_my_tst,NULL,my_dev,NULL,«my_bm%d»,MINOR(my_dev)); printk (KERN_INFO «%s The major device number is %d.\n», «Registeration is a success.», MAJOR(my_dev)); printk(KERN_INFO «Registred device at: %p\n»,pdev); my_pdev = pdev; return 0; err1: if (fmem) { iounmap(fmem); fmem = NULL; } if (fmem2) { iounmap(fmem2); fmem2 = NULL; } if (dmabuf) { dma_free_coherent(&pdev->dev, DMA_SIZE, dmabuf, dmaaddr); }

[\code]

Исходная версия Drakonoff, :

Извините, что пропал, сессия началась и сразу куча проблем навалилась..

Дело в том, что написать свой PCIe, конечно, хотелось бы, но в то же время хочется доделать то, что есть, и не пробовать множество других вариантов.

я нашел тут код на точно такую же систему как у меня, но программист (драйвер которого очень похож на мой) в конце своего кода создаёт класс может это как то влияет? если честно я вообще не врубаюсь что он делает с этим классом и вообще что это)