在驱动程序中,我在probe()中执行基础知识:
pci_enable_device();pci_request_regions();pci_iomap();
但是,如何从用户空间访问此内存以进行读写?我是否将文件 *** 作添加到PCIE驱动程序?来自pci_iomap的内存是否显示用户空间代码可以调用的位置:
open('mapped memory location');mmap(...);
如果是的话那么位置是什么?
注意:PCIE设备不会插入任何linux子系统,如音频,以太网等.
解决方法 您可以使用register_chrdev
和 device_create
等功能注册设备.请考虑 kernel source for /dev/null and /dev/mem: static int __init chr_dev_init(voID){ int minor; if (register_chrdev(MEM_MAJOR,"mem",&memory_fops)) printk("unable to get major %d for memory devs\n",MEM_MAJOR); mem_class = class_create(THIS_MODulE,"mem"); if (IS_ERR(mem_class)) return PTR_ERR(mem_class); mem_class->devnode = mem_devnode; for (minor = 1; minor < ARRAY_SIZE(devList); minor++) { if (!devList[minor].name) continue; /* * Create /dev/port? */ if ((minor == DEVPORT_MInor) && !arch_has_dev_port()) continue; device_create(mem_class,NulL,MKDEV(MEM_MAJOR,minor),devList[minor].name); } return tty_init();}fs_initcall(chr_dev_init);总结
以上是内存溢出为你收集整理的linux – PCIe驱动程序 – 用户空间如何访问它?全部内容,希望文章能够帮你解决linux – PCIe驱动程序 – 用户空间如何访问它?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)