This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

My doubt on messageQ create

Hi,

Currently I am using IPC_1_25_03_15 package and bios_6_35_04_50 package.

I follow the example in PDK package, C:\ti\pdk_C6678_1_1_2_6\packages\ti\transport\ipc\examples\qmssIpcBenchmark. It works fine.

The original queue name is "CORE0", "CORE1"... But when I try to modify the queue name, i.e. "JIECORE0", "JIECORE1", it stops at messageQ_open function. It seems like the new name cannot be found in nameserver.

Is anyone know what happens there?

Thank you very much.

Jie

  • Hi,

    Create a MessageQ instance.

    The name supplied here does not have to be in persistent memory. The maximum length of the string supplied here, including the '\0' terminator, is '32' by default.

    There are no verifications to ensure that the name supplied in MessageQ_create() is unique across all processors. Caution must be exercised to ensure that each processor uses a unique name.

    For more information refer IPC user guide:
    processors.wiki.ti.com/.../MessageQ_Module

    I have tested the example with modified queue names like "JICORE0", "JICORE1", it is working fine.

    Thanks,
  • HI Ganapathi,

    Thanks for your reply.
    Just now, I check the System_printf() function. I think it makes a big trouble, i.e. "JICORE0JICORE0JICORE0JICORE0JICORE0JICORE7".....much larger than 32 characters.
  • Hi,

    Yes, System_printf() function Write formatted output to a character buffer.

    This function is identical to printf except that the output is copied to the specified character buffer buf followed by a terminating '\0' character.

    Better to allocate the maximum character buffer size on your code
    /* Benchmark parameters */
    Char localQueueName[32];
    Char nextQueueName[32];
    Char prevQueueName[32];

    Thanks,