TI AM5728 DSP+ARM Multi-core Communication Development Example
Inter-core communication methods include MailBox, OpenCL, DCE, IPC, and Big Data IPC. Since we need to use SYS/BIOS, MailBox is excluded. Also, we are not dealing with multimedia signal processing, so DCE is likely unsuitable. I found that OpenCL doesn't allow memory control for DSP code optimization, so OpenCL is also excluded. Now, it seems only IPC and Big Data IPC remain.
For shared memory, there is a Big Data IPC example. processors.wiki.ti.com/.../Processor-sdk-MultiWay-of-ARM-DSP-Communication
1. Communication Principle Diagram:
The Spartan-6 FPGA collects AD data via the ADS8568 and transmits it to the AM5728 ARM through the GPMC high-speed parallel interface, which connects the core board internally to the ARM side. The ARM side runs a Qt application, which displays the AD data read from the GPMC interface as waveforms.

2. Hardware Connection:
This case is tested based on Sienovo's XM5728-IDK-V3 (AM5728 ARM + Spartan-6 FPGA) evaluation board and AD module.


Connect any channel of the TL8568P module correctly to a signal generator, and set the signal generator to output a 10Vpp, 5KHz sine wave. This example supports simultaneous acquisition and display of 8-channel AD data. This test only demonstrates the acquisition and display of AD data from the ADC_V1 channel.

Follow the user manual's steps to load the program. After the Qt application runs, the LCD screen will display the sine wave of the AD data. Clicking the "pause" button on the screen will pause the waveform in a certain state. Clicking the "start" button again will display the dynamic waveform. Clicking the "Exit" button will exit the display.

3. Code Explanation
4.1 Key Code Description for ARM Side
(1) Open the "/dev/mem" device and map the GPMC address space to user space.

src\dialog. cpp
(2) Initialize the QWT chart.

src\dialog.cpp
(3) Draw the waveform.

src\dialog.cpp
4.2 Key Code Description for FPGA Side
(1) Define ports, set sampling rate to 510KSPS.

hdl\gpmc_ads8568.v
(2) Call the ads8568 module to control AD data acquisition.

hdl\gpmc_ads8568.v
(3) Call the gpmc module to send data from the ads8568 module via the parallel port.

hdl\gpmc_ads8568.v
Reference Article: [Q&A] Regarding AM5728 Inter-core Communication Methods (Shared Memory)
http://bbs.elecfans.com/jishu_1586927_1_1.html

Technical exchange WeChat: 13670212541