DM8168 GPMC接口实现DSP与FPGA高速数据交换:调试与应用
68 浏览量
更新于2024-09-05
1
收藏 82KB PDF 举报
本文档主要探讨了如何通过GPMC接口利用EDMA技术在DM8168 DSP与FPGA之间进行高速数据交换。在项目开发过程中,由于中文资料相对匮乏,作者花费大量时间研究了DM8168的数据手册和参考文档,最终成功实现了Linux环境下GPMC接口的驱动,并分享了调试过程。
GPMC(General-Purpose Memory Controller)是一种通用存储控制器,它允许DM8168这样的TI DSP芯片与外部存储设备如NORFLASH、NANDFLASH或SRAM等进行高效通信。这种接口并非DM8168独有,许多嵌入式平台,如BeagleBoneBlack和AM35XX,也具备类似的接口。
硬件连接的关键在于将GPMC配置为异步模式,使用CS3作为片选信号,GPMC_OEN提供输出使能时钟,同时仅使用16位数据线进行数据传输,类似于FIFO模式。FIFO_RRST则用于FPGA端的数据发送控制。实际使用的I/O口包括GPMC-CS3、GPMC_OEN、D[15:0]以及FIFO_RRST。
在Linux环境下,驱动代码主要集中在\arch\arm\mach-omap2\gpmc.c文件中,涉及的主要配置包括GPMC的七个特殊寄存器。这些配置已经在驱动函数中进行了封装,开发者只需调用相应的函数即可。在使用EDMA时,特别要注意地址的设置,源地址应为GPMC的物理地址,目的地地址为分配的内存空间物理地址,并确保EDMA的源地址模式为非自增,以配合FPGA的异步数据传输。
FPGA端的代码则负责在GPMC_OEN信号下降沿时发送16位数据到GPMC_DATA端口,同时实现数据的自动刷新。作者没有详述具体的代码细节,但强调了信号时序的精确控制对于数据交换的同步性至关重要。
总结来说,本文提供了在DM8168 DSP和FPGA间使用GPMC接口通过EDMA实现高速数据交换的方法,包括硬件连接、接口协议配置以及在Linux环境下的代码设计要点,对于类似项目开发具有实用参考价值。
2010-04-23 上传
2018-10-29 上传
2023-02-21 上传
2023-07-30 上传
2021-09-21 上传
2022-09-20 上传
weixin_38615783
- 粉丝: 3
- 资源: 892
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章