核间通信方式有MailBox、OpenCL、DCE、IPC、Big Data IPC这几种方式,因为我们要使用SYS/BIOS,所以把MailBox排除了,然后我们不涉及多媒体信号的处理,所以DCE应该也不合适。我看使用OpenCL是不能控制内存来对DSP代码进行优化,因此把OpenCL也排除了,那现在看来只剩下IPC和Big Data IPC了。

shared memory方式,有Big Data IPC例程。
processors.wiki.ti.com/.../Processor-sdk-MultiWay-of-ARM-DSP-Communication

1.通信原理示意图:

Spartan-6 FPGA通过ADS8568进行AD数据采集,并将AD数据通过核心板内部与ARM端连接的GPMC高速并行接口传送到AM5728 ARM。ARM端运行Qt程序,将从GPMC接口读取的AD数据进行波形显示。

TI AM5728 DSP+ARM多核通信开发例程_SYS\BIOS

 

2.硬件连接:

本案例基于信迈科技的XM5728-IDK-V3 (AM5728 ARM + Spartan-6 FPGA)评估板和AD模块进行测试。

TI AM5728 DSP+ARM多核通信开发例程_共享内存_02

TI AM5728 DSP+ARM多核通信开发例程_共享内存_03

将TL8568P模块的任意通道正确连接信号发生器,并使信号发生器输出10Vpp、5KHz的正弦波。本案例支持8通道AD数据同时采集与显示,本次测试仅演示ADC_V1通道AD数据的采集与显示。

TI AM5728 DSP+ARM多核通信开发例程_核间通信_04

按照用户手册操作步骤进行程序的加载,Qt程序运行后,LCD显示屏将显示AD数据的正弦波。点击屏幕上的pause按钮后,波形将暂停在某个状态,再点击start按钮,显示屏又将显示动态波形,点击Exit按钮可退出显示。

TI AM5728 DSP+ARM多核通信开发例程_AM5728_05

3. 代码解释

 

4.1  ARM端关键代码说明

 

(1) 打开“/dev/mem”设备,并将GMPC地址空间映射到用户空间。

TI AM5728 DSP+ARM多核通信开发例程_核间通信_06

src\dialog.cpp

 

(2) 初始化QWT图表。

TI AM5728 DSP+ARM多核通信开发例程_AM5728_07

src\dialog.cpp

 

(3) 绘制波形。

TI AM5728 DSP+ARM多核通信开发例程_共享内存_08

src\dialog.cpp

 

4.2  FPGA端关键代码说明

 

(1) 定义端口,采样率设置为510KSPS。

TI AM5728 DSP+ARM多核通信开发例程_核间通信_09

hdl\gpmc_ads8568.v

 

(2) 调用ads8568模块,控制AD数据采集。

TI AM5728 DSP+ARM多核通信开发例程_多核通信_10

 hdl\gpmc_ads8568.v

 

(3) 调用gpmc模块,将ads8568模块的数据通过并口发送出去。

TI AM5728 DSP+ARM多核通信开发例程_多核通信_11

hdl\gpmc_ads8568.v

参考文章:[问答] 关于AM5728核间通信方式(共享内存)问题  

​http://bbs.elecfans.com/jishu_1586927_1_1.html​

TI AM5728 DSP+ARM多核通信开发例程_多核通信_12