PCI驱动程序(国嵌笔记)
来源:互联网 发布:java泛型的通配符 编辑:程序博客网 时间:2024/06/05 19:03
PCI驱动程序
1.使用struct pci_driver结构来描述
成员
id_table //驱动支持的设备列表
(*probe) //函数指针
(*remove)//函数指针
2.PCI驱动注册
pci_register_driver(struct pci_driver *drv)
3.在PCI驱动使用PCI设备的任何资源(I/O区或者中断)之前,驱动必须调用如下函数使能设备
pci_enable_device(struct pci_dev *dev)
4.获取基地址
一个PCI设备最多可以实现6个地址区域, 大多数PCI设备在这些区域实现I/O寄存器。 Linux提供了 一组函数来获取这些区间的基地址:
pci_resource_start(struct pci_dev *dev, int bar)
返回指定区域的起始地址, 这个区域通过参数 bar 指定,范围从 0-5, 表示6个PCI区域中的一个。
pci_resource_end(struct pci_dev *dev, int bar)
返回指定区域的末地址。
5.中断
中断号存放于配置寄存器PCI_INTERRUPT_LINE
中 , 驱动不必去检查它, 因为从 PCI_INTERRUPT_LINE
中找到的值保证是正确的。 如果设备不支持中断, 寄存
器 PCI_INTERRUPT_PIN 中的值是0, 否则它是非零的
值。 但因为驱动开发者通常知道设备是否是支持终端,
所以常常不需要访问 PCI_INTERRUPT_PIN。
1.使用struct pci_driver结构来描述
成员
id_table //驱动支持的设备列表
(*probe) //函数指针
(*remove)//函数指针
2.PCI驱动注册
pci_register_driver(struct pci_driver *drv)
3.在PCI驱动使用PCI设备的任何资源(I/O区或者中断)之前,驱动必须调用如下函数使能设备
pci_enable_device(struct pci_dev *dev)
4.获取基地址
一个PCI设备最多可以实现6个地址区域, 大多数PCI设备在这些区域实现I/O寄存器。 Linux提供了 一组函数来获取这些区间的基地址:
pci_resource_start(struct pci_dev *dev, int bar)
返回指定区域的起始地址, 这个区域通过参数 bar 指定,范围从 0-5, 表示6个PCI区域中的一个。
pci_resource_end(struct pci_dev *dev, int bar)
返回指定区域的末地址。
5.中断
中断号存放于配置寄存器PCI_INTERRUPT_LINE
中 , 驱动不必去检查它, 因为从 PCI_INTERRUPT_LINE
中找到的值保证是正确的。 如果设备不支持中断, 寄存
器 PCI_INTERRUPT_PIN 中的值是0, 否则它是非零的
值。 但因为驱动开发者通常知道设备是否是支持终端,
所以常常不需要访问 PCI_INTERRUPT_PIN。
0 0
- PCI驱动程序(国嵌笔记)
- PCI总线(国嵌笔记)
- PCI驱动程序实现(linux)
- PCI驱动程序(第十二章 )
- Linux PCI设备驱动程序开发 --- PCI 体系结构(一)
- Linux下PCI设备驱动程序开发 --- PCI驱动程序实现(三)
- 网卡驱动程序(国嵌笔记)
- PCI驱动程序实现
- PCI驱动程序实现
- PCI驱动程序几个GUID
- pci驱动程序设计
- PCI总线驱动程序
- 第十二章:PCI驱动程序
- PCI驱动程序设计
- PCI、串口驱动程序设计
- PCI驱动程序实现
- PCI驱动程序实现
- PCI总线驱动程序设计
- Android 组件间的解耦
- 蓝桥杯 - 兰顿蚂蚁 (模拟)
- DMA的外设地址简单说明
- Android 百度地图 SDK v3.0.0 (四) 引入离线地图功能
- 【问题】html列表项,内容随着鼠标移动而变化的页面,怎样实现?
- PCI驱动程序(国嵌笔记)
- JPA
- 视觉SLAM漫淡 - 半闲居士
- 机器视觉标定以及标定板在机器视觉系统标定中的作用
- oracle 日期相减
- win32 用户自定义消息范围
- 串口(国嵌笔记)
- 我第一个写的小网页,嘿嘿
- Ubuntu12.04安装SDK