<quote>
Compiler options
As with all the ports, it is essential that the correct compiler options are used. The best way to ensure this is to base your application on the provided demo application files. In particular the ‘Omit Frame Pointer’ option within the MPLAB C30 optimisation dialogue must be checked.
<>
But when I open demo in version 5.1.1 and 5.1.2 I see options:
so we have "NO" omit-frame-pointer… (-fno-omit… vs. -f-omit… ) it seems be confusing a little bit.
Which is correct?
2. Assuming -fno-omit-frame-pointer is correct what is reason to use that option?
I am asking for just academic reason, I suspect is something connected with context switch? I try understand limitations of this port.
From documentation of compiler for example instrict function: __builtin_return_address can not use -fomit-frame-pointer, but not other warnings or limits in documentation (DS51284H).
(…)
C30-523 - Interrupt functions can overwrite saved value of W14
This error applies only to interrupt service routines. This could cause an _AddressError trap or a reset. Valid work-arounds (if not applying this patch) are to use -fno-omit-framepointer or use no_auto_psv with interrupt functions.
I will try test this, mayby tommorow.
Kind Regards
I tested my application and I do not see any side effects with compiler 3.11.
Without -fno-omit-frame-pointer is slightly less rom size and stack usage, but could be significant only in really big project (tested with -O3).
BTW:
Demo documentation is still wrong, I expected someone fixed that.
“‘Omit Frame Pointer’ option within the MPLAB C30 optimisation dialogue must be checked.”
If is checked then to options is added “-fomit-frame-pointer”, not “-fno-omit-frame-pointer” mplab 8.15.