This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Working code originally built with compiler 6.0.2 will not execute with 6.4.2

I deployed an application last year with CCS5 and compiler version 6.0.2. I have upgraded to CCS6.1 with compiler 6.4.2 since, and now this working code will not execute. I believe I have narrowed it down to a memcpy call within rts2800_fpu32.lib. I attached a screen-shot of a diff between the current/bad map file and the original/good map-file. On the right is the old/good  map-file from last year, and in this you will see the memcpy_ff function within rts2800_fpu32.lib, which is 21 words long.

On the left side is the new/bad map file, and the memcpy function (note it is now memcpy, not memcpy_ff) is only 3 words long.

Executing this new code in the debugger, at a structure copy in DSP2833x_ECAN.c (probably the first structure copy that occurs during the init-process), the resulting assembly language from this C line:

canes_shadow.all = ECanaRegs.CANES.all

attempts to call the 3word-long memcpy, and the code flies off into bad memory space.

I have verified that my rts2800_fpu32.lib is the latest available. Also on some machines, if I change the compiler version to 6.2.7, the code will execute (and the map-files both show a memcpy_ff function), but this is inconsistent between machines, so it is not a viable solution.

Thanks,

Jim