Board logo

标题: Linux操作系统下PCI设备驱动程序开发 05 [打印本页]

作者: samwalton    时间: 2014-2-23 13:39     标题: Linux操作系统下PCI设备驱动程序开发 05

 释放设备模块主要负责释放对设备的控制权,释放占用的内存和中断等,所做的事情正好与打开设备模块相反:
  static int demo_release(struct inode *inode, struct file *file)
  {
  /* ... */
  /* 释放对设备的控制权 */
  card->open_mode &= (FMODE_READ | FMODE_WRITE);
  /* 唤醒其它等待获取控制权的进程 */
  wake_up(&card->open_wait);
  up(&card->open_sem);
  /* 释放中断 */
  free_irq(card->irq, card);
  /* 设备打开计数增1 */
  MOD_DEC_USE_COUNT;
  /* ... */
  }
  8. 卸载设备模块
  卸载设备模块与初始化设备模块是相对应的,实现起来相对比较简单,主要是调用函数pci_unregister_driver( )从Linux内核中注销设备驱动程序:
  static void __exit demo_cleanup_module (void)
  {
  pci_unregister_driver(&demo_pci_driver);
  }
  四、小结
  PCI总线不仅是目前应用广泛的计算机总线标准,而且是一种兼容性最强、功能最全的计算机总线。而Linux作为一种新的操作系统,其发展前景是无法估量的,同时也为PCI总线与各种新型设备互连成为可能。由于Linux源码开放,因此给连接到PCI总线上的任何设备编写驱动程序变得相对容易。本文介绍如何编译Linux下的PCI驱动程序,针对的内核版本是2.4。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0