Other Parts Discussed in Thread: MATHLIB
Tool/software: TI C/C++ Compiler
Hi everyone,
I have a rather complex signal processing project. So far, I worked with compiler version 7.4.x (latest was 7.4.23). I developed the code without compiler optimization to track down the functionality. Then, I activated compiler optimization and the same functionality worked with lower measured load - everything was fine.
Recently, I had to switch from compiler version 7 to version 8. Now, the code worked when optimization was not used. However, the code does no longer work as expected when switching on optimization (level o2 - global optimization). I have changed some code fragments and deactivated optimization for one specific file to have the code running propperly again but I do not think that this is really a preferable solution.
The code is a sequential flow of operations in an interrupt service routine- no dependency on multi-threading is involved. Also, no RESTRICT keyword is used. I use the TI mathlib and dsplib. Also, it makes a difference if using the 8.1.4 or 8.2.1 version of the compiler: the shown undesired behavior differs. I also tried activating various compiler options, e.g., the option to keep the order of floating point operations. Each of those did not really solve the problem.
Are these kinds of problems known from other users? What can I do to track down the reason for the malfunction? Maybe, the optimization done by compiler version 8 is broken?
Best regards
Hauke