Hi,
I have been tracking down and issue for a long time and I' out of ideas. Hopefully can get some fresh things to try. I have an application modulating and demodulating a signal through the audio in and out of the OMAPL137 eval board from Spectrum Digital. I'm stress testing the protocol and am not able to pass some number of transmission without a considerable amount of errors. I actually have two EVM one sends data through the audio out, the second unit receives the data, echo it back and the first board demodulates and compares the data sent with the received. A simple loopback BER test. The code generates data in the ARM, signals the DSP to read it and modulate it, receives the data, demodulates it and store the received data into shared memory. All this is done running SYS/BIOS on both processors the ARM and the DSP.
I can run this routine for 10, 100, consistently with out any errors or with ver minimal errors. In the order ppm. When trying to test overnight, lets 100K times, some iteration will have a very high number of errors. I have set up the code to stop on high number of errors so I can look around the shared memory between the arm and the dsp. In my last findings the data makes it to the audio chip buffers but when looking into the shared ram, it is a bunch of garbage. This is after succesfully running for 1000 of times.
Well..... sorry for the long explanation.
I have added code to Cache_wbInvAll(); after the ARM writes to the shared memory and when the ARM reads from the shared memory. Is not the most efficient way but I do it just to be safe I'm actually looking at the real data and not something cached. I;m not doing a FIFO or buffer application but a very simple, put something in a share memory location, let the other side know is there to access it. As far as I can tell my code does not allow for multiple things to read or write from the shared location.
Is there anything else I should be aware of or any guidance someone can hint me.