以前总是没写博客的习惯,总感觉记录些东西太过麻烦。但还是慢慢的感觉,有些东西还是记录下吧,好记性不如烂笔头嘛。
最近公司要我负责linux下的PCI驱动,感觉挺无处下手的。大概的驱动框架肯定没问题的,这个问题不大,但问题就在于具体的实现细节。翻阅了很多书和资料,都没找到很合适的参考实例,往往都是给出了一个泛泛的框架,参考价值不大。后来仔细问下我们小组组长,才知道用的芯片是9054,通过9054控制器去控制一个FPGA模块,所有的数据从FPGA采集,然后经过PCI总线传输至linux系统。仔细查了下,从PLX官网下下载了一份PLX的SDK。
安装SDK里面的使用说明,安装了SDK,分别表演了API库,APItest等实例,当然了还有9054的驱动模块。SDK里面提供了一些很有用的工具,startlog就是一个很不错的调试工具,可以很方便的打印出调试信息,一些对驱动执行操作的时候驱动程序执行的操作等。Apitest程序是sdk里提供的一个测试程序,用来测试api函数是否正常工作,也可以用来检测驱动程序是否有问题的。plxcm则是一个调试器,可以方便的对pci(9054)的内存,寄存器等进行读写的工具。但是,个人感觉非常不好用,本人就成功运行一次,其他的N次都是执行的过程中在monitor函数中卡死了。具体原因不是很清楚,追踪了下代码,一层层的封装函数,实在费劲,最终无奈放弃。驱动调试暂告一段,待继续。。