For the last 40+ years, I never put released code into production.
I felt all the debug work was done in debug. The product worked in debug. The last thing I wanted was to compile in release mode and then end up with an issue in the field that did not exist back in the lab.
Now that I'm retired and can play, I decided to take my K64 debug code and compile it into release (optimized) code.
I am using Rowley's Crossworks IDE which uses the GCC software tool chain.
Right out of the start -- the release code failed!!!
Is this common?
I can see a reduction in code size. I suspect smaller code relates to a speed improvement.
BUT -- I can't find the issue in release code because the issue does not exist in debug code.
Those of you that place ARM devices into production -- do you leave the code in debug where all of your testing took place or are you comfortable placing release code in the field.