-
Thread
Code optimieren ?
schneller sein? Wie oft wird die Funktion aufgerufen? https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
avr-gcc kennt auch 24-Bit Typen wie __int24.
-
Thread
Eigene 4bit-Integerzahl erstellen mit Über-Unterlauf in C
ATmega2560 und habe bisher bei meinen Projekten maximal 37% des Speichers belegt. Also muss diese Optimierung nicht sein, da hast du recht. Aber jmd fragte, was ich mit den übrigen Bits vorhatte. ;) guter Spruch
Zumal diese Optimierung des Speicherverbrauches auf Lasten der Performance geht.
-
Thread
Switch Case verzweigung so Anwendbar auf ATmega 32?
Vergleiche im Quellcode auf. Bei der Case-Methode beinhaltet jeder Case zwei Vergleiche. Der GCC optimiert das zwar, aber bei der If-Methode braucht man sich nicht auf die Optimierungsfähigkeiten des Compilers zu verlassen. 5. Trotz Optimierung erzeugt der GCC bei der Case-Methode meist
Yalu X. schrieb im Beitrag #2702147: > 5. Trotz Optimierung erzeugt der GCC bei der Case-Methode meist längeren > Code. Wenn man Pech hat, legt er eine Sprungtabelle mit jeweils einem > Sprung für jeden in den Intervallen enthaltenen Zahlenwert an
-
Thread
'var' may be uninitialized
denn dann würde das tool > die fallunterscheidung in deiner main beachten. Unterschätze niemals den GCC! > Vieleicht hat das aber auch was mit optimierungen zu tun, aber es wäre > mir neu, wenn ein compiler über mehrere c-files hinweg optimieren würde. Such mal nach "LTO", der GCC kann das schon
Michael Reinelt schrieb im Beitrag #4125648: > andere, schöne Alternative? [c] #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wuninitialized" ... #pragma GCC diagnostic pop [/c] ;-)
-
Thread
Volatile Variablen und Optimierung
Hallo, ich habe da ein Problem mit dem GCC Compiler im Zusammenhang mit Volatile-deklarierten Variablen und Code-Optimierung. Interesant ist die Zeile: 'while(cinw_ptr == cinr_ptr);' in der Funktion 'ReadComDaten'. Während dieser While-Schleife
cinr_ptr++; .... weiterer Code ..... } Daraus macht der Compiler, mit Optimierung -Os: uchar ReadComData(void) // (warte und) lese Zeichen vom Com-Port { 2ba: 80 91 62 00 lds r24, 0x0062 2be: 90 91
-
Thread
16bit x 16bit ->32bit
nach 32 Bit gecastet werden (eigentlich fast die gleiche Situation), ist keine entsprechende Optimierung vorgesehen, obwohl sie wahrscheinlich ähnlich wie die 8x8-Optimierung zu implementieren wäre. Vielleicht kommt sie ja irgendwann in einer der nächsten Releases. Schön wäre auch die Optimierung
Einzelmultiplikationen Gerade die ersten beiden hätte ich auch schon oft gebraucht. Alle diese Optimierungen sind natürlich nur auf 8- und 16-Bit- Prozessoren von Interesse. Da der GCC aber hauptsächlich auf 32-Bittern (bspw. i86, PPC und ARM) eingesetzt wird, haben solche Verbesserungen verständlicherweise
-
Thread
Assembler bleibt weiterhin aktuell & wichtige Programmiersprache
Patrick L. schrieb im Beitrag #6940707: > Schallte Alle Optimierungen ab Das ist albern.
Patrick L. schrieb im Beitrag #6940707: > Schallte Alle Optimierungen ab und Ohhh was da raus kommt ist ja echt > ein schönes wiederholtes Muster..... ja klar das gilt aber nicht mehr wenn Optimierungen im Spiel sind. Ich gebe dir aber Recht, jeder Compiler
-
Thread
Wann kommt auch IAR EWARM im neuen Jahrtausend an?
Arbeitgebern und Hobbys beim gcc aus. Kann man den da reinbauen? Ist denn der eigene Linker so machtvoll wie der vom gcc oder clang? Der Linker vom IAR ist ja auch eine Zumutung, der kann im Vergleich zum gcc linker fast garnichts
Embedded Studio. > In der Firma kennt man sich dann eher von vorherigen Arbeitgebern und > Hobbys beim gcc aus. > Kann man den da reinbauen? > Ist denn der eigene Linker so machtvoll wie der vom gcc oder clang? > Der Linker vom IAR ist ja auch eine Zumutung, der kann im Vergleich zum > gcc linker fast
-
Thread
avr-gcc: mal lds, mal ld rd, Z
fehlende / fehlerhafte Kostenbeschreibungen im avr-Backend. IIRC werden Speicherzugriffe in neueren GCC-Versionen zunächst indirekt umgesetzt und erst in einem späteren Pass wieder in direkte Zugriffe gewandelt falls dies Vorteilhaft erscheint. Dies ermöglicht z.B. bessere Optimierung von Adressen die in Schleifen verwendet werden. Pass "cprop" ist in gcc/cprop.c implementiert: http://gcc.gnu.org/viewcvs/gcc/trunk/gcc/cprop.c?content-type=text%2Fplain&view=co Vielleicht liefert -fdump-rtl-cprop-details o.ä. noch detailiertere Infos. Kosten können
-
Thread
GCC Funktion wird manchmal nicht aufgerufen
Hallo, ich habe in GCC eine Funktion geschrieben, die ein Display ansteuert. Also der Funktion übergebe ich die zu adressierende Zeile und Spalte sowie das zu schreibende Symbol. Anschließend steuert die Funktion bei dem
werden immer nur > die ersten beiden Funktionen aufgerufen. und was passiert dann? also der der GCC hier einen fehler hat, ist zu 999.9999% ausgeschlossen.
-
Thread
ATMEGA - EEPROM bechreiben/lesen macht Probleme
Was hat das mit gcc zu tun? Irgendwie liest keiner mehr die Beschreibungen der einzelnen Subforen hier. [pre]Fragen zu den GNU-Toolchains für AVR-, ARM- und MSP430- Mikrocontroller, AVR-GCC, MSPGCC, WinAVR, WinARM
Welche WinAVR-Version benutzt du? Ist die Optimierung eingeschaltet? Oliver
-
Thread
welche Programmiersprache?
Hi, ich bin ganz neu im Bereich Mikrocontroller... nun hab ich meine ersten Gehversuche mit GCC-Tut gemacht, und - naja - die LED blinkt... Nachdem ich das Tut mit Assembler angeguckt hab, und ein wenig mit GCC gespielt, weiß ich nun gar nicht mehr, was ich wie machen solll... Wie gesagt
Schätzung sein und betrifft den sdcc-Compiler für 8051 des Jahres 2000 mit einer deutlich schlechteren Optimierung als der gcc-avr. Beim AVR habe ich keine Vergleichsmöglichkeit, weil mir da die Erfahrung in Assembler fehlt.
-
Thread
Microchip Studio mit GCC C-Compiler
Hallo, ich arbeite auf einem Win11-Rechner und möchte im Microchip Studio den GCC C-Compiler nutzen, weil ich höhere Optimierung nutzen möchte. Ich habe arm-gnu-toolchain-6.3.1.508-win32.any.x86 von der Microchip-Seite herunter geladen. Wie geht es jetzt weiter? In dem Paket habe
im Beitrag #7383200: > ich arbeite auf einem Win11-Rechner und möchte im Microchip Studio > den GCC C-Compiler nutzen, weil ich höhere Optimierung nutzen möchte. Der gcc wird automatisch mit Microchip Studio installiert, den musst Du nicht selbst installieren. Wenn Du ein neues Projekt anlegst
-
Thread
Wie lange dauert ein Schleifendurchgang
16-bit access." Ist das für jeden Compiler gleich bzw. funktioniert das auf meinem? (AVR GCC) Vielen Dank im Voraus! Mfg
meinem Oszilloskop nachgemessen, der Wert stimmt weit >> nicht. > > Hast du auch brav die Optimierung eingeschaltet, die richtige > Prozessorfrequenz eingetragen und die richtige Clock-Source ausgewählt?? Die Optimierung ist standartmäßig eingeschaltet oder? Prozessorfrequenz wurde definiert
-
Thread
Sicherheitsrelevante Software
Ich schrieb im Beitrag #1733019: > Der AVG-GCC ist betriebserprobt. Ich weiss, dass er in Firmen teilweise > für Anwendungen mit SIL4 verwendet wird. *grmpf* Nachdem ich gestern auch selbst noch auf die Erprobtheit des GCC verwiesen hatte, wurde
definitiv aufgetreten. Somit kann ich derzeit leider keine Hinweise für die Fehlerkorrektur des GCC geben. :-(
-
Thread
Assembler Schleifen Tricks
Optimierung überhaupt lohnend ist...
Als Lektuere, was man so machen kann, wuerd' ich auch mal in die Beschreibung der verschiedenen Optimierungen, die der gcc kann, gucken. Da gibts ja nicht nur -Os, -O[0..n] sondern einzelne Gimmicks. Gruss WK
-
Thread
Funktion, welches je nach Datentype der Eingangsvariablen anders reagiert - geht sowas ?
Sorry: Sprache C, Compiler GCC (AVR Studio) Ziel: Möglichst sparsam mit Ressourcen
/onlinedocs/gcc/Common-Function-Attributes.html
-
Thread
C oder Assembler
... ist ja auch das gleiche..wo is also das problem ? die eine a4-seiten syntax??? oder doch der gcc toolchain??? btw wenn man gcc einen nach makro-asm aussehenden c-source vorschmeisst dann greifn die optimierungen am besten... hacker compiler halt *G* 73 de oe6jwf / hans
Vielleicht sollte ich das ja diesmal an die GCC-Leute mal als Vorschlag einreichen...
-
Thread
Warteschleife mit C - wird von WinAVR wegrationalisiert!
Alex wrote: > Ohne OPtimierung ist die delay.h ein ganz schöner Ressourcenfresser, 3kb > :-) Na gut dafür gibt es ja Optimierung. Ohne Optimierung funktioniert die delay.h auch gar nicht richtig! Die Optimierung ist für die
@Alex (Gast) >Ohne OPtimierung ist die delay.h ein ganz schöner Ressourcenfresser, 3kb >:-) Na gut dafür gibt es ja Optimierung. Nöö, siehe http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h
-
Thread
C++ womit grafische Programmeirung
Ich glaube der clang macht diese Optimierung auch, gibt aber eine Warnung dabei aus ...
Sven B. schrieb im Beitrag #5224472: > Ich glaube der clang macht diese Optimierung auch, gibt aber eine > Warnung dabei aus ... Der obige Rant bezieht sich auf GCC 4.1 (Released 2006). Gab es da llvm schon? Und GCC warnt auch; der älteste GCC den ich grad greifbar hab
-
Thread
Schach für ARM Cortex
der Compiler eingebaut hat. Beispiel: Im "ARM System Developer's Guide" (2004) sind einige Optimierungen gezeigt, wie man seinen C-Code schneller machen kann, mit Beispielen was der Compiler aus der "langsamen" und "schnellen" Variante macht. Das habe ich mal ausprobiert - ein aktueller GCC produziert
Assembler so viel effizienter kodieren kann, Ich hatte mal dieses Jahr ein Morseprogramm in C auf dem GCC und dem IAR Compiler (Optimierung an) für einen M0+ geschrieben, sollte ein Test sein, dann exakt diesen Algorithmus Zeile für Zeile in Assembler formuliert. Auf Anhieb Faktor 2,5 schneller erreicht
-
Thread
Am Port klappern
reinzukommen mit assembler die ersten gehversuche zu machen. zu deinem problem, google man nach gcc inline-assembler.
lss-File an, was der Compiler aus der Zeile [c]PORTB &= ~(1 << DDB4);[/c] mit eingeschalteter Optimierung macht. Oliver
-
Thread
XC16 Optimierung
lösen. Kann es sein, dass der ineffiziente Code ein Produkt der in der Free Version fehlenden Optimierung ist? Gruß
Richtige™ Architektur (ARM) benutzen, gratis den GCC downloaden & verwenden und dessen Optimierung geniessen.
-
Thread
constexpr in Atmel Studio nicht verfügbar?
probiert doch gleich mal -std=c++17 aus ;-) > > Eine solche Option unterstützt nicht mal der aktuelle gcc 7.2. Aber > -std=c++1z sollte gehen. In gcc 7.2.1. schon ;-) In gcc-8 geht schon c++20a.
MitLeserin schrieb im Beitrag #5249564: > Die Toolchain avr-gcc-8.0_2017-07-19_mingw32 ist verfügbar unter: > https://sourceforge.net/projects/mobilechessboar/files/avr-gcc%20snapshots%20(Win32)/ Das ist nur ein Snapshot, dessen Intention es war, bessere ISR-Optimierung
-
Thread
AVR Timer 1 Normal/CTC Mode ?
des Systemtaktes, die beiden anderen dementsprechend 1/128 und 1/256. Wie gesagt: ohne weitere Optimierungen. Mit Optimierungen sind noch deutlich höhere Frequenzen erreichbar. Wie oft bei kurzen und sehr häufig durchlaufenen ISRs ist das Reservieren von Registern die Optimierung, die mit Abstand am meisten
straightforward-Routine braucht, vielleicht sogar wirklich exakt diese 32. Müßte ich direkt mal probieren, ob der gcc das schafft... Bloß die ultimative Optimierung, Register exklusiv zu reservieren, die nötig wäre, um die Sache nochmals merklich schneller zu machen, die kannst du in C halt nur sehr eingeschränkt
-
Thread
JAL bzw. C-Compiler für PIC
der Idee Abstand genommen (und habe mir stattdessen AVRs genommen, weil es für die bereits einen GCC gab).
alle 3 Jahre aus. Auch völlig Falsch!!! Wie gesagt: Die Compiler sind mit etwas geringerer Optimierung völlig Frei. Die maximale Optimierung ist aber bis auf sehr sehr wenige Ausnahmen nur für "High Volume" µC Einkäufer relevant. Wer nur geringe Stückzahlen baut kauft wenn der Speicher oder die
-
Thread
Makefile Ubuntu<->WinXP
ich die Tools für bugfrei halten würde, aber ich kann mich gerade nicht daran erinnern, dass AVR-GCC 4.1.x irgendeinen wesentlichen Bug hätte, den nicht auch die Vorgängerversionen gehabt hätte. (Ich spreche hier nicht von schlechterer Optimierung, sondern von echten Bugs.)
dieses Programmteils aus posten (ist vermutlich in lcd.h drin) Die Frage ist jetzt, wie man dem gcc-avr unter Ubuntu ausredet LCD-Delay() leerzuoptimieren. Ein brutaler Weg wäre per Makefile die Optimierung komplett auszuschalten (-O0) und mal kucken, was der Ball macht. Es gibt vielleicht auch
-
Thread
True =1 false =0 kann man damit rechnen?
lesbar, als ein Pointercast. Das funktioniert aber nicht bei Bitfeldern. Diese Bitfelder mit dem avr-gcc waren eben diese Ausnhame, die ich erwähnte, die durchaus praktisch ist. Und sie ist wohldefiniert, wenn man die Anleitung des gcc gelesen hat.
auf was anderem als gcc nutzen will.
-
Thread
WinAVR: Keine Deklaration direkt nach case xyz:?
case 2: ... break; default: } [/c] ist unzulässig, wird aber meiner Erinnerung nach vom GCC als language extension toleriert.
Burch wrote: > >> Interessant ist, was er aus meinem kleinen Testprogramm macht (Ohne >> Optimierungen): > > ,,Interessant ist, wie langsam dieser Ferrari mit angezogener > Handbremse kriecht.'' > > Wer keine Optimierungen einschaltet, braucht sich auch nicht über > großen, umständlichen
-
Thread
Cortex M3/M4: Compiler reordering und memory barriers bei delay Funktion
Schließlich passiert das Ganze ja nur ein einziges Mal beim Einschalten. Was die Compiler-Optimierungen betrifft, so habe ich hier schon Schauergeschichten über den GCC gelesen. Danach benimmt der sich gelegentlich glatt daneben und "optimiert" angeblich ganze Programmteile hinweg. Kann ich nicht
W.S. schrieb im Beitrag #6102025: > Was die Compiler-Optimierungen betrifft, so habe ich hier schon > Schauergeschichten über den GCC gelesen. Ja, da werden gerne Schauermärchen erzählt, am Ende stellt sich jedesmal raus daß derjenige den Code so geschrieben
-
Thread
Addition mit Sättigung - wie in C ?
> Und das unsigned Zeug ist ja eh bei DSP nicht zu gebrauchen. :-) > > Also, wer patched den GCC? ;-) Olle Kamellen: Siehe -fno-strict-overflow oder -fwrapv Guckst du: http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fwrapv-2246 http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Die glibc ist Teil von GCC? Aha. Das ist mir bislang entgangen.
-
Thread
ADC in C unter WinAVR ärgert
sinnvoll sich vorher mal ein paar Grundlagen anzulesen? http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
bekannt, daß bei eingeschalteten Optimierungen die Zeilen nicht mehr passen.
-
Thread
ISR und Atomarer Datenzugriff - ich bin entsetzt !
abhängig davon welche Optimierungsstufe > eingeschaltet ist *und* (bei Optimierung) bei welchen Registern es > sich überhaupt lohnt (wenn sie anderweitig zum Einsatz kommen). Evtl. speichert avr-gcc mehr als nötig, was aber ein Problem der Effizienz ist und nicht der Korrektheit
habe ist mir dieser feine Unterschied nicht aufgefallen. Also stimmt ihr mit mir überein das der GCC in ISRs alle in einem Programm benutzen Register sichert und bei Verlassen wieder restauriert (so "wie es sich gehört")?
-
Thread
SAMD21 "startet" nicht mehr
Kai P. schrieb im Beitrag #5498531: > Debuggen > klappt nur sinnvoll ohne Optimierung: -O0 Moderne Compiler kennen -Og (Optimierung für Debugging). Bei -O3 oder -Os würde ich mir vorher den Assembler Output anschauen (-save-temps=obj -fverbose-asm) - ansonsten kann man den oft
Hey Jim, Danke für den Hinweis auf "-Og". Der GCC unterstützt das ab Version 4.8, also 2013. So lange hab ich schon nicht mehr ins GCC Manual geschaut... Fragt sich, warum Atmel Studio in der Konfiguration Debug den Default immer noch auf -O1 hat
-
Thread
Blackfin, Assembler, Parallelität, GCC und Optimierung
Hallo, ich sitz gerade vor einem Blackfin BF537 Board und weiß gerade nicht, wo ich so richtig anfangen soll. Was ich bisher gemacht hab: Das Board ist eine LeanXCam mit Micron Kamera-Chip. Samples, in C compiliert, laufen dort und eine eigene DeBayer-Funktion klappt auch, obwohl ich den Eindruck bekomme, dass der GCC weit weg von Optimal ist für einen DSP. Daher meine Frage: - Geh ich recht in der Annahme, dass der GCC keine Ahnung von Parallelität und guten DSP-Code für den Blackfin hat? - Heißt das, dass man eigentlich immer in Assembler programmieren muss, wenn man was haben möchte
-
Thread
Alignment des ARM7
Bitte mehr Infos: Welcher Compiler, welche Optimierung (-O), relevante Quelltextausschnitte, Testläufe
Typen uint8_t, uint16_t und uint32_t aus stdint.h verwenden. Zum Thema Attribute http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Type-Attributes.html#Type-Attributes
-
Thread
ADC - Wert berechnen
Ich hab mal gemessen. Einmal im Simulator im staubigen AVR-Studio mit dem ollen 2010er avr gcc (der noch einen "Bug" hat und sich in einigen Situationen viel RAM gönnt, so auch hier) und einmal mit Arduino UNO. Im AVR-Studio mit Optimierung -Os (minimale Codegröße) compiliert. Beim Arduino wurde
: > Ich hab mal gemessen. Einmal im Simulator im staubigen AVR-Studio mit > dem ollen 2010er avr gcc (der noch einen "Bug" hat und sich in einigen > Situationen viel RAM gönnt, so auch hier) und einmal mit Arduino UNO. Der Ramverbrauch its das eine, aber daß der (leicht staubige) arduino-gcc (
-
Thread
C32 Compiler für PIC32
können. Nur kann man GCC natürlich auch ohne Microchips Hack verwenden, mit voller Optimierung und völlig legal. Wie das dann allerdings mit Integration in die Entwicklungsumgebung, Debugging und der rechtlichen Seite der Library
Interessant... Hat da jemand Erfahrung ob der GCC mit MPLAB und ICD2/3 problemlos läuft und wie das mit der rechtlichen Seite der Library aussieht? Der GCC Compiler ist kostenlos, oder? Gruß chris
-
Thread
GCC ignoriert Zuweisung in struct
0x0003 CBI 0x15,2 Entspricht cbi(PORTC,2); RJMP PC-0x0005 d.h. gcc ignoriert einfach meine Zuweisung. Jetzt bin ich etwas ratlos. Ich hoffe, es kann mir von euch jemand helfen. Gruss, Andreas
Hi Andreas, vermutlich hat der GCC zuviel wegoptimiert. Werden die Werte in der Structure servo1 irgendwann nochmal verwendet? Versuch mal ein volatile vor die struct zu schreiben, also: volatile struct { u08 high:8; u08 low
-
Thread
Error: Operand Out Of Range
oder nicht, weil ich nicht weiß, was das ist :( Falls es weiterhilft: WinAVR vom 20060421 (AVR-gcc3.4.6)
vergiss den letzten unsinn von mir :( benutze ich selber nicht, daher. weiß aber, dass der avr-gcc bei 4.1.1 ist, iirc.
-
Thread
structs in char*
speicher einige anders zu sein. Auf einem Attiny417? Welcher Compiler, welche Version, welche Optimierung? Oliver
>>Auf einem Attiny417? Welcher Compiler, welche Version, welche >>Optimierung? zunächste Probiere ich mit microchip studio. Später (in serien Produktion) wolte ich avr-gcc + avr dude nehmen.
-
Thread
Arduino const struct
er dein struct-Konstrukt so weit optimieren, dass derselbe Code rauskommt. Muss er aber nicht. gcc macht's so. Allerdings nur, wenn erstens die Optimierung auf mindestens -O1 eingestellt ist und 2. er bei jeder Verwendung die gesamte struct inclusive ihrer Initialisierung zu sehen bekommt. Ich
das nur mit constexpr einigermassen > gesichert. Meiner bescheidenen Erfahrung nach macht der gcc das mit const sehr zuverlässig. Oliver
-
Thread
WinAVR auch ohne Union optimierter Code möglich?
asm-Sequenzen. Zudem ein Bugreport für die neueste GCC-Version (4.5.2 bzw. 4.6.0) machen, damit diese Optimierung vielleicht irgendwann Teil von avr-gcc wird. Innerhalb von avr-gcc ist das Problem, daß es keinen Königsweg betreffs Subreg-Lowering gibt
und je nach Verschalterung sieht ein Backend andere Pattern und ist nicht auf deren Verarbeitung/Optimierung vorbereitet -- zumindest ist's im avr-Backend so.
-
Thread
STM32 Embitz: Code optimieren / nano-branch Lib vermeiden
Christian J. schrieb im Beitrag #6641202: > da im Debug Mode keine > Optimierung erlaubt ist. Veraltet. Optimierung -Og existiert schon ewig im GCC.
Jim M. schrieb im Beitrag #6641316: > eraltet. > > Optimierung -Og existiert schon ewig im GCC. Danke,das hilft mir schon weiter! Kann ja nicht alles wissen :-) Hat 9kb eingespart und zur Not muss eben der 64kb F103 einem 128kb Typ weichen.
-
Thread
XC8 für Pic18 Arithmetik
Stefan schrieb im Beitrag #3498676: > avr-gcc:
propaganation. Da a immer 1 ist, wird X gleich mit 64 geladen, also 1<<64. Auch der C18 Compiler da gcc macht dasselbe. Ob X8 es mit nicht abgeschalteter Optimierung auch macht, mòglicherweise.
-
Thread
zählt diese for Schleife 10mal?
optimieren? Ich wollte diese Aussage selbst tatsächlich auch nicht glauben. Daher hier mal harte Fakten (gcc (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) 4.5.3) Ohne Optimierung: [code]int main(void) { 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp int i;
Schleife packen… Aber das wird in realem Code wohl so selten auftreten, dass sich eine solche Optimierung nicht lohnt.
-
Thread
Hilfe zu Interruptverhalten ATMEGA8 gesucht
Jonas Arndt schrieb im Beitrag #3243674: > Die meisten Optimierungshinweise Optimierung? Du hast das falsch verstanden. Da gehts nicht um 'Optimierung'. Die meisten gemeldeten Dinge sind ernsthafte Probleme!
#3243709: > Jonas Arndt schrieb im Beitrag #3243674: > >> Die meisten Optimierungshinweise > > Optimierung? > Du hast das falsch verstanden. Da gehts nicht um 'Optimierung'. Die > meisten gemeldeten Dinge sind ernsthafte Probleme! Optimierung wahr sicherlich das falsche Wort, enschuldige bitte.
-
Thread
RAM-Bankswitching - wie am geschicktesten mit GCC auf AVR?
Ein paarmal schon, erst kam die Idee, dann die Anpassung an den Kontext. Du hast deshalb die Optimierung der Offsetrechnung übersehen ;-). Es gibt keinen Grund (address&0x7FFF) 32bittig zu rechnen.
die Variante über Speicheradressen via union schneller ist, als die geschickte Ausnutzung der Optimierung von Schiebebefehlen. Denn wenn die union im Speicher liegt handelt sie dir einen Stackframe ein. Bei AVRs nicht zu empfehlen. Es hilft allerdings, wenn man vom Sourcecode her weiss, dass avr-gcc
-
Thread
"Systemnahes" Programmieren in Java
eigentlich eine schöne Variante, um in Java Bitfelder einzugeben? So frei nach 0b0001111 wie man es aus dem GCC kennt?
Binärnotation, das ist nur eine proprietäre und nicht empfehlenswerte Erweiterung mancher Compiler (gcc und ein paar andere).
-
Thread
MCP 4921 & ATTINY 2313 Sprünge
meinem ursprünglichen Code der Sinus nur mit schlechter Qualität ausgegeben wurde: Wenn ich die Optimierung DEAKTIVIERE - wie ich es bei dem DDS-Beispiel gemacht hatte - dann sieht der Sinus sauber aus, ich kriege aber nur ca. 670kHz Taktrate. Wenn ich die Optimierung AKTIVIERE (-O1 und aufwärts) bekomme
Annahme verleitet hatte, dass die Datensignale in Ordnung seien. Liegt es wirklich an der Optimierung?! - Habe ich mal wieder ein völlig offensichtliches Brett vor meinem Kopf?!