初学者:FPGA驱动的问题
我是一个刚接触Linux驱动的菜鸟,最近在做个东西,是一个FPGA通过PCI总线连在ARM上,我现在要在Linux读取这个FPGA,大体思路是什么?谢谢前辈帮助。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我是一个刚接触Linux驱动的菜鸟,最近在做个东西,是一个FPGA通过PCI总线连在ARM上,我现在要在Linux读取这个FPGA,大体思路是什么?谢谢前辈帮助。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
问题都没讲清楚,你要读写FPGA片子上的啥,RAM?对于PCI/PCIe的外设通常是利用某个BAR来映射一段物理地址空间来使用,然后在驱动中再通过ioremap映射到内核的虚拟空间中,调用readX/writeX对于指定的地址读写时实际上是直接发读写信号给外设,外设上收到信号之后地址译码器根据BAR值和CPU想访问的值来判断出想做什么操作。
ARM的话应该没有MMU吧,不知道ioremap是不是可以省了,没在这个平台上写过驱动。
通过pci连接,这不能叫fpga驱动,应该是标准的pci驱动。看看pci的例子。
建议看看网卡驱动,网卡一般都是通过pci连接的
你这个属于PCI驱动编程范畴,看看内核里相关的PCI驱动就可以了。
有个问题请教一下楼主,你用什么型号的芯片,我找了好长时间带PCI
总线的ARM都没找到。
一般的ARM7不带MMU功能,ARM9以上都有MMU功能
哦,IXP425,一个小的PCI接口。
谢谢各位了,是我的错,我搞错了,不是连在PCI上,而是连在扩展总线上了,与PCI每关系。
刚接触,不要见笑,呵呵。
这里又有一个问题:我用的是uclinux,它是不是没有虚拟内存管理啊?如果没有,那么ioremap还起作用吗?还有,如果没有中断处理,我直接在应用层写驱动行不?
用uclinux就简单了,就不需要映射了,可以直接操作地址空间了。