qiaozhigang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-08
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1681回复:6

高分请教:如何对pci的局部空间操作?

楼主#
更多 发布于:2004-02-22 16:16
请教各位:我正在做一块板子的驱动,是学习的,用driverworks产生了代码,可是不知道用什么方式对pci9052的io或memory空间操作,请高手指教,以分相谢!
CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-25 17:42
用in和out函数可以操作
答得好的话,请兄弟们加点分,那是对我的肯定
qiaozhigang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-08
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-25 20:14
用in和out函数可以操作

请再讲细致一些好吗?
wwenguang
驱动小牛
驱动小牛
  • 注册日期2002-08-12
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-25 22:39
ind(address,counter)是从地址ADDRESS读COUNTER个双字。
outd(address,number)是向address地址写数据number.
CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-26 09:25
对,就是这样
答得好的话,请兄弟们加点分,那是对我的肯定
chengshiboy
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-27 13:08
这个问题很简单:
  首先对内存和IO的操作在DRIVERWORKS中用到KIoRange和KMemoryrange 两个类,这两个类中的成员函数有inw(),outw(),ind(),outd()等.
  在你通过DRIVERWORKS设计的"设备类/即插即用类".H中定义KIoRange和KMemoryrange 两个类的实体,然后在"设备类/即插即用类".CPP文件中调用他的初始化函数,然后就可以调用了他们的inw(),outw(),ind(),outd()成员函数了,数据被读/写到缓冲区,然后通过IRP返回到你的 应用程序中.
  如果你想具体知道怎么用,可以参考"Windos 2000/XP WDM设备驱动程序开发"一书中第13章的内容!

[编辑 -  2/27/04 by  chengshiboy]
qiaozhigang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-08
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-02-27 17:46
谢谢CYoung ,wwenguang ,chengshiboy 几位,问题解决,现在给你们加点分吧!
游客

返回顶部