We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello.I've been having issues with a program of mine that works perfectly fine while running with optimizations enabled but if I disable it, it doesn't seem to get to main, the only exception being running in debug mode. I have set up the pins using MCUXpresso Config Tools v7, and did not modify any of the generated code except for changing the #pragma push and #pragma pop for #pragma clang diagnostic push and #pragma clang diagnostic pop in the MK22FA12.h header file generated by Keil, as the ARM6 compiler seems not to accept the former.
main
#pragma push
#pragma pop
#pragma clang diagnostic push
#pragma clang diagnostic pop
MK22FA12.h
I have also changed the first line in the scatter file for #!armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m4 -xc (was #! armcc -E) and disabled the "Use Memory Layout from Target Dialog" option in the Linker.
#!armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m4 -xc
#! armcc -E
Using debug mode every optimization setting seems to work fine.
Compiler: ARM V6.13.1
Board: MK22FX512AVLL12
SDK: MCUXpresso 2
IDE: Keil uVision5
I've included a simple project that makes one of the leds blink when it gets to main that reproduces the presented problem. I have tested with all optimization levels and the only one that does not work when I run is -O0*.*It does run, in debug mode only.If anyone could help me, I'd be really glad.
Blink.zip