当前位置: 技术问答>linux和unix
SC36410下的fpga驱动
来源: 互联网 发布时间:2017-01-25
本文导语: 各位前辈好!有个问题向大家请教,我现在S3C6410下开发与FPGA的接口驱动,还是个新手。 6410的xmoaddr[0:19]部分端口是与gpio端口复用的,在驱动的时候怎么对gpio控制器进行设置? 万分期待大家的回复!谢谢 ...
各位前辈好!有个问题向大家请教,我现在S3C6410下开发与FPGA的接口驱动,还是个新手。
6410的xmoaddr[0:19]部分端口是与gpio端口复用的,在驱动的时候怎么对gpio控制器进行设置?
万分期待大家的回复!谢谢
6410的xmoaddr[0:19]部分端口是与gpio端口复用的,在驱动的时候怎么对gpio控制器进行设置?
万分期待大家的回复!谢谢
|
不用配置gpio的,需要设置对应的memory的寄存器,其 address range from 0x1000_0000 to 0x17FF_FFFF stands for Xm0CSn[0],然后直接使用映射物理地址就行了。就把FPGA当成一个外部存储器就行了。
|
额,这个就没有办法了啊,上面说的0x1000_0000 to 0x17FF_FFFF的前提建立在地址线最少27根上的。
|
20根地址线只能访问1M地址空间,想要访问128M,可以利用7位GPIO进行地址扩展!
|
那是不行的,因为csn[0:5] 是用于设定外部存储器的地址,你可以用其他的普通的IO口来组合使用。不过在寻址的时候比较麻烦!
|
楼上正解。我正好在omap上用GPMC外接一个fpga,也是这么干的,如果地址线不够用的话,可以用gpio来扩展。
|
这个肯定要修改电路图的哈
|
用GPIO扩展的地址空间,需要在修改设备内存访问函数,自己重新封装。处理器不能同时访问GPIO不同的地址空间,需要软件自己搞定。
dma地址长度,可以用dma_set_mask搞定。
dma地址长度,可以用dma_set_mask搞定。
|
dma不需要专门的引脚,其一般传输为物理地址到物理地址,这个物理地址的范围很广,包括IO地址和内存地址。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。