shawn1416

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

。arm怎么给fpga传数据呢
FPGA的地址映射到ARM空间后,可以直接写寄存器,或者通过DMA传送。DDR没用过。FPGA的IP核对linux而言就像普通的设备一样,也是寄存器,数据总线。传输方式也是读写寄存器,或者DMA传输。
linux并没有为FPGA提供一套新的接口方式
。需要写驱动
IP的寄存器映射地址是编译时设置的,然后通过设备树传给驱动。驱动里面要做个虚拟地址映射才可以用。就这么一点区别,其他的和普通驱动一样
你如果不写成平台总线驱动,就可以不用设备树,写成普通驱动,不过写成设备树灵活些
什么设备或者子系统架构就看功能需求了
如果DMA和USB功能放到一起,写一个字符设备就行了。不管是usb还是dma,传完了都会有中断回调函数,这里面开启下次传送就行了。usb和dma共有这个字符设备
。杂设备会简单吗
是的,但是少不了几行代码,而且不好设置私有数据
也可以,分层、分模块。但是所有的数据最好在底层完成转移,就看你是否愿意花功夫去做
。DMA
这个DMA到DMA回环测试驱动,要自己做IP核
不需要了解AXI协议,zynq的DMA驱动都做好了,直接调用DMA的通用接口就行了
。USB3.0速度小于理论速度
有协议开销,而且批量端点的话,错误重传也会影响有效带宽
大数据量异步适合些,带宽是看用的什么端点传的,数据量大的时候与异步同步关系不大,测得300多MB/s,具体值忘了
大数量传用BULK和ISO端点传,BULK会错误重传,ISO保证带宽,但不保证数据的可靠性,可能会掉数据,另外linux对iso支持不好,建议用bulk
。一个hub同时接鼠标,键盘,传输数据线
带宽会受限HUB的带宽,再就是供电也会受限hub的供电能力,建议直接接root hub上
而且,我记得,鼠标和键盘用的中断端点,USB3.0协议会为这个端点保留一定的带宽,当然这个带宽不高,感性趣的话可以查查
。qt移植
网上有移植qt+opengl,eglfs,参考要少些,可以找找。我没有单独移植过qt+opengl,没这个需求。不过yocto里面有
。arm 版 ubuntu
单独编内核然后替换很方便的
不用修改文件系统,只替换内核,驱动等修改部分
。其他
yocto用git下来的都是tar.gz之类的包
很多驱动都有实现用户空间通用驱动的,像USB、I2C、SPI等

posted on 2017-08-28 16:22  shawn1416  阅读(148)  评论(0编辑  收藏  举报