We are using the TMS320C6472 in ultrasonic test equipment. Until now we have been using only
a single core (CORE0) and the system has 12 DSP cards communicating using TCP/IP.
I have reorganized the project so that it now uses both CORE0 and CORE1 on each of the 12 DSP cards.
CORE0 runs the TCP/IP stack and communicates with the other DSPs. CORE1 runs ultrasonic data processing.
CORE0 and CORE1 communicate using IPC/MessageQ.
When I started the debugging process I discovered the following:
IPC/MessageQ messages can be transmitted and received by both CORE0 and CORE1 but is extremely slow.
The round trip time for a short message (less than 256 bytes) is 30 milliseconds or more. The same message
is sent from DSP0/CORE0 to DSP1/CORE0 using TCP/IP and the round trip time is less than one millisecond!
DSP0/CORE0 =IPC/MessageQ=> DSP0/CORE1 =IPC/MessageQ=> DSP0/CORE0 30 milliseconds
DSP0/CORE0 =TCP/IP=> DSP1/CORE0 =TCP/IP=> DSP0/CORE0 1 millisecond
Being a little perplexed I then built the IPC/MessageQ example from TI. I changed it so that CORE0 sends a
message to CORE1 which sends the message right back to CORE0. The cores are doing nothing else.
I get the same very long round trip time.
Can someone shed light on what I may be doing wrongly? I cannot believe that what I am seeing is correct
but I am unable to find clues in the documentation.
I have added a zipped folder of the example project which contains a .cfg file with my SYS/BIOS settings.
For IPC the seetings are the same in my own project.
Versions of tools/libraries:
CCS 5.1
bios_6_32_05_54
edma3_lld_02_10_03_04
ipc_1_23_05_40
mcsdk_1_00_00_08
ndk_2_20_06_35
pdk_c64x_1_00_00_06
uia_1_00_03_25
xdais_7_21_01_07
xdctools_3_22_04_46