加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

nios驱动

发布时间:2020-12-15 06:50:51 所属栏目:百科 来源:网络整理
导读:? ? ? ?对于有的器件控制器,所谓的驱动程序就是使用altera自己的api函数,直接驱动芯片接口就可以,这类似于驱动程序。如flash接口驱动程序。我们可以参考nios外设的手册。 ? ? ? ?另外就是sopc builder中没有集成的非标准的外设,这时候我们基本上会使用类

? ? ? ?对于有的器件控制器,所谓的驱动程序就是使用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函数中一句一句的写出来,但是还是推荐调用驱动函数接口的方式来完成应用层的操作。。

这是本人的一些理解,如果有什么不妥,可以批评指出

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读