Hi all,
I've spent almost a day trying to find a cause of erratic behavior of our F28335 device. We've been using v1.31 FPU library and RFFT and ICFFT routines. Finally I narrow it down to an inverse complex FFT routine. It turned out that, after calling the function, one word in memory was corrupted outside of ICFFT variables (and of course in our case there was some other important variable, that could be responsible for the mess). To be exact, this word is one address above the ebss variables that ICFFT has allocated. It seems that the written value is a pointer to one of the buffers used by ICFFT.
I've checked if there is some newer version of the lib, and there was, 1.40. I look at the revision history: nothing there. But I linked it to my project anyway. And after double checking I'm pretty sure that the bug is gone, no spurious writes to memory (I've checked memory map, because after relinking the write can be somewhere else, maybe even in a hole, so you would not see any problems even when the bug is there).
After that, I compared the source codes of the assembly of the two lib versions. No changes, the codes are the same.
So I've compared the binaries of the ICFFT routines, and they ARE different.
Can someone confirm, that this bug is gone in 1.40? Not only in the case of ICFFT of size 1024 we are using, but in all cases?
Please, TI folks, can you take care of the changelogs of you software, because it could spare a lot of time to us.
Regards, Andy