I am having trouble converting a program into release mode for further development and testing. I have reached the memory limit of 32k in debug mode and release will compile with only 26k leaving more room for functions. However when I compile in release mode, then program on my board nothing happens. Upon resetting it should blink a LED 5 times then begin printing debug on UART0. However nothing happens and I get no debug prints. It works in debug mode but not release mode. I have already made sure that all the other project that I use code from/reference are in release mode as well. Is it possible that the pin mapping changes between debug and release?
I am using a generated hex file to program the board.
It looks like I need some variables to be labeled as volatile, which I have done. However my understanding is that missing volatile on variables would not change the startup routine. the program does not even execute the LED blink on starting up. We are thinking that it is an issue with the startup files?
Assuming that you are building your code using LPCXpresso IDE (as this is the LPCXpresso IDE forum), then why don't you try connecting up a debug probe - like the LPC-Link2 - and try debugging?
Regards,
LPCXpresso Support
Take a look at this faq
Especially the section on "Optimized code fails to execute correctly"