-
Thread
Speicher sparen
Das fällt unter 'Optimierung'. Und bei Optimierung sind generelle Tips genauso schwierig zu geben wie sie dann doch nicht greifen. Optimierung muss man sich fast immer im Einzelfall ansehen. So auch hier: Es kann gut sein
prüfen, DANN ggf. einen größeren Controller wählen. http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung MFG Falk
-
Thread
Anfänger Microcontroller - bräuchte mal einen rat
der Unterschied zu den AMTEL Controllern? Atmel AVR meinst Du. Vorteile AVR: - verbreitet - GCC verfügbar (wie bei PIC24/dsPIC/PIC32) - angenehm in Assembler zu programmieren Nachteile AVR: - AVR Default-Programmierschnittstelle ISP: nur programmieren, nicht debuggen; PIC: ICSP kann mit nur
zuverlässig. Das ist für mich sehr wichtig, da ich in den Geräten bis zu 30kV steuern muß. Der AVR-GCC macht die Programmierung auch sehr einfach. Allerdings hat der GCC manchmal merkwürdige Ansichten bezüglich Optimierung. Peter
-
Thread
Optimizer Unterschiede mit GCC - Codevision - IAR
Der AVR-GCC optimiert gnadenlos mehrfache Einlesungen derselben Variable weg, wenn diese nicht volatile definiert ist. Z.B. wenn Dein if/else in einer Schleife erfolgt. Peter
(hier avr-gcc) legt Dinge fest, die im Standard "Implementation defined" sind, wie etwa die Größe des Typs int.
-
Thread
Basic und/bzw. vs - C Erfahrungsumfrage
dazu bringen an AVR's angepasst zu sein, aber nicht umgekehrt. Nenn' doch mal ein paar der "C-Optimierungen".
... und die Optimierung dem Compiler überlassen. Ich halte es auch so.
-
Thread
4 Boolsche Variablen prüfen
ich würd einfach mal schauen wie gut der gcc das selber optimiert. also einfach ne lange condition zusammenbasteln, die nur dann true zurückliefert wenn die vorgabe passt, und dem rest dem compiler überlassen. ggf mit diversen optimierungen
-
Thread
C++ Speicherfehler finden
;-) Naja, gdb zum Beispiel wird dann ziemlich böse. In der Regel reicht aber die Debug-Option von gcc schon, damit es scheppert.
ich noch mitbekommen und oben auch geschrieben. Aber hat er in den letzten Jahren auch bei der Optimierung/Codegenerierung zugelegt? Mein letzter Stand ist der, dass er dabei mit dem GCC etwa gleichauf war. XTerminator schrieb im Beitrag #2517151: >> Den Intel-Compiler würde ich als den aktuell
-
Thread
Switch-Case mit Zahlenspannen (x-y)
Wenn man den GCC nimmt, sind die Bereiche besser lesbar gegenüber dem "if" und er optimiert auch deutlich besser. Peter
Solange man beim gcc bleibt, ist das sicher besser - wie so vieles beim gcc. Zum Thema Rechenzeit: es kommt natürlich deauf, was alles in den Zweigen passiert und ob die Entscheidung ium switch überhaupt ins Gewicht
-
Thread
pic18 preis und c compiler
vier mal grösseren Code erzeugt als AVRStudio5. Ist es wirlklich so oder habe ich was da bei der Optimierung übersehen(bild). Gruss
beim AVR-gcc.
-
Thread
Kostet ein Typecast/Typenumwandlung Ressourcen?
casts) sollte es nicht zuviel verlangt sein sich den generierten Assemblercode (an den man ja bei gcc usw. problemlos herankommt) mal zu überfliegen und ggf mit dem von Alternativen zu vergleichen.
Modell eine oder auch beide Richtungen mangels Datenpfad ebenfalls recht teuer sind und AMD zur Optimierung an Stelle des direkten Einzelbefehls das aufgeteilte Store-Load Verfahren empfiehlt. Wenn es also keinen zwingenden Grund gibt, dann sollte man für abhängige Operationsketten innerhalb einer
-
Thread
Compiler optimizations
Hallo, das Argument channel (function messung) wird nur übergeben, wenn ich die Compiler Optimierung auf -O0 schalte ... bei allen anderen Einstellungen wird mir immer nur 0 übergeben ... Das Ganze teste ich mit dem AVR Studio 5. Wenn ich das auf den uc übertrage, scheint es sich irgendwie anders
schnelle Hilfe! Vorerst kann ich mir mit volatile behelfen ... dann sehe ich trotz eingeschalteter Optimierung die Werte im Debugger ... Jetzt kann ich den eigentlichen Fehler suchen :-). Markus
-
Thread
32 Bit oder 64 Bit Ubuntu für Officerechner? 4GB Ram
> RawTherapee läuft ja auch unter 32 Bit. Aber nicht die aktuelle Version. Die lässt sich mit gcc nicht für 32 Bit compilieren.
von 8048 bis zur Mainframe so gut wie alles mit Software versehen, früher meist in Assembler, seit GCC eher C/C++. Außer der anderen Ziel CPU habe ich nix verändert. Aber anyway, wer 64bit kann (Hardwareseitig), der sollte es auch machen.
-
Thread
Division durch 2er Potenz wird nicht schneller - warum?
>Ich verwende AVR Studio4 mit der Optimierungsstufe Os. Ich vermute mal, dass Du dich auf avr-gcc beziehst -- dann wäre der Bereich gcc das richtige Unter-Forum, da gibt es eher Experten... Und Option 0s, das ist doch bei gcc wohl Optimierung auf kompakten Code, wenn ich mich recht erinnere.
stört und -O1 oder -O2 in den Speicher reinpasst, dann kann man das auch verwenden. Mit #pragma GCC optimize ("O2") ... #pragma GCC reset_options lässt sich das ab GCC 4.4 auch innerhalb vom Code umstellen.
-
Thread
arm-none-eabi-gcc: Verwendung von "immediate offset" erzwingen
RY, [RX, (1<<5 + 1<<2)] STR RZ [RX, (2<<5 + 2<<2)] STR RY, [RX, (3<<5 + 3<<2)] Bisher habe ich gcc aber nur bei Zugriffen wie RCC->CFG dazu gebracht, Zugriffe mit "immediate offset" zu generieren. Egal, wie ich den Zugriff formuliere, der Zugriff erfolgt ohne Offset uns sieht wie folgt aus MOV RY
, 0] MOV RX, LowWord(BBR + 3<<5 + 3<<2] MOVT RX, HighWord(BBR + 3<<5 + 3<<2] STR RY, [RX, 0] GCC ist gcc version 4.6.0 (GCC). Ist das ein Manko von GCC oder hat jemand andere Hinweise
-
Thread
.bss Overlaps previous section
Leider gibt mir diese eine Fehlermeldung beim Compilieren aus. Ich nutzte Ubuntu 10.04 mit dem Avr-Gcc aus den Synaptics Quellen. /usr/lib/gcc/avr/4.3.4/../../../avr/bin/ld: master.elf: section .bss vma 0x800108 overlaps previous sections make: *** [master.elf] Fehler 1 Kann dieses Problem mit
Spiel mal ein bisschan mit der Optimierung rum. Wurde kein fertiges hex oder elf mitgegeben? mfg mf
-
Thread
Bits effektiv umsortieren in C
ist an eine Tabelle nicht lesbar? Nix, das habe ich ja nicht gemeint. Ich meinte allgemein Optimierungen, die oft genug dann schlechter lesbar sind (z.B. Funktionen in Assembler) obwohl sie eine Optimierung an der Stelle gar nicht notwendig ist. Z. B. Der Vorschlag Tabelle in Flash packen. Wie schnell
Ist genau gleich schnell, wie testen des Pins und setzen des Zielbits. Allerdings macht der AVR-GCC einige unnütze Befehle, wenn man das in C schreibt. Ist dann ne Abwägung zwischen gut lesbar und portabel oder 2-3 Zyklen gespart. Peter
-
Thread
Zweierkomplement uint8_t richtig ausgeben
Bit-Wert z = (struct z){z}.z; // Vorzeichenerweiterung nach int [/c] Leider tut sich da der GCC etwas schwer bei der Optimierung.
> z = (struct z){z}.z; // Vorzeichenerweiterung nach int > [/c] > > Leider tut sich da der GCC etwas schwer bei der Optimierung. Das mit den 10 Bit laeuft. Ich will aber auch eine 8 Bit Variante. Hierbei liegen die Daten in einem uint8_t und das Vorzeichen ist auch an der 8. Stelle. Um dem
-
Thread
Global angelegtes Objekt in C++ funktioniert nicht
Wie hast du den compilert und gelinkt? Hast du dafür gcc oder g++ verwendet?
. Kann man alle einzeln ein- oder auch nach -O2 wieder ausschalten, z.b. mit -O2 -fno-gcse http://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/Optimize-Options.html#Optimize-Options
-
Thread
unterbrechbare Ausschaltverzögerung für Peak&Hold
die gewünschte Unterbrechnung nicht funktioniert. Daher wurde das Inkrement verwendet und die Optimierung ausgeschaltet bzw. O0 gewählt. Will ich nun weitere unabhänige Funktionsstrukturen mit in den C-Code einbauen, die ein "delay" verwenden, muss ich den Optimierer ja aktivieren. Dann wird das Inkrement
überhaupt möglich. Das ist die richtige Überlegung. Hast du das hier schon gelesen? [[AVR-GCC-Tutorial/Die Timer und Zähler des AVR]] Im Wesentlichen brauchst du nur zu Beginn einen Timer zu initialiseren, die Variable i durch das Timer-Register zu ersetzen und HOLD-TIME entsprechend anzupassen
-
Thread
STM32F4 printf bleibt hängen
Library configurator" eingestellt. In program steht dan bei mir : [c]#ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else //#define PUTCHAR_PROTOTYPE
IAR kenne ich noch andere Macken. Vielleicht hat die der Codesourcery auch. Versuche mal die Optimierungen abzuschalten. Am besten auch mal ein Clean machen.
-
Thread
EEPROM bei Atmega 8
Ernst schrieb im Beitrag #2480651: > Dann hängt das Funktionieren auch noch davon ab, ob die Optimierung > aktiviert ist. Ist sie es? Was denn für eine Optimierung ? > PS: Wieso überhaupt eigene EEPROM-Funktionen? Gibt es denn eine fertige ?
F_CPU 3686400 // Taktfrequenz des myAVR-Boards #include <avr\io.h> [/C] sieht sehr nach WinAVR-gcc aus. Also hast du auch die Optimierungen zur Verfügung. Du musst nur noch die Stelle in deiner Entwicklungsumgebung finden, in der du sie einstellst.
-
Thread
LCD C-Code so groß?
Optimierung nicht eingeschaltet oder floatingpoint verwendet?
auch? F_CPU ist in den Projekteinstellungen, falls du das meinst. Wie gesagt jetzt mit der Optimierung ist der Code nur noch 356Byte groß
-
Thread
Zukunft von C# Gesperrt
Berechnung (nicht Ein- und Ausgabe) > viermal so lange gebraucht wie C Die Zeiten waren 10s in C mit gcc gegen etwas über 40s in Java mit Eclipse. Dabei machte es fast keinen Unterschied, ob die Optimierung ein- oder ausgeschaltet war. Mit anderen Suchbereichen habe ich das auch probiert und das Verhältnis
i686-apple-darwin9-gcc-4.0.1 Also anscheinend gcc 4.0.1 JavaSE 1.6.0_29-b11-402 Eclipse Indigo Release 1
-
Thread
Speicherverwaltung Atmega8 was geht wohin? --> C
überdenken. Ja. >Was habe ich noch vergessen? http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung >PS. Ich kann kein Assembler, ich weiss das damit fähige Leute sehr >optimierten Code erzeugen können. Lohnt sich zu 99% nicht, der AVR-GCC ist meist schon ganz gut. MfG Falk
übernehmen das man irgendwo gelesen hat. Peter Dannegger schrieb im Beitrag #2478718: > Beim AVR-GCC ist leider die Standardeinstellung, daß er heimlich > inlined. Ist ja nicht schlimm solange noch ausreichend Platz vorhanden ist.
-
Thread
Assembler Grundlagen (einbinden) (ATxmega128A1 + AVR Studio 5)
jetzt in Assembler programmieren, und > irgendwie in meinen jetzigen C Code einbinden. Bei der GCC Toolchain gibt es dafür das AVR GCC Inline Assembler Cookbook. Dein Vorhaben ist aber weit über Anfängerlevel! An deiner Stelle würde ich unbedingt versuchen das Problem komplett in C in den Griff zu
Das bereits erwähnte AVR GCC Inline Assembler Cookbook erklärt das. Das ist allerdings nicht anfängerfreundlich - es ist halt kein Thema für Anfänger. Es kann helfen, aus zwei Quellen gleichzeitig zu lernen. Im Roboternetz-Wiki
-
Thread
Performance des GCC
diese wegoptimiert. Das volatile habe ich bei den späteren Tests wieder entfernt. Die wirkliche Optimierung kam aber (zumindest bei dem Windows MinGW GCC) erst mit der weiteren Übersetzungsoption -msse2. Der grundsätzliche fragwürdige "Benchmark" ist auch nicht auf meinem Mist gewachsen, siehe codeproject
vielleicht passend zur Thematik. ich habe in letzten Tagen auch mit GCC (version 4.5.3) herumexperementiert. Interessant sind die Vergleiche zwischen -O1 und -O2 und ohne Optimierung. Einmal mit konstantem Parameter, einmal mit einem laufzeitabhängigen Parameter. $
-
Thread
Geschwindigkeit?
Schleifendurchlauf. Das ist für eine RISC-CPU ganz o.k. Mit -Os solltest Du etwas besser werden. Andere Optimierungen sollte man nur dann nehmen, wenn man auch weiß warum. Peter
Compilezeit berechnet und als Konstante in > den Code eingefügt werden. sobald irgend eine optimierung angeschaltet ist wird das ersetzt.
-
Thread
kostenloser Compiler gesucht
eben... Welcher GCC verwöhnt Dich denn? Der AVR-GCC kann es jedenfalls nicht sein. Der erzeugt für die gleiche Applikation auf dem AVR deutlich größeren Code, als der C51 auf dem 8051. Die Optimierungen des Keil
> Der AVR-GCC kann es jedenfalls nicht sein. > Der erzeugt für die gleiche Applikation auf dem AVR deutlich größeren > Code, als der C51 auf dem 8051. Kannst du an einem Beispiel konkretisieren? > Die Optimierungen
-
Thread
Spass mit C Code
Doch ist die Ausgabe bei jedem Aufruf anders, auch beim unmodifizierten Quelltext. Mein Compiler ist gcc (GCC) 4.6.2 20111125 (prerelease)
PHP <3 schrieb im Beitrag #2470271: > Also mit gcc 4.5.2 gehts ohne Probleme. Auch weitere Parameter machen > dem ganzen nix. Mit oder ohne eingeschaltete Optimierungen?
-
Thread
Ausführungszeit (Zyklen) ermitteln?
ja möglich, aber wie geht das konkret? Hat jemand eine Idee? Verwendete Software: CrossPack mit GCC 4.3.3 Stefan
ein Messbeispiel aus: [c] start_t1_counter(); CODEBLOCK( /* mein code */ ); // hier die Optimierung abschalten !! stop_t1_counter(); uint32_t ticks = read_t1_counter() - u32_self_tick; [/c] Ausgeben kann man das dann über ein LCD-Display oder auch über die serielle Schnittstelle.
-
Thread
40Bit Datentyp selber basteln
AVR IAR C/C++ Compiler??? Nein, auf keinen Fall. Meine Assemblerdatei läuft nur mit dem AVR-GCC. Sie benutzt dessen Registerzuweisung und Funktionsnamen. Peter
ist auf Codegröße optimiert, nicht auf Laufzeit. Die Laufzeit ist zwar auch schneller als die AVR-GCC Lib, aber der IAR wird bestimmt besser optimiert sein. Peter
-
Thread
Code optimieren und delay Funktionen beibehalten?!
falsche Ansatz so lange die Ursache noch unbekannt ist. Um deine Neugier zu stillen: Erst GCC ab Version 4.4 (also nicht für WinAVR2010... inklusive! Aber möglicherweise mit der Atmel AVR Toolchain) bietet ein #pragma zur Einstellung von Optimierungen auf Funktionsebene an (http://gcc.gnu.org
UND DANN optimierung für die delay-Funktion abschalten ;)
-
Thread
made from scratch Firmware für Wittig/Welec Oszilloskop W20xxA
Die Cygwin Version von SF habe ich auch erst benutzt. Es gibt aber eine minimal neuere GCC Version von Altera. Die cygwin Version auf SF ist die "gcc version 2.9-nios-010801-20030718", die letzte Altera Version für den Nios I ist "gcc version 2.9-nios-010801-20041001" (GNU Tool 3.2). Den
Björn F. schrieb im Beitrag #2517975: > Wie schon gesagt, mit dem gcc > 4 mag er den Code nicht übersetzen. > Übersetzt ist das ganze also mit gcc 3.4.4 unter Ubuntu 10.04. Den alten > gcc muss man allerdings aus dem Hardy Repository installieren. Entschuldigung,
-
Thread
arm gcc Arrayzugriff
Welche GCC-Version kommt zum Einsatz? Mit welchem Programm wird das Programm auf den µC geladen? Ist es zufällig das stm32vldiscovery? Steht ein Debugger zur Verfügung? Marco Weinrich schrieb im Beitrag
Hallo Roland, ich benutze den gcc Version 4.5.2 unter Linux. Einen Debugger besitze ich keinen, und auf dem Board sitzt ein STM32F103RBT6.Flashen tue ich mit stm32flash. Wie schalte ich die Escalation ab? (bin noch Arm-Anfänger)
-
Thread
AVR-GCC: Ist > schneller als >=?
Bartli schrieb im Beitrag #2463072: > wie man an gcc's Assembleroutput rankommt gcc -S -o asm_output.s quellcode.c Vermutlich wolltest Du es selber wissen :-)
Bist du das jetzt extra im gcc Manual nachschlagen gegangen?
-
Thread
Webseite für die Einarbeitung STM32 auf Deutsch
Hardware z.B. Sensoren in meine Simulationen mit einbinden. Das Hilft bei der Visulaisierung und optimierung komplexer Regelungen. Weißt du zufällig wo ich die Cpp bezüglichen Einstellungen für den GCC nachlesen kann? Ich würde mit gern ein genaueres Bild machen was ich Abschalten kann und was ich
/github.com/texane/stlink (zum > Programmieren und gdb-Anbindung) unter Linux, dazu arm-none-eabi-gcc Genauso hatte ich mir das gedacht. Als IDE dachte ich an Eclipse denn dort habe ich bereits arm-none-eabi-gcc zum laufen gebracht.GDB habe ich aber bisher noch nichts gemacht. Das Beispiel für
-
Thread
Bräuchte ein paar "Tipps"
erstmal getrost auslassen. wenn man die Grundlagen von C drauf hat, würde ich empfehlen mit dem AVR-gcc-Tutorial hier anzufangen und ein paar LEDs blinken zu lassen
schrieb im Beitrag #2465533: > Allerdings ist es lustiger ein C-Programm zu debuggen, wenn die > Optimierung einen Code erzeugt, der nichts mehr mit dem Quelltext zu tun > hat Die Optimierung darf das Endergebnis nicht verändern.
-
Thread
LCD Ansteuerung, was tun
Nabend, habe den Beispielcode von http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung verwendet und auch so die Verdrahtung vorgenommen. Debuggen funktioniert einwandfrei. Jedoch wird mir immer noch kein Test sondern nur viele dunkle Balken in der ersten
initialisiert. Der Compiler meckert nicht zufällig über eine nicht definierte F_CPU oder fehlende Optimierung für die delays? Poste mal deinen kompletten Code. Die RW Leitung liegt auch wirklich an GND?
-
Thread
Test.elf section `.text' will not fit in region `text'
meint er damit? Steht doch da: "Compiler optimizations disabled". Aktiviere die Compiler-Optimierungen, und erstens werden deine Delays wieder funktionieren, zweitens wird dein Code auch wieder passen. Danach schreibste Atmel noch einen Bugreport, dass sie doch bitteschön die Optimierungen
/auch/ für den Debug-Build. Code für einen (Semi-)RISC-Prozessor ohne aktivierte Compiler-Optimierungen zu bauen, ist ziemlicher Unfug.
-
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.
-
Thread
Globales Struct/Array nicht automatisch initialisieren
Das mit dem .noinit habe ich auf dieser Seite gefunden: http://www.rn-wissen.de/index.php/Avr-gcc
#2456193: > Und volatile. Sehr sinnvoll in main() ;) Nunja, habe ich geschrieben, damit die Optimierung mir nicht reinquatscht ;)
-
Thread
Projekt funktioniert nach Neuinstallation von WINAVR nicht mehr
Einziger Anhaltspunkt: Winavr gibt beim kompilieren folgende Warnung aus: c:/winavr-20100110/lib/gcc/../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." Hatte schon jemand mal dieses Problem? Kann mir jemand helfen? Bernd
Kann z.B. an einer "aggressiveren" Optimierung im neueren WINAVR liegen. Wenn du im Code z.B. Einfachst-Warteschleifen mit Variablenhochzählen hast statt der _delay_Xs() Funktionen, wäre das eine Problemstelle. Auch in der Gegend gemeinsam
-
Thread
Abstrakte Basisklasse - Fehlermeldung in C++
alleine verwechselt man sonst evtl mit dem "pure"-Funktionsattribut (==Seiteneffektsfrei), das der GCC z.B. für die Optimierung verwendet. (Offtopic: mit dem Prototyp [c]int my_strlen(char*) __attribute__ ((pure));[/c] darf der Compiler dann z.B. [c]int x=my_strlen(a)+my_strlen(a);[/c]
alleine verwechselt man sonst evtl mit dem > "pure"-Funktionsattribut (==Seiteneffektsfrei), das der GCC z.B. für die > Optimierung verwendet. Merci. Werds mir merken. Guter Punkt.
-
Thread
Strings ohne Null am Ende? Gesperrt
MS-Compiler alles fix und fertig in nur die eine Variable bzw. Konstante. Kann aber schon sein, dass ein GCC oder sonstiger Compiler das nicht so elegant hinbekommt. Ohne eingeschaltete Optimierung sieht's mit Visual auch leicht verwegen aus (fummelt dann die Strings in den Strukturen im Startup-Code zusammen
die ich beide direkt > davor im Code wörtlich stehen habe? Guckst du zB in den Quellen von avr-gcc http://gcc.gnu.org/viewcvs/trunk/gcc/config/avr/avr.c?content-type=text%2Fplain&view=co nach dem Makro STR_PREFIX_P sowie der inline-Funktion avr_replace_prefix und wie sie verwendet werden.
-
Thread
Global typedef struct mit signed char?
Der erzeugter Maschinencode ist übrigens in beiden Fällen gleich, egal mit welcher Optimierung. Die Angabe der Bits bzw. Weglassen derselben hat offenbar nur Einfluss darauf, wie Studio die Werte interpretiert.
dass ich was übersehen hab'. Kann auch sein, daß dieser Fehler bekannt und in einer späteren AVR-GCC-Version bereits behoben ist. Verwendet wurde WinAVR-20090313. Die richtige stdint.h wurde benutzt, geprüft durch Umbenennen. Die "volatile" im Struct hab' ich raus genommen. Sobald der Struct selbst
-
Thread
avr-gcc 4.7 I/O-Zugriffe
/Optimierungen im AVR-Teil dürfte das > absolut garnix zu tun haben, weil es dort von 4.3 bis 4.6 > einschliesslich de facto überhaupt keine Ändrungen gab. Die Teile von GCC, die den AVR betreffen, sind
> "maschinenabhängig" reichen. Dadurch ergeben sich natürlich viele > Möglichkeiten. Ist beim GCC auch so, siehe oben. In aller Regel sind die Optimierungs-Patzer darauf zurückzuführen, daß GCC ein Multi-Pass-Compiler ist. Beispiel: In einer Schleife wird eine Invariante gefunden. Ist es günstig
-
Thread
_delay_ms tut garnichts
Gibt es keine Warnungen? Welche Optimierung ist eingestellt? _delay_ms meckert bei mir immer, wenn ich -O0 habe.
Das Problem gab es schon öfter mal. Lies mal hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29
-
Thread
Alles Rund um den MEDION LIFE P89626 NAS
Dhrystones mit anderen Prozessoren: [pre] 25642 MS-C 5.0 80486 @ 33 MHz 507443 gcc 4.5.1 ARM926EJ-S rev 5 @ 180 MHz 931676 gcc 2.95.3 AMD-K6 @ 375 MHz 985222 gcc 4.1.1 iMX31 @ 512 MHz (phyCORE-i.MX31) 1353913 gcc 4.0.2 MPC 5200 B (G2_
gcc 4.6.0 Intel Pentium M (760) 2.00GHz, 533 MHz FSB 16491754 gcc 4.4.1 AMD Phenom(tm) 9350e Quad-Core @ 2GHz 39782406 gcc 4.5.1 Intel Pentium Dual-Core E6300 @ 2.80GHz