• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C6000 Multicore DSP » Keystone Multicore Forum (C66, 66A, AM5) » Using MessageQ with NDK
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Training Available
TI provides self-paced online training that introduces the primary components of the KeyStone II family of SoC devices.

  • KeyStone II SoC Overview >
  • KeyStone II Software Overview >
  • KeyStone II ARM Cortex-A15 Corepac Overview >
  • More Information >
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      It’s our second anniversary, but you get the present!

      Posted 4 days ago
      by Lindsey Bare
      It’s hard to believe it’s already been two years...
    • $core_v2_blog.Current.Name

      Limited time offer: Save $100 on Keystone-based EVM!

      Posted 17 days ago
      by tscheck
      Have you been thinking about ordering a TI Keystone-based EVM...
    • $core_v2_blog.Current.Name

      Imagine the impact…TI’s KeyStone SoC + HP Moonshot

      Posted 28 days ago
      by Sanjay35057
      Last week, market leader Hewlett Packard announced a huge change...

    Forums

    Using MessageQ with NDK

    This question is answered
    Saurabh Kumar Singh
    Posted by Saurabh Kumar Singh
    on Aug 01 2012 00:45 AM
    Prodigy215 points

    Hello everyone.

    I am facing a problem with NDK application when i am trying to add the IPC module for MessageQ creation to write the received data and pass it onto other cores.

    I have modified the .cfg file and other changes so that i can run an NDK appl. with CCS Simulator. Then i tested the helloWorld_evmc6678l NDK example application in CCS Simulator and it was working absolutely fine.

    Also, i have created two application using the IPC module so that one creates the MessageQ and reads messages from it and other application to write the data into the MessageQ. These two applications are also working absolutely fine and i have verified the received data.

    Now, the problem comes when i try to integrate  IPC MessageQ appl and helloWorld_evmc6678l NDK application. The intention here is, the data received by the NDK application is then written to a MessageQ and which in turn is then read by the application running on the other core. But it does not communicate, even after trying almost every possible thing. Frankly, now i have run out of ideas.

    So my question is, Is there something about IPC and NDK modules that i have missed out? If not, then can somebody please help me figure out what is missing/going wrong here.I will be really grateful.

    Thank you,

    C6678 IPC MessageQ NDK with IPC
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Varada Bellary
      Posted by Varada Bellary
      on Aug 01 2012 14:54 PM
      Expert5750 points

      There maybe some internal resource conflict when you merge IPC-msgQ application with NDK.

      Which IPC transport does your application use ?

      In the integrated application, is NDK receiving messages ?

       

      Regards,

      Varada

      ---------------------------------------------------------------------------------------------------------

      Kindly click the Verify Answer button on this post, if it answers your question.

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Saurabh Kumar Singh
      Posted by Saurabh Kumar Singh
      on Aug 02 2012 02:04 AM
      Prodigy215 points

      Hello Varada. thanks for the reply

      Varada Bellary
      In the integrated application, is NDK receiving messages?

      Yes, the integrated application is receiving the UDP packets successfully and correctly.

      Varada Bellary
      Which IPC transport does your application use ?

      In the integrated application in using the QMSS transport module under IPC.

      Varada Bellary
      There maybe some internal resource conflict when you merge IPC-msgQ application with NDK.

      Yes Varada, that was my first conclusion too. After a little bit of reading, i found that QMSS and MessageQ are conflicting when being used in the same application. Also, the other MessageQ application (which will read the data from the msgQ and runs on another core) uses MessageQ, not QMSS. So this mismatch is probably leading to the issue of non-communication. Correct me if i am wrong.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Varada Bellary
      Posted by Varada Bellary
      on Aug 02 2012 18:38 PM
      Verified Answer
      Verified by Saurabh Kumar Singh
      Expert5750 points

      Hi Saurabh,

      Yes. For core to core IPC, the underlying transport on both sides should be the same.

      About resource conflict issue, since NDK also uses QMSS to communicate, there is very likelihood of some conflict. Or there could be incorrect/duplicate initialization on queue manager done by both applications.

      I would recommend a slightly different approach. That is – using shared memory based IPC transport of messageQ

      References  :

      http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide#IPC_Shared_Memory_Transport_Message_Passing

      sample test code :

       “ .. \pdk_C6678_xx_xx_x_x\packages\ti\transport\ipc\examples\shmIpcBenchmark"


      Hope this helps.

       

      Regards,

      Varada

      ---------------------------------------------------------------------------------------------------------

      Kindly click the Verify Answer button on this post, if it answers your question.

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Alpaslan Lorasda����
      Posted by Alpaslan Lorasda����
      on Aug 03 2012 04:19 AM
      Prodigy135 points

      Hi, 

      I want add something  I have observed about the recommended approach.

      I also try to NDK example and IPC by using Shared Memory message passing. Core0 is the master running NDK application, and also communicates with the other cores over different queues at a rate of 50Hz. After sometime it gives an "A_invalidQueueId" exception. When I set the number of slave cores to 2, this error is not occurred. 

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Saurabh Kumar Singh
      Posted by Saurabh Kumar Singh
      on Aug 06 2012 01:23 AM
      Prodigy215 points

      Hi Alpaslan,

      If its not too much trouble, can u please post the .cfg file you are using in this post. It will help me tremendously.

      Regards.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use