Gast
#2114029
Hallo,
wenn ich folgenden Xmega-Code ohne Optimierung (wg. Debugmöglichkeit)
übersetze, funktioniert er nicht, weil das geschützte Register nach der
CCP-Zuweisung nur für 4 Befehle freigeschaltet ist, der Compiler aber so
umständlich übersetzt, dass 5 Befehle nötig sind:
CCP= CCP_IOREG_gc;
0000018B LDI R24,0x34 Load immediate
0000018C LDI R25,0x00 Load immediate
0000018D LDI R18,0xD8 Load immediate
0000018E MOVW R30,R24 Copy register pair
0000018F STD Z+0,R18 Store indirect with displacement
CLK.CTRL= CLK_SCLKSEL_PLL_gc;
00000190 LDI R24,0x40 Load immediate
00000191 LDI R25,0x00 Load immediate
00000192 LDI R18,0x04 Load immediate
00000193 MOVW R30,R24 Copy register pair //Warum so
umständlich?
00000194 STD Z+0,R18 Store indirect with displacement
Wenn ich die Optimierung einschalte, lässt sich das Programm praktisch
nicht mehr Debuggen.
Kann ich im C-Code die Optimierung nur für die beiden Zeilen
einschalten?
Ich habe keine funktionierende (Präprozessor-?) Anweisung gefunden.
PS: Ich muss zugeben, dass mir bis jetzt ein Makefile zu
undurchsichtig/umständlich ist.