-
Thread
Welche Programmiersprache?
höhere Performanz von Assemblerprogrammen ausnutzen können: meistens erzielt die automatische Optimierung guter Compiler bessere Ergebnisse als die händische Assembler-Optimierung. Assembler ist im Übrigen starken Beschränkungen unterworfen, was die Portierbarkeit angeht: wenn Du Programme für Mikrocontroller
daß Du für verschiedene Zielplattformen dieselben Werkzeuge benutzen kannst, nämlich den C-Compiler gcc aus der GNU Compiler Collection (GCC). Das hat mehr Vorteile, als es auf den ersten Blick ausschaut: Du kannst Dir kleine Kommandozeilenprogramme für Windows oder Linux schreiben, um bestimmte Features
-
Thread
Warum bekomme ich keinen Überlauf?!
Das Verhalten ist mit GCC/Linux 4.7.3 reproduzierbar und tritt nur bei eingeschalteter Optimierung auf, nicht aber bei fwrapv. Das Verhalten des Compilers ist völlig in Ordnung, da - wie schon erwähnt wurde - das Überlaufverhalten
A. K. schrieb im Beitrag #3365837: > Das Verhalten ist mit GCC/Linux 4.7.3 reproduzierbar und tritt nur bei > eingeschalteter Optimierung auf, nicht aber bei fwrapv. > > Das Verhalten des Compilers ist völlig in Ordnung, da - wie schon > erwähnt wurde -
-
Thread
Ist mein µC schnell genug?
>Wie finde ich heraus ob mein ATmega32 Also normalerweise macht das ein AVR mit links! (Optimierung beim Compilieren einschalten!) Wieviele MHz hat dein AVR und wievile kHz braucht dein Motor?
RAM und zurück schaufeln muß. Und die 7kB Code lassen vermuten, Du nimmst noch nen älteren AVR-GCC (<4.7), da sind 64Bit so richtig langsam.
-
Thread
Float anschauen
2. noch der 3. Vorschlag sind standardkonform, wobei die Verwendung einer Union wie im Vorpost mit GCC funktioniert, aber nicht unbedingt mit anderen (standardkonformen) Compilern.
kriegt ist das > außerdem extrem ineffizient. Dann ist aber auch der Compiler extremer Murks. gcc muß es noch nicht mal wegoptimieren, da es eh komplett im Compiler implementiert ist. Das heißt, daß es selbst bei ganz ausgeschalteten Optimierungen nicht zu einem Funktionsaufruf kommt. Ich habe
-
Thread
Warum sind nicht verwendete Funktionen im Build enthalten?
welche Sections weggelassen werden und erhalte folgende Ausgabe: [code]... c:/winavr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: Removing unused section '.text.test1' in file './trunk/FR_CONTROL.o' c:/winavr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: Removing unused section '.text.test2
nimm halt -O0 statt -Os oder -O1, -O2, -O3. Oder besser: Wenn du debuggen willst schalte die Optimierung komplett ab.
-
Thread
Beispielprogramm Pi_on_2313.c, hex-Datei zu groß
file:///C:/WinAVR-20100110/doc/gcc/HTML/gcc-4.3.2/gcc/Optimize-Options.html#Optimize-Options Kann mir da jemand weiter helfen bitte? mit freundlichem Gruß
> - Anregungen der Experten umsetzen, damit es in den 2313 hinein paßt > - genau die vorgegebene GCC-Version installieren und damit compilieren, > falls die vorgegebene Kommandozeile paßt. > - sich hier durchkämpfen (?): > file:///C:/WinAVR-20100110/doc/gcc/HTML/gcc-4.3.2/gcc/Option- > Summary.html
-
Thread
avr-gcc Bug, oder weshalb Behandlung als signed?
Ich habe eine Schleife geschrieben, welche, falls die normale Ausführungsbedingung innerhalb einer bestimmten Zeit nicht false wird, durch ein Timeout beendet werden soll. Diese ist folgendermaßen realisiert: [c] ... uint16_t timeout = 0; ... while ((!(TWCR & (1<<TWINT)))&&(timeout<65000U)){timeout++;} ... [/c] Beim Debugging in Assembler sieht dies folgenermaßen aus: [avrasm] 00000296 ADIW R24,0x01 Add immediate to word 00000297 LDD R18,Z+0 Load indirect with displacement --- C:\Users\User\Desktop\Firmware\Debug/.././i2c_functions.c 00000298 TST R18 Test for Zero
-
Thread
Wie viel RAM benutzt meine Applikation?
linker den RAM verbrauch kennen? Hallo Peter II, Beim zusammensetzen des Programms muss doch der GCC irgendwie wissen, wie viel RAM gesammt verbraucht wird. Denn wenn ich die Optimierung -Os wegfallen lasse, meldet er mir, dass der RAM des Boards nicht ausreicht. Vllt. sollte ich noch sagen, dass ich den arm-none-eabi-gcc benutze, samt Eclipse auf Linux. Gruß, Heinz
-
Thread
bitte Hilfe, interner Compiler Fehler
Beim Compilieren von Hit1270.c kommt bei mir ein interner Compiler Fehler, wenn ich als Optimierung "o3" wähle. Mit Optimierung "os" ist die Welt in Ordnung. Umgebung: WindowsXP, AVR Studio 4, aktuelles WinAVR (GCC 4.3.3). Der Fehler kommt aber auch, wenn ich dem WinAVR einen GCC 4.7.2 unter
Ich habe hier gerade einen GCC-4.3.3 unter Cygwin am laufen. [c] $ avr-gcc --version avr-gcc (Memsic 20120521) 4.3.3 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions
-
Thread
Problem: Compiler beschreibt variable nicht korrekt
Zugriff auf PROGMEM-Variablen geschieht über pgm_read-Funktionen. Alternativ nimm __flash (ab avr-gcc 4.7).
1765 0b2e 8093 0000 sts pidSetGenInf+16,r24 [/code] Jeweils erstellt mit: avr-gcc -O$irgendwas -mmcu=atxmega256a3 /tmp/test.c -pedantic -Wall -g -Wa,-adhlns Version ist avr-gcc 4.7.1. MfG, Arno
-
Thread
Probleme mit dem Speichermanagement beim AVR mit GCC
geschrieben werden könnten? oder das ergebnis aufgesplittet? ohne code kann ich keine vorschläge für optimierung geben ^^
Es geht nicht um Optimierungen, es geht darum während der Initialisierung temporär ungenutzten Speicher nutzen zu können. Aber vermutlich ist das wirklich nicht vorgesehen im GCC oder irgend einem C-Compiler...
-
Thread
AVR programmierung unter Linux basiernede Systeme
Als Erstes brauchst du die 4 folgenden Pakete: gcc-avr avr-binutils avr-libc avrdude Am einfachsten installierst du sie aus deiner Linux-Distribution mit dem entsprechenden Installer (z.B. "apt-get install gcc-avr" in Debian) Damit kannst du
das neue Flash-Interface via /named address spaces/ (“NAS”). Aber es gibt auch endlos viele Optimierungen, die da reingekommen sind. Zuvor war es leider so, dass mit jeder neuen GCC-Version die Codegenerierung für den AVR (insbesondere die Code-Dichte) eher schlechter als besser wurde; 4.7 ist
-
Thread
Impulse mit Interrupt zählen
fehlen sämtliche Kommentare. Der Rat mit "Assembler neu schreiben" ist natürlich Quatsch. Optimierung kontrollieren; ggf. Listingfile ansehen. Gruss
einer 1 für diesen Pin im PORTx Register eingeschaltet. [[AVR-Tutorial: IO-Grundlagen]] [[AVR-GCC-Tutorial]]
-
Thread
AVR-GCC: Funktionspointer in ISR
größer, daß der Compiler erkennt, wie der Code des Callie denn genau lautet. Warum die o.g. Optimierung von GCC nicht durchgeführt wird — da müsst ihr die GCC-Entwickler fragen. Wahrscheinlich wie bei so vielen anderen Dingen auch: Es ist nicht implementiert, weil es bislang niemandem wichtig genug
Johann L. schrieb im Beitrag #3337659: > Warum die o.g. Optimierung von GCC nicht durchgeführt wird — da müsst > ihr die GCC-Entwickler fragen. Ich könnte mir vorstellen, dass der GCC bei einer externen Funktion grundsätzlich erstmal davon ausgeht, dass diese
-
Thread
Makros versus Funktionen
Stefan schrieb im Beitrag #3333210: > Aber > dann klappt die Optimierung nicht mehr so gut, oder doch? Funktionen sind Makros grundsätzlich und immer vorzuziehen, falls irgendwie möglich. Makros haben keinen Typ, keinen Scope, bringen die Syntax durcheinander etc. Wenn man inline-Funktionen verwendet klappt die Optimierung genau so gut (wenn der GCC sich trotzdem weigert die Funktion zu inlinen, __attribute__((always_inline)) dranschreiben). Headerfiles mit Tausenden #defines (siehe CMSIS...) sind wie ein Feld
-
Thread
Hackbarer(?) 21 EUR Quadcopter
wird er auch nicht zerlegt. Grüße Michael P.S.: Wobei die Höhenregulierung wirklich eine Optimierung gebrauchen kann.
Repository laden? :) Ist schon geschehen: https://github.com/hackocopter/SWD-Hacking mingw-gcc ist übrigens ziemlich schmerzfrei.
-
Thread
GCC: Adresse einer bestimmten Codestelle
sondern im ELF-File als Label auslesbar sein. Eine erste Idee war, das "Label as value"-Feature des GCC zu verwenden, einen Pointer damit zu beschreiben und diesen dann während des Programmablaufs im z.B. Simulator auszulesen: [C] void *ptrLabel; int main(void) { // Label-Adresse in Pointer
z.B. durch eine (Pointer-)Variable. - wenn möglich ein Konstrukt, das nicht nur speziell für den GCC verwendbar ist. Irgendjemand eine Idee? Schönen Tag noch, Thomas
-
Thread
Konstante in C verändern möglich? (mit Tricks oder so)
einfach gehts dann wohl doch nicht. Naja, das, was wir hier treiben, ist auch undefined behavior. Der gcc-4.6.3 x86 gibt brav "3" und "1" aus, ob mit oder ohne Optimierung, wenn ich bei meinem Code printfs einfüge. Wichtig: Das es irgendwie "geht", heißt nicht, dass das legaler Code ist!
von Peter II gibt´s dann auch keine Warnung. Ich verwende CodeBlocks unter Linux mit dem Compiler GCC.
-
Thread
Wieso Objektorientiert?
wirklichen Unterschied ob ich in Assembler, C oder C++ programmiere, der Compiler erledigt mir mehr Optimierungen als ich für verschiedene Hardware jemals selber erlernen kann. Diese Diskussion ist daher mit der zwischen Assembler vs. Hochsprache identisch und genauso sinnfrei. Wer kein OO will soll es bleiben
(den Namen gibts so nicht mehr) ein Teil des Unterbaus von OpenOffice. Später kam dann noch der gcc/g++ unter Linux, Mac und Android dazu sowie WxWidgets und noch ein paar fremde Libs. Und wiel die Welt so schön ist, musste für Teile des Codes auch noch ein PHP-, Java- und JavaScript(V8)-Interface
-
Thread
Seltsames verhalten des GCC Compilers beim Arduino
und Word ändert es ab, formatiert es, weil es meint ich wolle das so. Ich werde mich aber mit dem GCC mal näher befassen, vor allem mit dem Präprozessor
eingeschaltet. Also optimiert er. Schaltest du ihn ab, optimiert er nicht. Nur bei eingeschalteter Optimierung kannst du nicht erwarten, daß der Compiler deine Gedanken liest. Da musst du ihm schon, z.B. mit volatile, auf die Sprünge helfen. Oder die Optimierung abschalten. Alles deine Entscheidung. mfg
-
Thread
Merkwürdige Compileroptimierung, wo liegt (mein) Denkfehler
laufen, wird der Code um 20Byte länger und alles scheint zu stimmen. Was ist hier los? Compiler: AVR-GCC-4.8.0, Optimierung -s, Target ATMEGA8 Harald
In http://gcc.gnu.org/gcc-4.8/changes.html steht geschrieben: "GCC now uses a more aggressive analysis to derive an upper bound for the number of iterations of loops using constraints imposed by language
-
Thread
Pointer Vergleich mit Konstante
Ich blick es nicht. Habe einen Ringpuffer für die USART Behandlung. (Studio6.1 also GCC4.7.x, ziel ist ein tiny2313) [c] #define USART_RX_BUFFER_MAX 10 static uint8_t usart_rx_buffer[USART_RX_BUFFER_MAX]; static uint8_t *usart_rx_read = usart_rx_buffer; //lese von Puffer
Paul schrieb im Beitrag #3315172: > Naja, Optimierung sieht für mich anders aus. Wie denn ? >> und keine Musterlösung für einen nach allen Seiten abgesicherter >> Ringbuffer. > > Der aber deutlich übersichtlicher, kürzer und schneller
-
Thread
Bittiefe eines µCs
Anfänger in der µC Programmierung und programmiere z.Z. einen 8-Bit µC von Atmel mit AVR Studio 6.1 und gcc. Da ich zukünftig auch größere Projekte durchführen will, würde ich mich gerne mal informieren, was das genau mit der Bittiefe der µCs auf sich hat. Es gibt ja auch 32-Bit µCs... Mir ist klar, dass
A. K. schrieb im Beitrag #3308530: > Wobei Compiler bei Optimierung auf Platz immer noch > gerne die alte Version verwenden, weil kleiner (6 Bytes statt 8). Mögliche weitere Gründe: - Der literal pool mit den Adressen kann vom Linker geschickt so plaziert
-
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
STM32F4 Compiler bremst den Code
einem Interrupt innerhalb von 600 Taktzyklen erledigt haben muss. Mit dem Code unten und der Optimierung -o2 habe ich das schon fast geschaft (0,25µs also 42 Takte fehlen noch). Nur leider ist mein Compiler offenbar nicht immer gleich geschickt und wenn ich irgendwo anders im Code Änderungen vornehme
Zumindest beim GCC war es so, dass wenn man nur Codeteile im Ram haben will, die Funktion mit der entsprechenden Sektion markieren muss und imLinker Skript diese Sektion definieren muss. Hat den Vorteil, dass nicht
-
Thread
C++ Compiler für ARM (STM32 M0-M3)
nachher nochmal versuchen dort einzubinden. Gibt es eigentlich gravierende Unterschiede zwischen gcc und Mikroe? Kann gcc irgendwas mehr was mikroe nicht kann? Bugs haben sicher sowieso immer alle..irgendwo..
Chance, dass ein Bug behoben wird, da GCC/ARM weltweit sehr oft genutzt wird. Bei der Optimierung dürfte ein deutlicher Unterschied bestehen. > Kann gcc irgendwas mehr was mikroe nicht kann? Ich kenne microe nicht, aber bei der Unterstützung
-
Thread
swap in C Vs. Asm
man ebenfalls meint klüger zu sein als der Compiler ist ja auch nicht tot zu bekommen. Und diese Optimierung ist schon wesentlich länger in dem AVR-GCC enthalten.
Ein Problem bei der Optimierung von Mul/Div zu Shift ist, dass der mit Shifts erzeugte Code länger sein kann als Mul/Div-Befehle oder der Aufruf einer Laufzeitfunktion. Und avr-gcc daher in seiner üblicherweise verwendeten -Os
-
Thread
UV-Laserdrucker
Die schnelle Bewegung mit Richtungswechsel erfordern sicherlich einige Überlegungen in Richtung Optimierung der Schrittmotorsteuerung. Das stelle ich mir alles andere als leicht vor. Es wäre schade, wenn Du nicht weiter machst nur weil das Pollin-Teil zickt. Habe mir das Bild vom Pollin-Teil nochmal
:-) Bei der Gelegenheit habe ich bemerkt, dass es gar nicht schlecht ist, sich mal mit dem AVR GCC-Compiler zu beschäftigen. Man wird nicht dümmer dadurch ... Das (ATXMega A-Manual): ... 12.12.10 INTFLAGS - Interrupt Flag Register ... The CCxIF can be used for requesting a DMA transfer.
-
Thread
volatile cast: GCC Bug oder gültige Optimierung
besten man kompiliert das immer nur mit einer Schleife, dann sieht man im Listing was ich meine. Optimierung ist -Os mit GCC 4.7.2 von Launchpad Plattform ist ein STM32 [c] #include <stdint.h> static char m_cRecBuffer[23]; void __attribute__((noinline)) uart_read_async(uint8_t* pa_pcBuffer
Also beim AVR-GCC läßt sich volatile nicht direkt casten. Nur über den Umweg als Pointer: [c] // force access of interrupt variables #define IVAR(x) (*(volatile typeof(x)*)&(x)) uint8_t blub; int main
-
Thread
static global
. GCC hat ja auch den Schwenk zum offiziellen ARM-ABI gemacht.
Yalu X. schrieb im Beitrag #3297389: > Zumindest der GCC scheint dies aber nicht zu tun, nicht einmal > bei 1-Byte-Strukturen. Interessant, ich habe das mal ausprobiert: Auf ARM EABI Thumb2 und AVR übergibt er structs per Register (auch ohne Optimierungen
-
Thread
ATtiny mit Arduino als ISP
verursachen, das riecht vielmehr nach nich eingeschaltezer Compileroptimierung. Wenn der Compiler AVR-GCC ist, die Option -Os einschalten. Gruß Ralph
Also das mit dem Delay war auf jeden Fall schonmal für die enorme Größe verantwortlich. Die Optimierung habe ich auch versucht, die funktioniert wunderbar (also was die Größe betrifft), allerdings geht es dannach nicht. AVRdude haut das problemlos auf den µC, der macht aber nichts. Das gilt für alle
-
Thread
ARM: Funktion in SRAM kopieren und ausführen
Linker das passende Argument liefern. Auch ist dieses 4*32 unschön, gibt es eine Möglichkeit im GCC die Größe einer Funktion herauszubekommen ohne den Assemblercode ausgeben zu lassen und die Maschinenbefehle zu zählen?
kommt doch das gleiche raus. Es muss also am Thumb-Bit liegen. Deine Rechnung nimmt es raus, oder? Der GCC setzt in Wirklichkeit das Thumb-Bit.
-
Thread
nop nop nop nop nop nop nop nop
}; int main () { StaticLoop<13>::run ([] { asm volatile ("nop"); }); }[/c] Benötigt leider GCC-spezifische Attribute um keine unnötigen Funktionsaufrufe zu generieren und klappt auch nur mit eingeschalteten Optimierungen. Die delay Funktion ist wohl onehin besser da sie den CPU-Takt mit einberechnet
Achso, ja. Naja, nach C war nicht explizit gefragt, und "gcc" nach "g++" im makefile ändern ist aufwandstechnisch vertretbar ;)
-
Thread
Wie habt ihr C gelernt?
, Shell. µC habe ich hobbymäßig mit Assembler programmiert. Und vor ca. 3 Jahren erst habe ich das gcc-Tutorial hier überflogen und mein erstes C Projekt auf dem AVR durchgezogen. Ich würde mich all jenen anschließen, die empfehlen C auf dem PC zu lernen. Wenn man die Sprache an sich beherrscht und vielleicht auch schon die richtige^Wselbe Toolchain (gcc) verwendet, dann hilft das enorm weiter wenn man den Schritt zum µC geht. Da kommt dann eigentlich bloß noch ein Sack magische Namen wie PORTD oben drauf. Und natürlich eine andere Standardlibrary.
-
Thread
Wozu braucht man Funktionspointer?
Zustandsautomaten!) auch gerne mit sowas um. Und wenn der Compiler das intern können muss (und sei es für die Optimierung), warum nicht auch gleich dem Programmierer anbieten?
void-Pointerei sagen. W.S. schrieb im Beitrag #3285224: > Yagarto ... kommt nicht mit FPU's klar, der gcc-arm-embedded ist da besser.
-
Thread
Welche GCC Version ist empfehlenswert?
Hi, welche GCC Version ist momentan empfehlenswert, wenn man wenig Wert auf Ueberraschungen wie explodierende Binarygroesse oder kaputte Optimierungen legt? :-)
Postix schrieb im Beitrag #3274105: > welche GCC Version ist momentan empfehlenswert, wenn man wenig Wert auf > Ueberraschungen wie explodierende Binarygroesse oder kaputte > Optimierungen legt? :-) für welchen Platform denn?
-
Thread
ATmega 16 alle Pins auf Ausgang
Hallo Silvano, ich kann dir nur Empfehlen einfach mal das AVR GCC Tutorial zu lesen. Dort werden sehr viele Aspekte der C Programmierung anschaulich und gut beschrieben (in C) erklärt. [[AVR-GCC-Tutorial]] Gruß Deathfun
#3270102: > usw. für alle Ports A,B,C usw. Außerdem noch [c] /* muss mit eingeschalteter Optimierung übersetzt werden */ MCUCSR = _BV(JTD); MCUCSR = _BV(JTD); [/c] Andernfalls bilden die Pins PC2 bis PC5 voreingestellt das JTAG-Interface und sind nicht als allgemeine IO-Pins verfügbar
-
Thread
GCC via CooCox erzeugt keinen Zielcode.
{ t = a * i; printf ("%i", t ); } } return ( 0 ); } [/code] Die Optimierungen des GCC sind abgeschaltet. Wo kann das Problem liegen?
Knoten im Makefile? Zeig doch mal, was gcc an Meldungen ausspuckt. Wenn er Code erzeugt, dann liegt dein Problem beim Linker.
-
Thread
crc16.h aus Winavr
Hallo! Ich möchte gern eine CRC16 prüfung umsetzen. Dazu gibts ja eine wunderschöne Funktion im GCC in der CRC16.h. Doch ich kapier diese nicht. Ich habe mir hier im Wiki den Artikel zu CRC durchgelesen und soweit das Prinzip davon verstanden. Doch jetzt frage ich mich, welche beiden Übergabewerte
beantworten, welche Daten die Funktion haben möchte. Ich denke, es ist einfach eine Art Code-Optimierung, die ich nicht kapiere. Dennis
-
Thread
Ein sachlicher Vergleich Pascal <-> C
Streit? :-) Ich kenne beide Sprachen. (Angefangen mit UCSD-P, TP5, ueber MSC, Pearl, Forth, nach gcc, iar-c, Renesas-c) Ich denke das so langsam der Zeitpunkt kommt sich von C zu verabschieden und C++ zu programmieren. Microcontroller sind heute so leistungsfaehig, haben solche Resourcen und die
mit der Assembler-Brille programmiert, man dem Compiler sehr viel arbeit abnehmen kann und eine Optimierung durch den Compiler oft nicht mehr nötig ist bzw. nicht viel bringt. Also alles mehr oder weniger Argumente dafür, eine Hochsprache mit einem guten Compiler zu benutzen, egal obs nun C oder pascal
-
Thread
AVR Float Geschwindigkeit
lang. Welchen AVR und welche Taktfrequenz verwendest du? Hast du die Option -lm angegeben (bei AVR-GCC 4.8 nicht mehr nötig)?
libm (also -lm) sowieso, da diese Funktionen in der GCC_Bibliothek nicht vorhanden sind. Ab AVR-GCC 4.8 werden die FP-Routinen defaultmäßig aus der AVR-Libc genommen, weswegen hier das -lm nur dann benötigt wird, wenn man zusätzlich zu den Grundrechenarten
-
Thread
#ifndef geht nicht
schreibe, wird blub(); nicht compiliert und der Code wird entsprechend kleiner. Wenn ich das gleiche mit gcc mache sehe ich aber keine Größenänderung. Muß ich noch etwas voreinstellen?
Vielleicht mal Optimierung einschalten ( mit -Os ) ?
-
Thread
Funktionsaufruf
nach der optimierung drin bleibt werden alle Register gesichert.
http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html
-
Thread
nach main()-Schleife
hosted mode/ zu. Der wird in der embedded-Welt nicht immer benutzt (wenngleich man ihn beim AVR-GCC gern benutzt, weil er bestimmte bibliotheksbezogene Optimierungen ermöglicht). > Allerdings sieht es im embedded Bereich zuweilen etwas anders aus. Für den /freestanding mode/ trifft das alles
#3272000: > Was sich aber mit noreturn > abschalten lassen sollte... Das war die Idee, leider hat der GCC damit so seine Probleme... noch ;-)
-
Thread
Anzeigetafel über lange Leitungen ansteuern
rausoptimiert. Verzögerung ist einstellbar und >auch von Auge aus sichtbar. Dann ist die Optimierung im Compiler abgeschaltet. Auch nur bedingt sinnvoll.
werde es nachher gleich verifizieren. Eben kontrolliert. Das wird so benutzt... Wenn ich die Optimierung umstelle z.B. von "s" auf "3" oder "2", dann hat der Code am Ende auch eine andere Grösse.
-
Thread
-Wuninitialized geht nicht
Hallo, leider kann ich unter raspbian mit codeblocks und gcc 4.6.3 diese Warnungen nicht aktivieren. Meine Suche im inet brachte das Ergebnis, dass man entweder -O oder die anderen Optimierungen nutzen muss. Bei mir geht es trotzdem nicht. Hat jemand einen
Funktionen > als auch in der main Funktion. [c]void main(void) { int a; a++; }[/c] $ gcc -Wall -Wno-main x.c x.c: In function ‘main’: x.c:4: warning: ‘a’ is used uninitialized in this function Ungefähr so?
-
Thread
AVR-GCC: Frage zu Constant Folding / Constant propagation
#3247954: > Frage: Kann man sich auf dieses Verhalten verlassen? Der Compiler darf im Rahmen von Optimierung das Ergebnis nur dann ändern, wenn auch ohne Optimierung unspezifizierte oder undefinierte Schritte auftreten. Sind jedoch alle Schritte von der Sprache klar definiert und spezifiziert, dann darf sich das Ergebnis durch die Optimierung nicht verändern.
-
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
AVR Controller Spinnt Probleme mit 16Bit Variabeln!?
liegt ? Defekt? dieser ist aber noch recht neu... oder ob ich einen Denkfehler habe?! oder ob der GCC mist baut... Code Optimierungen habe ich schon ausprobiert 0,1,2,3,S.. hilft aber alles nicht wirklich. Der Quellcode ist nicht recht unordendlich, als bitte nicht hauen, ist noch Prototypen