shengws
驱动大牛
驱动大牛
  • 注册日期2002-03-08
  • 最后登录2010-06-21
  • 粉丝0
  • 关注0
  • 积分384分
  • 威望102点
  • 贡献值0点
  • 好评度37点
  • 原创分0分
  • 专家分0分
阅读:1083回复:5

Jim_little

楼主#
更多 发布于:2002-06-10 10:13
你玩过PCI吗? :D
喂,小孩,你的小JJ露出来了!
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-10 10:34
你应该问问你的硬件设计人员,他应该比较清楚PCI的设计结构,否则做的板子怎么可能工作?
你的问题我都看过了,但是我不太熟悉DDK。要掌握DDK,我估计要熟悉保护模式的原理,这样物理地址、线形地址、虚拟地址的概念才可以清楚。我编程用driverstudio,他是在DDK的基础上封装而成的,比较适合初学。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
shengws
驱动大牛
驱动大牛
  • 注册日期2002-03-08
  • 最后登录2010-06-21
  • 粉丝0
  • 关注0
  • 积分384分
  • 威望102点
  • 贡献值0点
  • 好评度37点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-10 10:57
我们的硬件设计人员也是初学,所以现在碰到这种事情,他说他的没错,我是到处求医,从得到的结果来看,我做的并没有错,这搞的我很痛苦!你有没有PCI的测试小程序,我可以测试它的板子,只是测试端口或内存可读可写,谢谢!

[编辑 -  6/10/02 by  shengws]
喂,小孩,你的小JJ露出来了!
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-10 11:06
我给你以下建议:
1、首先弄清楚你的板卡内存是映射为I/O空间,还是内存空间。
   如果是映射为I/O空间,则用Read_port_****;
   如果是内存的,则用Read_Register_****.
2、你要读取的内容是那里的?
   是PCI板卡配置空间的,还是PCI板卡内存中的?这一点要分别对待。
   我猜测读取PCI配置空间256字节的某个内容,要使用Read_port_****。
3、一般来说,常见死机主要有两种原因:
   中断处理错误。
   写不应该写的地址(地址错误)

只是建议,我不熟悉DDK和你的板子具体情况。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
shengws
驱动大牛
驱动大牛
  • 注册日期2002-03-08
  • 最后登录2010-06-21
  • 粉丝0
  • 关注0
  • 积分384分
  • 威望102点
  • 贡献值0点
  • 好评度37点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-10 11:31
谢谢你的帖子,我现在测出来原来是我得到的这段申请内存空间是不可读可写的,所以出了问题,我是通过判断资源的FLAGS来知道的。


那我就想请教,我怎样才能对这段内存可读可写?是否需要设置一些
PCI配置空间的状态位还是通过硬件来设置?
谢谢你我给了你10分
喂,小孩,你的小JJ露出来了!
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-10 12:48
我没有遇到过这个问题。不过按照道理上来讲,PCI板卡的内存相当于主机的内存一样,没有分别,应该与硬件没有关系。你可以试试PCI配置空间的Command寄存器中的最低一位写1。

另外,是既不可读又不可写;还是不可读,但可写;没有写清楚。
具体操作你来进行,我不太清楚。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
游客

返回顶部