zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2412回复:16

如何开发LINUX下的PCI卡驱动?

楼主#
更多 发布于:2003-05-23 11:52
这一段时间在学习LINUX,想要做一个PCI9054卡的驱动,我看了内核里面/LINUX/PCI下面的PCI。C的代码,哪个应该是内核里面的PCI驱动程序吧?那么我的板卡驱动是要修改或者添加代码到这个文件里面吗?

我知道驱动程序主要就是要实现file operation里面的那些子程序,可是,写好了,在那里调用这个结构呢?

我是个新手,请大家多支持!谢谢了!
sunobile
驱动牛犊
驱动牛犊
  • 注册日期2003-05-19
  • 最后登录2004-04-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-23 12:02
我也在看Linux的驱动,但俺是一个新手,还没写过驱动,刚看了看Linux设备驱动第二版前几章,觉得不错,你可以找来看看。还有《Linux源码分析》(毛德操写的)中讲了很多PCI的驱动问题,你可以找来看看,不过它是从内核实现角度来将,所以有很多东西可能你不关心,但可以翻一翻。
我主要是没做过硬件方面的开发,所以不太懂如何操作硬件,等你开发完了,有机会向你学习学习。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-25 12:41
多谢楼上支持,我对硬件还是比较理解,因为以前主要是学的硬件,只是对软件略微生疏,我在看‘LINUX设备驱动的书’,只是,还没有深入理解进去,所以,对在LINUX下开发驱动不知从何处下手,有不知道那些原代码到底该如何利用?
dos
dos
驱动小牛
驱动小牛
  • 注册日期2001-06-13
  • 最后登录2010-02-24
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-25 22:38
file_operation的作用就是为了把你的驱动模拟成一个文件来处理。你在app里打开文件(open),进行读(read)写(write)是常有的事情,似乎比较好理解。同样,现在你也可以open你的驱动,从驱动read数据,write数据到你的驱动。这时你打开的文件将是你的驱动对应的设备文件(都在/dev目录下),而那些操作就对应驱动的file_operation的各个函数。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-26 14:27
多谢DOS的回答啊,明白了这个结构的意思,可是,我现在的问题是不知道做这个PCI卡的驱动该从何处下手啊,到底是修改内核里面的PCI。C文件,还是,自己编写那些file_operation里面的子函数啊?

今天怎么看不到给分的按钮了?DOS,下次登陆时在给你分吧!
holymoon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2006-01-11
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-27 09:18
你看看里面的pci设备的驱动比如网卡,显卡之类的,自己照着练练。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-27 18:38
多谢楼上的建议了,我是在看这个程序,希望可以有所收获,只是,周围没有人在做类似东西,所以,没有人交流学习比较慢!
dos
dos
驱动小牛
驱动小牛
  • 注册日期2001-06-13
  • 最后登录2010-02-24
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-28 00:27
你先要确定你的pci卡的工作特性属于字符设备、块设备还是其它设备。不同设备需要实现的结构不一样。
我觉得你还是应该买一本《linux驱动程序(第二版)》看看先。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-28 14:34
DOS,今天还是看不到给分的按钮,一会重开一个贴给你分吧,我先要测试的板卡是PLX LITE SDK的那个,上面只是有一个PCI9054,CPLD和SRAM,我呢,只是需要读写SRAM里面的数据就可以了,所以,我想我的这个应该是属于字符行设备驱动开发吧?

不知道理解的是不是正确?
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-05 15:14
是字符设备驱动程序,你应该直接看plx公司的源代码呀!,那里应该比较清楚。
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-05 18:14
可是PLX公司的资料上面有LINUX下的驱动源代码吗?我没有看到阿?
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-05 20:32
当然有啊,你可以在本站下到其3.3版(专业版),里面有linux的源代码。
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-06-06 20:33
ok,i will go to download it.thanks a lot!
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-06-07 13:35
fwzfwz1:
  我怎么没有找到你说的PLX的SDK里面关于开发PCI9054的LINUX例子程序啊,能不能帮忙找一下啊,如果你有发到我的邮箱好吗?

  zhangyanping115@163.com

  下次等录一定给分答谢了!
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-06-10 11:15
zhangyanping1:
 已经给你发过去了,收到了吗
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-06-10 12:20
fwzfwz1:
  
  呵呵,收到了,多谢了,我在读源代码,可是发现好像不是LINUX下的,没有看见init_module()阿!
  
  另外开贴给你分吧!以表感谢!
sihuijian
驱动牛犊
驱动牛犊
  • 注册日期2002-06-28
  • 最后登录2010-12-12
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-07-13 11:35
去下载一个windriver for linux ,可以使用一个小时,重新输入评估刷新又可以接着使用,还可以。
游客

返回顶部