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.

C5510 dsplib functions crash my application

Hello,

I'm trying to get simple DSPLIB functions to work in my application, specifically the fir2 function. The problem is that whenever I call it, my program halts. I don't know why it's stopping, it just stops dead right when it calls the fir2 function. I guess I'm not very experienced with the DSK, so I don't know if this is what a segmentation fault looks like or not.


Here is what I've tried so far:

* I rebuilt dsplib specifically for the large memory model and my cpu revision (2.1)

* I made sure my coefficients and delay buffer were in internal memory, as per the dsplib reference manual.

* I tried building and running the examples, but the emulator fails when I try to load them (I can post the error message later).

Does anyone know what could be happening here?  I found one other post from someone with my same issue, but there was no solution posted. My instinct tells me it's something with my variable allocation or memory map, because the dsplib code should just work. I'll keep plugging away at it, but please I've put a lot of time into this already and I'd like some help!

Thanks,

George

  • So I figured out the problem and thought I'd post it here in case it helps anyone else. But first I want to give a major thanks to the folks at TI technical support for giving me ample time to do everything myself. They don't waste any time, even to show me that I'm a valued customer.


    Sarcasm aside, my problem was between my keyboard and chair. It turns out I had task-overrun issues because the dsplib function I was calling required more cpu cycles than my short task loop allowed. So I optimized a little here and a little there (and made use of the fantastic DMA controller to handle my rapid McBSP accesses) and found enough CPU time to call the DSPLIB function without crashing my program. Now the DMA samples the McBSP into a buffer, then interrupts the CPU only when the buffer is full.  Then when the CPU is finished processing the buffer, the DMA pushes the samples back to the McBSP. That's the way to sample at 96KHz and still have loads of CPU time available for DSPLIB functions.

  • Hi,

    Thanks for sharing your update which would be helpful to other E2E forum community members.

    We appreciate your valuable efforts.

    Thanks & regards,

    Sivaraj K