Forum: Mikrocontroller und Digitale Elektronik XC16 Optimierung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.