-
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
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
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
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
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
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
GCC: -ffunction-sections verändert Programmlogik - warum?
Eine Frage zur Wegoptimierung von ungenutzten Funktionen durch den Linker: Ich wollte die Optimierung zum Entfernen von unbenutzten Funktionen aktivieren (vgl. http://www.mikrocontroller.net/articles/GCC:_unbenutzte_Funktionen_entfernen) Auf dem ATXMEGA256A3 hat sich die Codegröße danach von
Optimierung nicht unterscheiden. Nein Marcel, sorry fürs Noch-nicht-Beantworten der Mail, ich habe da auch keine Idee, ohne dass man den Kram komplett analysiert.
-
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
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
GCC 4.1.1. schlechte Optimierung
Noch was vergessen, die Kommandozeile: avr-gcc.exe -xc -Os -mmcu=attiny26 -Wall -g disptime.c Peter
nicht alle überblicken, da er sich ja > immer nur auf eine Compilation-Unit konzentriert. Bei GCC 4 nicht mehr notwendigerweise, man kann ihm auch mehrere compilation units gemeinsam vorwerfen.
-
Thread
AVR führt Programm nicht aus, wenn zusätzliche Funktionen definiert sind
Das ist exakt das, was ich mit avr-gcc übersetzt habe.
Das Programm ist nur ein Test, dementsprechend _wirklich_ vollständig oben abgebildet. Die Optimierung habe ich zumindest nicht bewusst ausgeschaltet, ich habe den Schalter -Os von avr-gcc verwendet. Dass die Funktion test() nicht ausgeführt wird, ist Absicht. Du sprichst von "Wegoptimierung",
-
Thread
List File bei AVR-GCC/WIN AVR
mal mit was ganz einfachem begonnen: LED an Portpin einschalten In Assembler ein Zweizeiler. Im AVR GCC nach Compilieren an die 100 Byte. Entsetzen nach Ansicht des Assembler-Files, was da an Bytes völlig sinnloserweise zwischen SRAM, Registern und Stack hin- und hergeschaufelt wird. Optimierung ist
mit was ganz einfachem begonnen: LED an Portpin einschalten > In Assembler ein Zweizeiler. Im AVR GCC nach Compilieren an die 100 > Byte. > Entsetzen nach Ansicht des Assembler-Files, was da an Bytes völlig > sinnloserweise zwischen SRAM, Registern und Stack hin- und > hergeschaufelt wird. Optimierung
-
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
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
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
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
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
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
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
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
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
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
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
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
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
Code wird nicht in richtiger Reihenfolge abgearbeitet
Markus schrieb im Beitrag #5745795: > stell mal die optimierung von -O1 auf -Og, so hats bei mir dann perfekt > funktioniert. Wenn der Code ohne Optimierung funktioniert, aber mit Optimierung nicht, dann ist der Code kaputt.
Kaj schrieb im Beitrag #5745962: > Markus schrieb: >> stell mal die optimierung von -O1 auf -Og, so hats bei mir dann perfekt >> funktioniert. > Wenn der Code ohne Optimierung funktioniert, aber mit Optimierung nicht, > dann ist der Code kaputt. Es ging doch darum daß
-
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
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
WINAVR GCC Entfernt bei Optimierung einfach Funktionen
keinerlei hinweise auf derartiges gefunden... Wer weiss warum die markierte funktion bei allen Optimierungs Optionen (ausser 0) einfach weg ist? Wenn ja dann bitte eine möglichkeit wie ich es erfolgreich verhindern kann!! danke! [c] int main (void) { BYTE channel=3; WORD data=0; BYTE
habe. aber scheinbar war das ja auch nicht genug. ich dachte da eher an jemanden der wirklich mit GCC vertraut ist und etwas mehr weiss als die manuals hervorbringen und mir diese eine simple frage beantworten kann: !! Warum Strippt/kombiniert der GCC Compiler mit der Option Os, O1, O2, O3 mir einfach
-
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
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
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
Schnellere Division
Ich würde halt gerne wissen, ob es im Bezug auf die Optimierung sinnvoller ist, nur durch Zweierpotenzen zu dividieren.
man den ganzen Salat mal irgendwann auf einen anderen Prozessor, dann kann einem solcherart Optimierung ganz schnell auf die Füße fallen, weil sie sich dort dann plötzlich als Pessimierung entpuppt, ganz davon abgesehen, dass sie eine bestimmte Byteorder benötigt. Bei ARM und GCC hat man übrigens
-
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?!
-
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 Bootloader in C - Artikel
schreiben. Dein WinAVR ist in ziemlich alt. Ich habe für das kompilieren das AVRStudio 6.2 mit der gcc.Verision: gcc version 4.8.1 (AVR_8_bit_GNU_Toolchain_3.4.4_1162) benutzt. Evtl. wäre es eine gute Idee zumindest den gcc mit der gnu toolchain zu updaten... mein avr-libc ist vermutlich 1.8 (muss
Compiler Optimierung -Os läuft nicht geändertes Programm: 16188 Byte mit Compiler Optimierung -O1 läuft Ich bin da ziemlich ratlos, kann mir vieleicht jemand weiterhelfen? Gruß jan
-
Thread
Speicher des Microcontrollers
Hier auch noch etwas dazu: http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung
anstatt eine Konstante ?!? Weil laufen tut das Programm ja, nur das ich ( vor dem anschalten der optimierung) zu wenig speicherplatz hatte... was sich jetzt ja auch erledigt hat dank eurer hilfe
-
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
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
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
Attiny 841 und PRR
Datenblatt) Läge die Adresse im IO Bereich, wäre es nur 1 ASM Statement. Und ja, das kann der GCC erkennen und mit -Os auch soweit optimieren.
rückzusetzen ist. Und wenn die Zieladresse von SBI/CBI adressiert werden kann. Und möglicherweise muß die Optimierung noch angeschaltet sein.
-
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
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
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
if-Abfragen verpönt?
ersten Moment könnte man denken, dass das hoffnungslos überkompliziert ist. Vorausgesetzt, size ist GCC wahrend der Kompilierung als Konstant bekannt, dann wird GCC diese Funktion jedoch inlinen und automatisch und korrekt Bitmaskierung oder while-Schleife wählen. Mit etwas mehr Trickserei kann man dann
Sam P. schrieb im Beitrag #2889622: > > Nur mal am Rande, für diejenigen, die GCC's Optimierungsfähigkeiten > nicht kennen: Interessiert eigentlich gar nicht. Nicht alles wird mit dem GCC gemacht und wer portablen schnellen Code schreiben will der verläßt sich nicht auf so etwas
-
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
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
Wahnsinn! 3 GB reicht nicht um FF zu compilieren?
PGO sagt mir erst mal gar nichts. Noch dazu klingt das für mich wie ein Hohn "Profile-Guided"-Optimierung". Optimierung ist in diesem Zusammenhang wohl eher ein Witz bzw. was soll an derart viel Speicherbedarf eigenlich "optimiert" sein?
über 3Gb braucht. Naja, ob kleiner... Eher schneller als kleiner würde ich sagen, weil manche Optimierung, die sich aus Profiling ergibt, den erzeugten Code eher vergrössert als verkleinert.