nios驱动
? ? ? ?对于有的器件控制器,所谓的驱动程序就是使用altera自己的api函数,直接驱动芯片接口就可以,这类似于驱动程序。如flash接口驱动程序。我们可以参考nios外设的手册。 ? ? ? ?另外就是sopc builder中没有集成的非标准的外设,这时候我们基本上会使用类似于io管腿去生成一些控制信号来完成对外设芯片的控制,这时我们可以参考手册一些头文件去生成结构体(sopc.h)和(xx外设.h),其中sopc.h主要是对pio的定义,如基地址啊,管腿信号方向等等,(xx外设.h)则是对驱动程序的函数接口的定义,然后自己编写一些接口函数生成驱动。 ? ? ? ? 还有一些方式生成驱动:1)我们可以直接用硬件描述语言直接编程,但是这样工程量比较大了,我们需要的在N多句的程序代码中去描述一个动作,这样比较繁琐; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2)在nios主程序main.c中include一些头文件,直接对外设进行简单的操作,如简单的sdram读写操作,我们可以#include "system.h",找到基地址,然后 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??unsigned short * ram = (unsigned short *)(SDRAM_BASE+0x10000); //SDRAM地址 之后向这个地址送数或者从这个地址读数即可。这个操作也仅仅是局限于几个简单的动作,如果动作繁琐,需要初始化,并伴随字节读写,或者突发读写等等操作的话,也是可以在main函数中一句一句的写出来,但是还是推荐调用驱动函数接口的方式来完成应用层的操作。。 这是本人的一些理解,如果有什么不妥,可以批评指出 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |