参考别人的程序并不一定是捷径

ALTERA的FPGA配置方法有很多,其中一种是使用仿真器向EPCS flash中烧写pof文件。现在在FPGA中实现了一个SPI总线控制器,通过这个控制器,可以使用软件直接向EPCS flash中烧写配置文件,而不再需要仿真器。
FPGA中,这个SPI控制器挂在wishbone总线上,wishbone总线的另一端从PCI总线转化而来——这是一个PCI从设备。
我需要完成这个PCI设备的驱动,通过该驱动程序,可以软件烧写EPCS flash。机子上的操作系统是vxworks5.5。
如果只有这些我觉得我可能很快搞定这个驱动程序。但是除此之外,我手上还有一份可用的windows系统上的驱动程序,虽然我不懂windows驱动的结构,但是可以根据函数调用关系看看是怎么操作的,然后改成xworks上的驱动就好了,不然我还要去看SPI控制器的verilog程序,多麻烦。
仔细一看,windows驱动程序中有两个文件中都有epcs的操作,而且方式完全不一样,有一份是按照ALTERA官方提供的接口函数名写的,竟然是用C写的,似乎不是windows驱动,所以我就先阅读着一份。我将这个驱动程序修改成xworks下的驱动程序,调试发现只有一个函数执行成功。
我认为既然有函数执行成功,那么其他函数执行失败一定是我没有修改好,继续找找是否还有什么问题。找了好久还是觉得修改得没问题。如果我这时候去看SPI控制器的verilog程序就好了。
总之我没找到问题,就去看了另一份windows驱动程序,这里就称之为驱动2吧。此时才发现,windows驱动中用的是驱动2。好吧,那么驱动2一定是对的,因为windows上确实可以实现软件烧写epcs了。但是我觉得这个程序中的很多操作都是莫名奇妙的,完全看不懂,我看了一天放弃了。
从头来吧。开始看verilog程序,从半下午看到下班时间正好看完。
看明白SPI总线的verilog HDL程序之后,觉得驱动写起来很容易,就边写边测试,9点半写完。总共用了一天班的时间都不到。
但是之前看别人的驱动程序,修改并调试花了一个星期,还是没有搞定。
这也只是提醒自己:只有了解了地基的构造,才可以向上盖房子!!!

你可能感兴趣的:(参考别人的程序并不一定是捷径)