从Linux kernel3.0开始,pci探测是自动的:pci_register_driver(&pci_driver);
在Linux内核2.6和更早的版本中,程序员必须创建一个字符设备,遍历PCI列表,选择合适的PCI并对其进行操作。你能告诉我这个过程的步骤是什么吗,为什么在使用PCI驱动程序之前需要初始化字符设备,为什么不再需要注册字符驱动程序。
发布于 2012-08-28 15:29:35
我想你指的是Linux2.4或更早的版本。带有总线、设备和驱动程序的当前内核设备模型一直是2.6系列的一部分。
你的问题到底是什么?
PCI设备的列表是在启动时创建的。然后,在注册驱动程序时,使用pci_driver structure id_table字段与总线上存在的设备进行匹配。然后,使用指向匹配的设备结构的指针调用pci_driver探测函数。
为总线上存在的每个设备注册
所以它与2.4没有太大的不同,除了所有的探测,匹配的驱动程序和设备等。由“设备核心”而不是由pci驱动程序处理。
有关详细说明,请参阅this PDF和this page
https://stackoverflow.com/questions/12153190
复制相似问题