Hi everybody,
I'm using TMS320C6678 for a biomedical application. The software is a single task multicore application running in bare metal, and inside are used a lot of functions from the dsplib including FFT double precision, matrix transpose etc etc...
In order to receive data from a Zigbee module I wrote a service routine for the GPIO0 interrupt that is triggered every 100ms. The entire signal processing takes less than 500ms (that is my realtime requirement).
Now, the problem is that the interrupts from the zigbee occur between the signal processing and destroy the data that are stored into all the variables that I'm using.
I'm writing the code in C, and seems that there isn't a push registers / pop registers mechanism or it's not working properly. Actually, I don't even know if there is one when the C code is compiled, or if I have to explicitly write one in the C code.
When I call a C function the destruction of the data in the variable usually doesn't happen, but I can't understand why it happens with interrupts.
What should I do to avoid the destruction of the data into the variables when an interrupt occours?
and also, if an interrupt occours in an FFT call, what is the effect? the result is also corrupted like I explained before?
Thank you for your help
Carmine