新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Linux操作系统下的PCI驱动开发

Linux操作系统下的PCI驱动开发

作者:时间:2011-06-10来源:网络收藏

  4 模块的加载

  程序模块的加载通常有静态加载和动态加载两种方式。动态加载是利用的module特性,在系统启动后使用insmode命令把程序(.o文件)添加上去,然后通过rmmod命令卸载,这种加载方式有利于程序的调试,可以随时更改;静态加载就是把驱动程序直接编译到内核里,在系统启动后直接调用,显然这种方式对于调试阶段的程序比较麻烦,而且效率较低,因而只适用于最终版本的程序。因此,程序者通常先用动态加载方式来调试,调试完毕后,再编译到内核里使用。

  静态加载时,通常先把驱动程序原文件放在内核驱动相应类型的文件夹下,这里的驱动属于字符类型,可拷贝到…\linux-2.4.x\drivers\char下。然后再更改…\linux-2.4.x\drivers\char\Makefile文件,并添加如下语句:

  这样做的目的是根据编译选项$( CON-FIG_PLX9054)来决定是否要添加设备驱动。

  之后,再在…\linux-2.4.x\drivers\char\Config.in中添加语句tristate’PLX9054 Support’CONFIG_PLX9054,这样就可以在运行menuconfig时产生与设备对应的编译选项,图2所示是其编译选项界面图。图中,在前面的尖括号中点Y表示静态加载,点M表示作为模块动态加载。

  最后,运行make menuconfig,剪切内核,并选中需要的模块所对应的编译选项,编译内核。

  5 驱动程序的测试

  由于所编写的驱动程序是在PLX官方驱动的基础上得来的,因此,在这里,为了方便测试起见,也应使用PLX公司的SDK包中的测试程序来查看9054的配置情况,图3所示为五个基址寄存器的映射情况。图4所示为公共缓冲区的映射情况示意图。

  6 结束语

  本文首先介绍了在Linux下驱动的方法,然后介绍了如何将驱动静态编译到内核,这种方法非常适用于以Linux作为嵌入式系统的驱动程序。可以看出,由于Linux系统完全开源,其驱动程序较Windows下的驱动程序简单易懂,框架感更强。此外,由于其具有丰富的开源资源,故其开发成本较低。因此,我们有理由相信,Linux在未来的市场中的地位会变得越来越重要。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭