• 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) » how to abort a EDMA3 transfer in progress?
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Resources
  • KeyStone Multicore DSP + ARM Product Folder
  • Keystone II MCSDK Download
  • Keystone II MCSDK User's Guide

  • KeyStone Multicore DSP Product Folder
  • Keystone I BIOS-MCSDK Download
  • Keystone I BIOS-MCSDK User's Guide

  • Keystone I & II Training

  • C6000 Multicore DSP Product Folder
  • C6000 Multicore Devices

  • DESKTOP-LINUX-SDK 01_00_00_07 Download
  • MCSDK-VIDEO 02_01_00_08 Download

  • C6472 and C6474 Online Training
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      Wireless base stations – why monitor the backup battery?

      Posted 5 days ago
      by Raj Radjassamy
      2G, 3G and 4G LTE base stations use lead-acid batteries as the...
    • $core_v2_blog.Current.Name

      Innovation through smart integration – achieving lower power, high performing small cells

      Posted 6 days ago
      by Debbie Greenstreet
      Wireless small cell market activity is accelerating lately and...
    • $core_v2_blog.Current.Name

      Four for Friday: What’s up at the Small Cells World Summit?

      Posted 19 days ago
      by Debbie Greenstreet
      If you are a follower of the wireless technology, you have probably...

    Forums

    how to abort a EDMA3 transfer in progress?

    This question is not answered
    Lyndon McGlothin
    Posted by Lyndon McGlothin
    on May 01 2012 09:03 AM
    Prodigy170 points

    how can I abort an EDMA that is in progress?

    I have a situation that I will need to abort a EDMA transfer if it takes too long.

    while I am polling the IPR bit for completion, if I detect a timeout I need to

    abort the current EDMA transfer and do what ever EDMA cleanup needed

    so a different EDMA transfer can be done.

    here is high level code example:

     

     


       CSL_edma3Init(NULL)


       handle = CSL_edma3Open(&obj, edmaNum, NULL, &status);


       channelHandle = CSL_edma3ChannelOpen(&channelObj, edmaNum, &channelAttr, &status);


       CSL_edma3HwChannelSetupQue(channelHandle, evtQue)


       CSL_edma3MapDMAChannelToParamBlock (handle, dmaChannel, paramNum);


       paramHandle = CSL_edma3GetParamHandle(channelHandle, paramNum, &status);


       CSL_edma3ParamSetup(paramHandle, &paramSetup)

       CSL_edma3HwControl(handle, CSL_EDMA3_CMD_INTR_ENABLE, &cmdIntr);

       CSL_edma3HwChannelControl(channelHandle, CSL_EDMA3_CMD_CHANNEL_SET, NULL);

     

       // poll IPR bit for completion

       do {
          CSL_edma3GetHwStatus(handle, CSL_EDMA3_QUERY_INTRPEND, &cmdIntr);
       } while ((!(cmdIntr.intr & chIPRBit)) && (timeoutFlag==0));

       if (timeoutFlag == 1) {
          // HOW TO ABORT EDMA TRANSFER
       }

     

       CSL_edma3HwControl(handle, CSL_EDMA3_CMD_INTRPEND_CLEAR, &cmdIntr);

       CSL_edma3ChannelClose(channelHandle)

       CSL_edma3Close(handle)

     

    thanks in advance for any help,

    lwmcgl

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Chad Courtney
      Posted by Chad Courtney
      on May 07 2012 08:30 AM
      Mastermind23265 points

      Lyndon,

      Once in the Transfer Controller's Queue it can not be canceled w/o flushing the queue itself. 

      Best Regards,

      Chad

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

      Please 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.
    • Karthik Ramana Sankar
      Posted by Karthik Ramana Sankar
      on May 09 2012 10:30 AM
      Intellectual1735 points

      Lyndon,

      Adding to Chad's point.

      If an EDMA Transfer request is taking more time than expected for completing the transfer, then there can be two reasons for this to happen:

      1) EDMA TR encounters an error condition and the DSP CPU should handle this EDMA TC error condition. Please, refer to section 4.3.4 "Error Registers" of the Keystone EDMA3 users guide.

      2) There is congestion in the TeraNet or at the memory end point (DDR3, MSMC or L2) interface and you need to re-visit your traffic scenario in this case.

      I hope this helps.

      Thanks,

      Karthik

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

      If you need more help, please reply back. If this answers the question, please click  Verify Answer , below.

      edma3
      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Lyndon McGlothin
      Posted by Lyndon McGlothin
      on May 09 2012 12:25 PM
      Prodigy170 points

      Thank you both for your replies.

      My issue is that I have a lower priority task start a DMA transfer

      while the DMA transfer is being done, a higher priority task

      is started and needs to do a DMA transfer also, so I was looking

      for a way to stop the current lower priority DMA transfer so the

      higher priority DMA could start.

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Lyndon McGlothin
      Posted by Lyndon McGlothin
      on May 09 2012 12:28 PM
      Prodigy170 points

      forgot,

      also, one of my other requirements is that if the

      DMA transfer takes more time than allocated

      I need to stop/abort the DMA transfer.

       

      thanks again,

      lwmcgl

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Karthik Ramana Sankar
      Posted by Karthik Ramana Sankar
      on May 11 2012 14:05 PM
      Intellectual1735 points

      Hi Lyndon,

      As Chad mentioned previously, it is not possible to cancel or abort a EDMA transfer request, which is already submitted to the transfer controller queue. One possible way to perform DMA transfers at different priority is to use separate transfer controllers (in other words TC queue) for each of the DMA transfers. There are totally 10 transfer controllers in Keystone devices.

      Another point which I like to add here is that, please select the DMA transfer timeout values always to be the worst case values for your current traffic scenario.

      I hope this helps

      Thanks,

      Karthik

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

      If you need more help, please reply back. If this answers the question, please click  Verify Answer , below.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • RandyP
      Posted by RandyP
      on May 13 2012 08:55 AM
      Guru61645 points

      Lyndon,

      Another solution to your problem could be to break the low priority transfer into many smaller transfers.

      If you are transferring 16KB, for example, with ACNT=4 and BCNT = 4096 and CCNT=1 and SYNCDIM=ABSYNC, this would be submitted as a single TR. Instead, break this into 16 separate TRs by using ACNT=4 and BCNT = 256 and CCNT=16 and SYNCDIM=ABSYNC, with ITCCHEN=1 and TCC=<this DMA channel number> and TCCMODE=NORMAL.

      With this, if the higher priority transfer is requested, it will only have to wait behind at most 1024 bytes being transferred on the lower priority transfer. Make that even smaller if you need to. This will increase the total time to do the lower priority transfer, but that does not sound like an issue for you.

      Regards,
      RandyP

      Search for answers, Ask a question, click  Verify  when complete, Help others, Learn more.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Lyndon McGlothin
      Posted by Lyndon McGlothin
      on May 14 2012 12:25 PM
      Prodigy170 points

      Thanks again for your replies,

      I think the best solution will be to break up the lower priority DMA

      transfer so a higher priority task can come in and do a transfer

      in-between the lower priority transfers.

      lwmcgl

       

      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