Forum: Mikrocontroller und Digitale Elektronik XC16 Optimierung


von Max H. (hartl192)


Lesenswert?

Ich habe heute angefangen mit dem XC16 zu programmieren. Ich habe mit 
bei meinem Testprogramm das Disassemly Listing angesehen und habe das 
gesehen:
1
26:                    LATB++;
2
  02C2  801664     mov.w 0x02cc,0x0008
3
  02C4  E80204     inc.w 0x0008,0x0008
4
  02C6  881664     mov.w 0x0008,0x02cc
Das könnte man ja mit einem einfachen inc.w LATB  in einem Drittel der 
Zeit lösen.
Kann es sein, dass der ineffiziente Code ein Produkt der in der Free 
Version fehlenden Optimierung ist?

Gruß

: Bearbeitet durch User
von Max H. (hartl192)


Lesenswert?

Hat jemand ein Antwort?

von Kindergärtner (Gast)


Lesenswert?

Richtige™ Architektur (ARM) benutzen, gratis den GCC downloaden & 
verwenden und dessen Optimierung geniessen.

von Max H. (hartl192)


Lesenswert?

Kindergärtner schrieb:
> Kindergärtne
Genau dort gehörst du hin.

Wenn ich einen Beitrag der mir nicht weiterhilft suche, dann klicke ich 
einfach den Ersten auf der Startseite an. Spart uns beiden Arbeit: Ich 
müsste keine Frage stellen und du kannst ungestört mit deinen Freunde, 
falls du welche hast, spielen.

von Stampede (Gast)


Lesenswert?

hast du denn auch alle Optimierungsstufen an?

von Max H. (hartl192)


Lesenswert?

Stampede schrieb:
> hast du denn auch alle Optimierungsstufen an?
Nein hatte ich nicht. Ich dachte bis jetzt, dass die Optimierung in der 
Free Version überhaupt fehlt. Weil ich beim Kompilieren diese Meldung 
erhalten habe, habe  ich sie wieder deaktivier:
>Options have been disabled due to restricted license
>Visit http://www.microchip.com/ to purchase a new key.
Nach genauerer Recherche habe ich herausgefunden, dass die Optimierung 
nur teilweise "disabled" ist.
Jetzt wenn ich sie aktiviert habe, sieht gut aus:
1
45:                  LATB++;
2
  02D2  EC22CC     inc.w 0x02cc

Danke für den Denkanstoß :-)

von Stampede (Gast)


Lesenswert?

Die einzige Optimierung die fehlt ist die "Procedural abstraction", die 
gibt in Vollversion. Damit kann man nochmal so ca. 10% an Flash 
einsparen. In Punkto Lauftzeit gibt sich das aber nichts.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.