Hi,
I have recently started experimenting off of the FFT Filter Demo for the c5505 EZDSP. I am having difficulty creating a test program to run what I would think of as normally on the eZdsp.
My first problem was that data would keep getting written to my global buffers when I had not written to them specifically. The program seems to be mapping temporary variables from my function onto the same address as these buffers.
I also have been having issues with the pointers I pass to my method. Sometimes during a for loop, after about 5 iterations, the pointer will change to point to the address 0x0, and then of course read the wrong values. My pointers will also get its contents cleared and then pointing to zero just before returning to the main function. Very strange behaviour to me.
My first problem I have fixed by making sure the buffers were in a different memory location as the temporary variables from my method would always go to the same address (even if my buffers were allocated there). I have not been able to figure out the second problem, but it has strangely gone away when I have removed some printf debug messages...
I'm wondering if there is anything that comes to mind that might be causing these problems. I can fix them by making my buffers small enough so that they do not overlap with the temporary variable location, but I would prefer to be able to have larger buffers because they might be necessary for my application.
I have attached my project files. These include the basic FFT Filter Demo project with a modified main.c as well as the addition of the following files: sine.asm, sine.h, sine_work.h, and sine_work.c.
Please let me know of any suggestions that might help me debug these problems.
Thanks,
Tommy