• 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 » Development Tools » TI C/C++ Compiler » TI C/C++ Compiler - Forum » Loop buffer Exception inside DSPF_sp_fftSPxSP
Share
TI C/C++ Compiler
  • Forum
Options
  • Subscribe via RSS

Forums

Loop buffer Exception inside DSPF_sp_fftSPxSP

  • Jonathan Journo
    Posted by Jonathan Journo
    on May 01 2012 02:00 AM
    Intellectual475 points

    Hello,

    I am using a DM8148 custom board, and running on the C674x using EZSDK_5_03_01_15 components.

    components:

    - bios 6.32.05.54

    - cgt6x_7_3_1

    - c674x-dsplib_1_03_00_00

    In my DSP application, I have a high priority and short GPIO HWI.

    and three SWIs, with different priorities, running each the DSPF_sp_fftSPxSP kernel.

    the application runs for a while and then the code abort() with a loop buffer exception that point inside the DSPF_sp_fftSPxSP function.

    From my understanding, the FFT kernel use SPLOOP so It means it's interruptible.

    I have increase drastically my program stack just in case nesting those interrupts could cause a stack overflow.

    I do not understand what can cause a loop buffer ecxeption.

    the compiler should backup/restore the loop buffer content from/into the stack, isn't it?

    attached my project .cfg file and .map file.

    5153.map and config files.rar

     exception system_printf dump :

    [C674X_0] A0=0xfffffff4 A1=0xfffffffa
    [C674X_0] A2=0x2 A3=0xbd08eec1
    [C674X_0] A4=0xbbcbc1ec A5=0x942afda0
    [C674X_0] A6=0x3c8a296e A7=0x3c488329
    [C674X_0] A8=0xbc130142 A9=0xbbf71dae
    [C674X_0] A10=0xbcca3258 A11=0xbc9a7b3e
    [C674X_0] A12=0xbc153b72 A13=0x3d139de2
    [C674X_0] A14=0x18 A15=0xa46fa1d2
    [C674X_0] A16=0xbc58aa04 A17=0xbbe0b4eb
    [C674X_0] A18=0xbf3504f3 A19=0xa3830474
    [C674X_0] A20=0x3c5e3522 A21=0x3bf1b9a2
    [C674X_0] A22=0xbc95049c A23=0xbb44b5d4
    [C674X_0] A24=0x3f3504f3 A25=0x3f3504f3
    [C674X_0] A26=0x18 A27=0x942afd10
    [C674X_0] A28=0x16 A29=0x8
    [C674X_0] A30=0x9429a880 A31=0x9429a7f0
    [C674X_0] B0=0x3f0e39da B1=0x3f54db31
    [C674X_0] B2=0x8 B3=0x16
    [C674X_0] B4=0xbc09e63c B5=0xbcc51402
    [C674X_0] B6=0x3b05921e B7=0x3c065a70
    [C674X_0] B8=0xbc296d40 B9=0x3cb66404
    [C674X_0] B10=0x3cf28032 B11=0x3b109372
    [C674X_0] B12=0xc0 B13=0x7e0
    [C674X_0] B14=0x942d3788 B15=0x9524fe70
    [C674X_0] B16=0x9429a8c8 B17=0x3b9f4696
    [C674X_0] B18=0x942afda0 B19=0x8
    [C674X_0] B20=0x3d87c50c B21=0xbbd5f90b
    [C674X_0] B22=0xbd925cb6 B23=0x3b9cee52
    [C674X_0] B24=0xbf7b14be B25=0x3e47c5c2
    [C674X_0] B26=0x3cba7581 B27=0x3c444886
    [C674X_0] B28=0x3bacadac B29=0x3c970ca9
    [C674X_0] B30=0xbcb2f485 B31=0x3a092540
    [C674X_0] NTSR=0x1420f
    [C674X_0] ITSR=0x420f
    [C674X_0] IRP=0x9526978c
    [C674X_0] SSR=0x0
    [C674X_0] AMR=0x0
    [C674X_0] RILC=0x40
    [C674X_0] ILC=0x24
    [C674X_0] Exception at 0x95269954
    [C674X_0] EFR=0x2 NRP=0x95269954
    [C674X_0] Internal exception: IERR=0x90
    [C674X_0] Resource conflict exception
    [C674X_0] Loop buffer exception
    [C674X_0] ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x9526978c, sp = 0x9524fe70.
    [C674X_0] xdc.runtime.Error.raise: terminating execution

    C674x dm8148 exception SPLOOP
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • George Mock
    Posted by George Mock
    on May 01 2012 17:31 PM
    Guru51360 points

    Please confirm the version number of DSPLIB.  Because it is much more likely that you have dsplib_c674x_3_1_0_0 from here.

    Thanks and regards,

    -George


    TI C/C++ Compiler Forum Moderator
    Please click Verify Answer on the best reply to your question.
    The Compiler Wiki answers most common questions.
    Track an issue with SDOWP. Enter your bug id in the "Find Record ID" box.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • George Mock
    Posted by George Mock
    on May 02 2012 16:49 PM
    Guru51360 points

    Because of technical difficulties with the forum yesterday, Mr. Journo did not respond online, but by private message.  He did confirm that he is using dsplib version 1.03.00.00.  And to directly answer a side question ...  Yes, the dsplib routines are presumed to be re-entrant.

    I did determine that the current revision of dsplib (v3.1.0.0) has the same implementation of this function.  And that implementation is in hand-coded assembly.  So, upgrading would not help.  The dsplib team is aware of this issue, and they are taking a closer look.  I think we have everything we need, for now.

    Thanks and regards,

    -George


    TI C/C++ Compiler Forum Moderator
    Please click Verify Answer on the best reply to your question.
    The Compiler Wiki answers most common questions.
    Track an issue with SDOWP. Enter your bug id in the "Find Record ID" box.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Jonathan Journo
    Posted by Jonathan Journo
    on May 16 2012 16:30 PM
    Intellectual475 points

    Hello George,

    I'd like to know how to follow the issue.

    Is there a way for me to know what is the status of the research/analyze of the specific fft kernel?

    using the natural C fft function is quite lower and it harms the overall performance of our application.

    We're really waiting for a fastest solution than the natural C function. 

    Thanks for your comprehension,

    Jonathan.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Yimin Zhang
    Posted by Yimin Zhang
    on May 18 2012 10:42 AM
    Prodigy710 points

    Hi Jonathan,

    I am in charge of DSPLIB development. I verified that the exception does not occur in our unit test environment. It maybe related to interrupts. The exception happened in the middle of a SPLOOP. Interrupt return address points to the start of the same SPLOOP, which means interrupt should have happened during the loop. I wonder if you can turn off the interrupt and see if you still get the exception?

    regards,

    Yimin

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Jonathan Journo
    Posted by Jonathan Journo
    on May 24 2012 01:53 AM
    Intellectual475 points

    Hi Yimin,

    For your question, I am working with a GPIO interrupt for sampling task. The GPIO event interrupt is handled using the HWI dispatcher so I hope the bios does its registers/stack save/recovery correctly.  I am not using isr directly.

    I can't disable that interrupt because it is responsible to synchronize and trigger the other 3 SWI threads where the FFT is running in each of them.

    Instead of the GPIO interrupt, I have tried to connect a dm timer interrupt instead and the exception still occurs.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Yimin Zhang
    Posted by Yimin Zhang
    on Jun 08 2012 15:58 PM
    Prodigy710 points

    Hi Jonathan,

    We are still working on the issue. In the unit test, we added timer interrupt to try to catch the exception. So far, it has not happened. I will keep you updated of any progress.

    regards,

    Yimin

    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