-
Thread
AVR und C++ - ein Versuch
volatile uint8_t port; const uint8_t pin; }; [/c] Wie sich heraus stellte, kann der avr-gcc in Version 4.8.1 die Optimierungen der PC-Variante gleicher Version noch nicht. Es wird also noch eine Weile dauern, bis man die Tips aus dem Video auch umsetzen kann. Die Klasse mit dem Zeiger braucht
with-plugin-ld=ld.gold --with-system-zlib --with-isl --enable-gnu-indirect-function Thread model: single gcc version 6.2.0 (GCC) [/code]
-
Thread
avrdude: doofes 0xFF schreiben unterdrücken? (beim Bootloader brennen)
suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for bison... bison
Punkten oder so...? (im ChangeLog und NEWS sehe ich auch leider keinen Hinweis auf die 0xFF Optimierung. ?)
-
Thread
problem mit wdt zurücksetzen
ist hier gut beschrieben: "http://www.rn-wissen.de/index.php/Avr-gcc/Interna#Frühe_Codeausführung_vor_main.28.29"
. nur ist der Code jetzt auch ein ganzes Stück größer. hat jemand eine Idee, wie man der Optimierung verbieten kann, die Funktion zu entfernen?
-
Thread
stm32 lib compiler error
Mit ist das schon klar das das ein Programmierfehler ist. Aber warum reagieren nicht alle GCC basierten Entwicklungsumgebungen in der gleichen Weisen darauf?
wait_ack != INAK_TimeOut) wait_ack++; steckt, was bekanntlich nicht als Warteschleife taugt und von GCC gern zu wait_ack = INAK_TimeOut; eingedampft wird. Dass die andere Abfrage im while volatile ist nützt hier nichts, weil es für GCC keinen Zusammenhang zwischen dem volatilen Steuerregister und
-
Thread
not in scope/avrstudio
fragender wrote: > D.h. es gibt nur den WEg über das Abschalten der Optimierung? War das > frühe rnicht anders bzw. ging auch so? Wenn der Compiler eine Variable wegoptimiert, ist sie nun mal weg... Wenn es früher anders war, hast du eine andere GCC-Version ausgespielt. Versuch's mal mit -O1, was war mal komzipiert um bei Optimierung einigermassen debuggen zu können. Übrigens schliessen sich bei manch anderen Compilern Optimierung und Debugging /komplett/ aus, also muss man froh sein, daß das bei GCC überhaupt vereinbar ist.
-
Thread
String-Array und malloc
, sondern implementieren sie selber, direkt im Compiler. Hier mal eine Liste der Funktionen, die GCC bereits eingebaut hat: https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Other-Builtins.html#Other-Builtins In dieser recht großen Liste ist auch strcpy enthalten.
immer mit Nullen füllt. Wozu sollte /das/ denn gut sein? Wenn du partout keine der Compiler-Optimierungen bezüglich der Bibliothek haben willst, kannst du ja auch im freestanding mode compilieren. /Ich/ jedenfalls finde die Optimierungen sinnvoll und benutze daher den hosted mode selbst auf
-
Thread
Zu viele pop/push bei Interruptaufruf -> Optimierung?
deklarieren, dann must du dich um das pushen/popen selber kümmern (welch ein Wortspiel) https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.htm Gruß Roland
Register tatsächlich überschrieben werden, und pusht > nur diese. Das bring beim GCC aber nur dann was, wenn Inlining stattfindet d.h. kein Funktionsaufruf mehr stattfindet. Wenn die Funktion nicht geinlinet wird, dann nutzt GCC den bekannten, kleineren Fußabdruck der Funktion nicht
-
Thread
Gibt es eine Programmiersprache mit diesem Schleifentyp?
r21 brne .L3 .L1: ret .size memorycopy, .-memorycopy .ident "GCC: (GNU) 4.7.2" [/avrasm]
und nicht dass das kombinierte so schnell ist ;-) ausserdem: wenn du dir anschaust, welche optimierungen "aktuelle" CPU (seit Jahrezehnten) gerade bei bedingten sprüngen machen, ist nicht mal sicher, ob mehrmaliges hinschreiben, schneller ist als normale schleife...
-
Thread
Umstieg ATmega32 auf AT90CAN128 WinAVR
es ihn im DIP gibt. Kann es sein, daß das AVRStudio keinen kompakten Code erzeugen kann? Im AVR-GCC Tutorial steh da was drinnen. Gruß Rick
() nur möglich wenn man weiss was man tut. Und dann noch die kleinen Problemchen das man die Optimierung im makefile auf jeden Fall aktivieren muss.
-
Thread
GCC 11.2.0, unterschiedliche Optimierung size_t/uint32_t
(Optimierung) identisch (Pointer sind aber natürlich nicht kompatibel).
#6795563: > Folgendes schlägt allerdings fehl > static_assert(std::same_as<uint32_t, size_t>); arm-gcc 11.2 kennt godbolt noch nicht, aber mit arm-gcc 11.1 im 32-Bit Mode hält das static_assert, im 64-Bit Mode nicht. Was allerdings so zu erwarten war. Oliver
-
Thread
Optimierung Fehlerhaft?
hatte. Ich muss jetzt noch mal korrigieren, der Code Funktioniert beim Debuggen, mit und ohne Optimierung, nur wenn ich alles auf den uC spiele, wird die letzte Abfrage nicht ausgeführt. Ich habe jetzt mal alles Angehängt. VG Stefan
der Simulation Daten vor. Auf dem µC ist das anders. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#ADC_.28Analog_Digital_Converter.29 "In der praktischen Anwendung wird man zum Programmstart den ADC erst einmal grundlegend konfigurieren und dann auf verschiedenen Kanälen messen. Diese
-
Thread
Überlauf in AVR mit C
keine - UBs zur Compilezeit > abgefangen werden. Naja, da gibt's schon ein paar, und da warnt ein gcc auch meistens.
Yalu X. schrieb im Beitrag #7310066: > Doch, z.B. der GCC. Das folgende Programm verhält sich je nach > Optimierungsstufe (-O0 oder -O1) unterschiedlich, was aber wegen des UB > völlig in Ordnung ist... Natürlich ist das GCC-Verhalten hier standardkonform
-
Thread
Ist Atmel Studio 6.1 OK fuer ARM-Cortex SAM MCUs?
aber auch eingeschränkt. Die kostenlose Variante kann lediglich kompilieren mit sehr limitierten Optimierungen. Will man Optimierung einschalten, kostet es was und zwar nicht wenig. Will man noch mehr Optimierungen, kostet es noch mehr (in der Pro Version). Natürlich je Arbeitsplatz
Controller Code zu erzeugen. Entweder ich kaufe mir einen Proficompiler (z.B von IAR) oder ich verwende den gcc. Ein Controllerhersteller liefert mir also entweder einen eingeschraenkten Compiler mit, oder es ist nur der gcc. Wenn mir ersteres nicht gefaellt dann installiere ich mir halt selber den gcc oder
-
Thread
avr-gcc 6.3 für Windows
Auge des Betrachters. Seit dem neuesten WinAVR gab es zum Beispiel folgende Änderungen: https://gcc.gnu.org/gcc-6/changes.html https://gcc.gnu.org/gcc-5/changes.html https://gcc.gnu.org/gcc-4.9/changes.html https://gcc.gnu.org/gcc-4.8/changes.html https://gcc.gnu.org/gcc-4.7/changes.html https://gcc.gnu.org/gcc-4.6/changes.html https://gcc.gnu.org/gcc-4.5/changes.html https://gcc.gnu.org/gcc-4.4/changes.html
-
Thread
Beschleunigung von Algorithmen, Quelle gesucht
Algorithmen-Optimierung in dem Sinne, dass man einen Algorithmus 'optimiert' um aus einem O(n^2) einen O(nlogn), das hat mehr mit Erfinden als mit systematischer Optimierung zu tun. Entweder ich habe eine radikal andere
dies dem Compiler überlassen. Ja, es ist oft erstaunlich, wie wenig bis gar nichts manuelle Optimierungen in dem Bereich bringen, das können Compiler (selbst der gcc) inzwischen deutlich besser. Dasselbe gilt fürs Prefetching. Ausser in ganz abstrusen Fällen kann der gcc das besser, das Bauchgefühl
-
Thread
Return Anweisung mit Rückgabe vom Zustand des Ports
mit dem umgebenden Code optimieren, also noch ein bisschen Zeitgewinn. Auf Kosten der Codegröße. Der gcc entscheidet das bei entsprechenden Optionen sogar selbst. (Andere Optimierungen wie const-Funktionen könnten u.U. noch besser sein. [const passt nicht zu unserem konkreten Beispiel.] Deshalb sollte
> umgebenden Code optimieren, also noch ein bisschen Zeitgewinn. Auf > Kosten der Codegröße. Der gcc entscheidet das bei entsprechenden > Optionen sogar selbst. > > (Andere Optimierungen wie const-Funktionen könnten u.U. noch besser > sein. [const passt nicht zu unserem konkreten Beispiel.] Deshalb
-
Thread
FLASH -> Waitstates?
vermutlich auch für die 96MHz oder 120MHz, nur das hier > zusätzliche oder andere Methoden der Optimierung benutzt werden. Sind > wir uns soweit einig ? Wenn du mit Optimierung erweiterte Hardware-Mechanismen wie einen Branch Cache meinst, ja.
> Ich habe überhaupt noch nie gesehen, dass diese Konstruktion vom > Compiler erzeugt wurde. GCC erzeugt mit -Os die PC-relative Variante, ansonsten bei eingeschalteter Optimierung oft MOV32. > beizeiten ändern wird. Bei Sprungadressen muss der Linker die > Platzhalter letztlich mit echten
-
Thread
volatile und Arduino
dem ist egal, was ich mit volatile mache. Wenn ich mich recht erinnere, sind bei Arduino die Optimierungen standardmäßig ausgeschaltet. Ich meine mich zu erinnern, dass man bei späteren Installationen gefragt wurde, ob man Optimierungen einschalten will oder nicht. Bei abgeschalteter Optimierung
__asm__ __volatile__ ("cli" ::: "memory") [/c] das ::: "memory" ist dann die Magie: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html [code] The "memory" clobber tells the compiler that the assembly code performs memory reads or writes to items other than those listed in the input and output
-
Thread
AVR-Programm muss effizienter werden
besser geeignet ist schon die richtige von diesen Möglichkeiten wählen, wenn man nicht gerade die Optimierung ausschaltet, oder nur eine handvoll cases hat. Der ist ja nicht doof. :)
Die Optimierung ist schon beeindruckend, welches O Level ist das? Im Grunde kann man dann auch durch brutales ASM nicht weiter per Hand optimieren. Allerdings stellt sich mir dort die Frage, ob der Switch wirklich
-
Thread
C Code optimieren
Beim AVR-GCC werden konstante Strings auch im RAM abgelegt. Es gibt zwar einen Würg-Around mit Macros für Flash-Arrays, aber das wird schnell unleserlich und schaltet auch wichtige Typprüfungen ab. Insbesondere
es hier, aber das hast du bestimmt schon gelesen ;) http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#GCC-interne_Optimierung Riesige Sprünge gegenüber -Os bringt das aber nicht mehr. Oliver
-
Thread
AT91SAM7X512, womit programmieren?
Gibt es Gründe, warum es ausgerechnet Atmel Studio (-ähnlich) sein muß? Intern läuft das doch eh auf GCC raus... Ich bin sehr glücklich beim kleineren 7x256 mit Eclipse, arm-gcc+gdb und einem mittlerweile recht betagten Olimex-Adapter (OpenOCD-kompatibel, basierend auf FT2232) Und wer Eclipse nicht
anderen Sourcefile des > Projektes Das ist normal (bei allen Debuggern!) wenn die Compiler Optimierung eingeschaltet ist. Kompiliere im Debug Modus (GCC Option -O0) um Debuggen zu vereinfachen, dafür im Gegenzug aber das Programm langsamer zu machen. Ein Mittelweg ist -Og. Habt ihr nichtmal ansatzweise
-
Thread
Tipps und Tricks zum Thema Rechnen in ganzen Zahlen?
kann [c] pos = (lines << 6) + (lines << 4); [/c] durchaus schneller sein. Wermutstropfen: der gcc ist so schlau, dass er bei einer solchen Multiplikation das bereits automatisch macht. Bei entsprechender Optimierung muss man also gar nicht erst zu solchen Tricks greifen. Aber für Assembler-Programmierer
man nur an einer Stelle eine Multiplikation optimieren will... Asm rules... Gerade bei der Optimierung von fixed point Arithmetik gibt's wohl nix besseres...
-
Thread
AVR Interrupt Flag löschen. Fundamentalismus und Fehler im DB.
interessiert, in welchem Bereich das Register steht. Natürlich unter der Voraussetzung, dass die Optimierung eingeschaltet ist. Aber selbst bei Banalfunktionen wie Delay wird selbstverständlich hingenommen, dass die Optimierung eingeschaltet sein muss. Alle reinen Flag-Register, auch das TIFR3 beim
mehr äquivalent zur Arbeitsweise der "abstract virtual machine" ist. Formal betrachtet war diese Optimierung des Befehls also ein Schuss ins Knie. Ein Problem, dass GCC/AVR nun mit 8051 Compilern teilt, denn deren implizite Unterscheidung der Portverwendung abhängig vom exakten Befehl ist auch nicht
-
Thread
Programme haben plötzlich bugs. AVR Studio 4 und STK500
viel µC raus und wieder einstecken. Weder neuen Compiler benutzt, noch weiss ich wie man die Optimierung verändert!
durchgetestet: Ob "test = test++;" oder "test++;" ist egal, trotz der Compilerwarnung. Mit und ohne Optimierung wird derselbe Code erzeugt. (avr-gcc 4.3.5)
-
Thread
Linkeroptimierung
einer Objektdatei benutzt wird, ist gleich alles andere aus dieser Datei auch dabei. Eine Optimierung würde also eine entsprechende Aufteilung auf kleinere Objektdateien voraussetzen.
meisten Systeme sowieso dynamische Libs unterstützen; dann ist das nicht mehr besonders relevant. Der gcc und seine Umgebung wird ja nur zu einem Bruchteil für AVR etc. verwendet.
-
Thread
Mikrocontroller Einstieg (AVR,PIC)
PICs keine freien C-Compiler, die nicht in irgendeiner Form (Codegrößenlimitierung, schlechte Optimierung) verkrüppelt wären – nur, falls das für dich eine Rolle spielen sollte.
keine 2.Chance mehr für die PICs. David P. schrieb im Beitrag #4612201: > dass > AVR "nur" eine GCC abwandlung anbietet Der ggc kist mittlerweile für den AVR sehr gut optimiert: Übrigens benutzt auch Arduino den gcc unter der Haube (warum Arduino als eigene Sprache gilt, ist mir eh nicht ganz klar
-
Thread
AVR: C-Code Optimierung mit Inline Assembler
statt. Eine weitere Frage wäre noch, ob es eine Möglichkeit gibt, wie ich an den kompilierten avr-gcc Assembler-Code herankommen kann. Bisher habe ich nur die Seite http://gcc.godbolt.org/ genutzt, die jedoch nicht die aktuelle Version des avr-gcc anbietet. Vielen Dank im Voraus, Thomas
Runden-Funktion wirklich der Flaschenhals ist, dann kannst du überlegen, ob sich dort durch manuelle Optimierung wirklich nennenswert was rausholen lässt. Boris P. schrieb im Beitrag #3967728: > Falsches Forum... Verschoben.
-
Thread
Welches strlen ist schneller?
der String Länge. - Der Microsoft cl.exe compiler stolpert manchmal über seine eigenen Optimierungen. Die Compiler eigenen Builtin Funktionen sind mit der -O2 Optimierung eingeschaltet. Leider sind diese "Intrinsic" Funktionen langsamer als die Funktionen der MS Runtime MSVCRT...
5_forloop_cl_15.exe 6656 test_6_strlen_scasb_cl_15.exe 6656 test_7_strlen_forloop_gcc_9.exe 43008 [/pre] Der Mingw gcc linkt noch mit seinen eigenen Supportlibs, und die Exe hat 11 (!) Sektionen, keine Ahnung was da der macht... Alle exe sind ohne Debugging Infos, und gestrippt
-
Thread
wie compiliere ich richtig - altes Projekt anpassen - PowerLED Tiny85
würde. Einige zitate aus dem Beitrag: "Da fehlt ein volatile bei rc5_data. Mit (ganz) früheren gcc-Versionen funktionierte das auch so mit eingeschalteter Optimierung, die neueren optimieren gnadenlos alles weg." "Mit den defines habe ich so meine Schwierigkeiten, was wo wie definieren,
0 Warnings... _______________________________ Habe mal die Tipps berücksichtigt und die Optimierung abgeschaltet (-O0): rm -rf P_LED.o rc5.o LED2.elf dep/* LED2.hex LED2.eep LED2.lss LED2.map Build succeeded with 0 Warnings... avr-gcc -mmcu=attiny85 -Wall -gdwarf-2 -std=gnu99
-
Thread
Cortex-M4 mit 168MHz zu langsam für MP3 Wiedergabe?
Der Helix-Decoder hatte am Anfang keine asm-Optimierung für die Cortexe. Such mal nach der AN11178 von NXP. Da sind die Helix-Quellen incl. Asm für GCC, Keil und IAR dabei. Eventuell wird das damit noch ein wenig schneller. Vor allem weil der da auf
old man schrieb im Beitrag #3471324: > Der Helix-Decoder hatte am Anfang keine asm-Optimierung für die Cortexe. > Such mal nach der AN11178 von NXP. Da sind die Helix-Quellen incl. Asm > für GCC, Keil und IAR dabei. Eventuell wird das damit noch ein wenig > schneller. Vor allem weil
-
Thread
ARM Problem mit Optimierung
gesetzt und durch das lesen wieder rückgesetzt. Mit -O0 funktioniert das ganze auch. Mit jeder Optimierung bleibt die Routine allerdings hängen. Zur Entwicklung verwende ich yagarto und damit Binutils-2.18, Newlib-1.16.0 und GCC-4.3.2 S0PSR liegt auf 0xe0020004 Mit -O0 kommt das raus aus dem *
nach einem Compilerfehler aus. "const" und "volatile" sind in C wie in C++ unabhängig voneinander. GCC scheint das anders zu sehen.
-
Thread
GCC,AVR: uart-send in if UND else = fehler? (gcc-Anfänger)
>Wird da etwas hin-/weg-optimiert (Optimierung ist ausgestellt)? Bei -O0 wird nichts optimiert. Mit Optimierung dürfte [c] if (RxByte > 0x7F) { uart_putc(RxByte); } else { uart_putc(RxByte); } [/c] auf eine Zeile geschrumpft
schrieb: > hmmm. hört sich sehr seltsam an das... > > hast du ein compilierbares Beispiel samt gcc-Schalter, so daß man das > nachvollziehen kann? Ist RxByte vielleicht signed? > > Johann Ähem, was sind denn gcc-schalter? Ich schicke die Mididaten vom controller-TX in mein Midiinterface und
-
Thread
WD-Reset und Reset Pin erzeugen nicht das selbe wie Power off
Weitere erkenntnis. Wenn ich die Optimierung aus schalte dann funktioniert das Ausschalten des WD. Wenn ich Jedoch die Optimierung ganz normal auf Os schalte dann ist das Verhalten eine Endlosschleife die versucht den WD auszuschalten.
. Hat nichts damit zu tun ob man Arduino nutzt oder auch nicht. Ardino verwendet auch Routinen vom GCC.
-
Thread
AVR-Studio-Simulator, C-Programm schrittweise ausführen Fehlermeldung "not in scope"
Mit Optimierung übersetzt?
/articles/AVR-GCC-Codeoptimierung ... -O0 Keine Optimierung des erzeugten Codes. Diese Optimierungsstufe optimiert den Resourcenverbrauch des Hostrechners und die Nachvollziehbarkeit der erzeugten Codes anhand von
-
Thread
Goertzel Algorithmus funktioniert nicht
volatile' markiert? stm schrieb im Beitrag #2879205: > hm bist du dir da sicher? In AVR-Studio mit GCC habe ich mal das Problem > gehabt, dass er das nicht gemacht hat. Ich musste da die Divisionen > explizit als Shift-Operationen darstellen!. Ja das macht der GCC nicht nur bei AVRs, sondern auch bei ARM, x86...... Man muss dazu aber auch die Optimierungen anschalten, '-Os' oder '-O2'. Es gibt übrigens noch ganze anderer Optimierungen, die der Compiler macht, die würde man als Mensch nur mit viel viel Aufwand hin bekommen - z.B. Optimierung der ARM
-
Thread
WINAVR keine neue Version mehr?
neue Optimierungen und behobene Bugs. Neue Features wie Link-Time Optimierung (LTO). Beim Umstieg lese man auch die Release Notes! 4.7: http://gcc.gnu.org/gcc-4.7/changes.html 4.6: http://gcc.gnu.org/gcc-4.6/changes.html 4.5: http://gcc.gnu.org/gcc-4.5/changes.html Insbesondere die Teile, die sich auf AVR beziehen!
-
Thread
CooCox IDE + GCC richtig aufsetzen
Ich habe die aktuellste Version V1.7.0 von CoIDE geladen und das GCC tool chain V4.7.3: http://www.coocox.org/CooCox_CoIDE.htm https://launchpad.net/gcc-arm-embedded/+milestone/4.7-2012-q4-major Leider kann ich nur ohne Optimierung compilieren. Sobald ich irgendeinen
Kann nur bestätigen mit der Version 4.6 ( https://launchpad.net/gcc-arm-embedded/4.6 ) geht auch die Optimierung.
-
Thread
Objektorientierung mit avr gcc
letzte Mal (genau wegen dieser Thematik) in den gcc-Eingeweiden rumgewühlt hab, hab ich da nichts gefunden. >> Da braucht man avr-g++ (oder "avr-gcc -X c++"). > > avr-gcc -x c++ Richtig. War ein Tippfehler.
Hardware-Treiber als Template Argument übergeben. Das Beispiel oben verlinkte Beispiel erzeugt mit einem avr-gcc 4.3.4 und aktivierten Optimierungen insgesamt 1610 Byte. Es ist allerdings schon die Luxus Variante mit Stream Operatoren zur Ausgabe von belieben Zahlen, virtuellen Funktionen usw. Um den Ansatz
-
Thread
Umwandlung von zwei uint8_t in uint16_t erzeugt falschen Code?
Christoph U. schrieb im Beitrag #3010114: > Der AVR-GCC 3.3.1.27 mit Optimierung O1 Warum -O1 ? Tritt der Fehler bei -Os auch auf?
Christoph U. schrieb im Beitrag #3010114: > Der AVR-GCC 3.3.1.27 mit Optimierung O1 erzeugt bei mir folgendes 3.3.1.27 klingt nicht nach einer GCC-Version. Bei mir (GCC 4.7.2) wird folgendes erzeugt, wenn ich das für den ATmega1281 compilieren lasse
-
Thread
STM32F4 Discovery Startprobleme
aber nicht loslaufen. Ich habe schon alles mögliche probiert, die gcc-Optimierung scheint einen Einfluss zu haben (manche Programme laufen mit -o0 los, manche mit -o3)... Das Minimalst-Programm, dass zuverlässig nicht startet (übrigens hilft auch der Reset-Taster nicht
Fehler durch die Optimierung sind nur schwer zu finden (event. eine wegoptimierte Pause) soviel ich weiß gibt es die Möglichkeit einzelne Funktionen aus der Optimierung rauszunehemen damit könnte man Funktion für Funktion
-
Thread
Suffix bei konstanten Werten
z.B.: int tmp; tmp = 15U; Was hat die Kennzeichnung als unsigned für einen Sinn? Macht der GCC dann spezielle Operationen? Wie sieht das mit L (Long) aus? Viele Grüße
Verhalten kann etwa vom jeweiligen float-Layout abhängen. Dies ist auch der Grund dafür, daß GCC Bibliotheken wie GMP und MPFR verwendet und voraussetzt: GCC verwendet nicht die Host-FPU für solche Compilezeit-Optimierungen, sondern macht alle Berechnungen per Emulation und mit dem Layout wie auf
-
Thread
AVR Studio - altes Projekt neu compilieren
g_reichert schrieb im Beitrag #3414403: > Brauche ich jetzt die entsprechende WinAVR-Install-exe, die den GCC > 4.5.1 enthält? Zumindest finde ich bei Google kein Install-Programm auf http://gcc.gnu.org/ für den GCC4.5.1
g_reichert schrieb im Beitrag #3414403: >> Brauche ich jetzt die entsprechende WinAVR-Install-exe, die den GCC >> 4.5.1 enthält? > > Zumindest finde ich bei Google kein Install-Programm auf > http://gcc.gnu.org/ für den GCC4.5.1 Das wirst du dort auch nicht finden. WinAvr heisst die Adaption des
-
Thread
avr-gcc: interner Compilerfehler? Was tun?
oder die Optimierungen zu ändern, darauf bin ich selber auch gekommen, aber danke trotzdem.
Vielleicht ist es ja der da: http://gcc.gnu.org/PR58545
-
Thread
Volatile-Zugriffe umsortieren
> Wäre hier Reordering möglich? Nein. Falls doch, ist es ein Compilerfehler wie etwa PR51374 im GCC: http://gcc.gnu.org/PR51374 Wer einen avr-gcc 4.6.2 einsetzt, sollte das auch "live" nachvollziehen können :-)
Statement, wo man das für einen Block > verbieten kann. > Den gibt's. Zwar nicht im Standard, aber gcc tut meist das, was man erwartet: ohne Optimierung übersetzen. Wenn >= gcc 4.4, kann man auch so was machen: [c] ... #pragma GCC push_options #pragma GCC optimize "O0" /* oder "no-wasauchimmer
-
Thread
strtol Problem (Ergebnis ist immer MAX_LONG)
Sind die Optimierungen ausgeschaltet?
. endptr zeigte hierbei auf einen freien Bereich von temp ("also auf einen punkt"). EDIT2: Optimierungen sind komplett ausgeschaltet.
-
Thread
Unrealistische Recourcenauslastung bei leerem Projekt Gesperrt
RAM zu deklarieren. Der compiler hat direkt gemeckert, dass das da nicht rein passt.... Was macht GCC da?! Das kann doch nicht sein?! (siehe Anhang) Muss ich noch irgendwo rumfummeln, damit GCC weiß was es tun soll?
aus, was sich dahinter verbirgt. Allerdings dürfte eine release-Build mit eingeschalteter Optimierung das Problem entschärfen. Oliver
-
Thread
Einstieg in C - komische Fragen
hast du die Optimierung eingeschaltet?
gar nichts. > > Na gut, dann müssen wir nicht weiterreden. aktuell geht es um AVR https://gcc.gnu.org/wiki/avr-gcc und das ist das nun mal so.
-
Thread
Wie Controller "warten" lassen?
und natürlich auch hier : http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
, @Stefan 3 ist nicht unbedingt das besten. Ich könnte mir vorstellen das die Delay.h für die Optimierung s geschrieben wurde da dies normalerweise Standert ist. Wo der genaue Unterschied bei den Optimierungen ist kann ich dir leider nicht sagen. Vieleicht weis des einer von usneren Experten. Gruß
-
Thread
ATmega809 Timer CMP Interrupt funktioniert nicht
Johann L. schrieb im Beitrag #6082744: > erzeugen alle aktuellen Versionen, wenn Optimierung aktiviert ist (außer > mit -Og): @Johann: Du hattest das doch gefixed: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81268 Dazu muss in den device-specs ja folgendes stehen: [c] *asm_gccisr
#6082901: > Johann L. schrieb im Beitrag #6082744: >> erzeugen alle aktuellen Versionen, wenn Optimierung aktiviert ist (außer >> mit -Og): > > @Johann: Du hattest das doch gefixed: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81268 > > Dazu muss in den device-specs ja folgendes stehen
-
Thread
Besseren Code mit GCC erzeugen
Dem stimme ich zu, auch ich bevorzuge immer den besseren Source vor der Optimierung. Allerdings muß man auch zugestehen das gerade bei solchen Aufgaben wie oben der GCC so ziemlichen Schrott produziert. Sowas habe ich bisher noch von keinem Compiler gesehen, allerdings muß man
von Atmel: Du vergleichst da Äpfel mit Birnen. Bei den obigen Funktionen geht es nicht um die Optimierung von Zugriffen auf Speicherstruktureb sondern auf Register durch den GCC. Der GCC expandiert bei Formeln die Datentypen auf den größten verwendeten Datentyp. Bei einen Rechtsshift von einem uint32