-
Thread
Anfängerfrage zu µC programierung
Mit avr-gcc (GCC) 3.4.6 sieht es mit Optimierung -Os und mit dem if(x) Konstrukt genauso aus, wie von Roland Schmidt beschrieben: 33: if (x) +00000043: 9B82 SBIS 0x10,2 Skip
bit in I/O +00000048: CFF9 RJMP PC-0x0006 Relative jump Leider war die Optimierung der alten gcc Version noch nicht so gut, daher kam ohne Verwendung der Hilfsvariablen x folgendes raus: 34: if(PIND & (1<<PIND2)) +00000043: B380 IN R24,0x10 In
-
Thread
Arduino Bit Shifting Problem
OK: AVR-GCC9.2.0, Optimierung = Os [avrasm] uint8_t MirrorByte ( const uint8_t ToMirrorByte ){ 52: cf 93 push r28 54: df 93 push r29 56: 30 e0 ldi r19, 0x00 ; 0 58:
AVR-GCC9.2.0, Optimierung = O3 [avrasm] uint8_t MirrorByte ( const uint8_t ToMirrorByte ){ uint8_t MirroredByte = 0; for (uint8_t BitNr = 0; BitNr < 8; BitNr++){ cc: 83 2f mov r24, r19
-
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
Yet another CRC32 Code
Gießkanne Inline-Assembler Hacks verteilen, oder das Übel an der Wurzel > packen. Inzwischen verfügt GCC über die entsprechende Optimierung, die übrigens Änderungen an ganzen 4 Codezeilen erforderte. Den Code von http://www.mikrocontroller.net/topic/225796?reply_to=2560350#2557218 übersetzt avr-gcc
Die Optimierung ging upstream als SVN 184509 von 2012-02-23 GCC-Version ist 4.7.0 (experimental) Über den Atmel-Fork kann ich nichts sage; da musst du Atmel fragen.
-
Thread
Anfänger in C Grundlagenfragen
ablen und Labels und dass die Register schnell "verbraucht" waren. Deshalb versuche ich nun auf GCC umzusteigen. Habe winAVR installiert und das erste Beispiel-Programm des GCC-Tutorials compiliert und in den Kontroller geladen. Funktioniert alles prächtig. Anschließend habe ich mir die Dateien
der Debuginformationen den C-Quellcode zwischen das Disassemblerlisting reinzustreuen. Je nach Optimierung klappt das mehr oder minder schlecht, da die Optimierung halt dazu führt, dass der ausführbare Code alles andere als ein lineares Abbild des Quellcodes wird. > In der map-Datei scheinen irgendwelche
-
Thread
Watchwindow im AVR-Studio
Wie ist denn die Optimierung eingestellt? Bei eingeschalteter Optimierung kann es durchaus sein, dass Variablen wegoptimiert werden. -> Mit Optimierung O0 nochmal probieren!
hattest recht. Bei dem simplen Zähler hat der Compiler die Variable wegoptimiert. Wenn die Optimierung abgeschaltet ist dann gehts. Danke. Gruss, Georg.
-
Thread
SOUNDRX - Datenübertragung/Bootloader PC -> µC über PC-Soundkarte
unbedingt merken. Ich werde das mal hier hinzufügen: http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung
Neue Version 1.4.0 ist online. Änderungen: - Optimierung der Schaltung: Pullup-Widerstand am Transistor wegoptimiert, übernimmt nun der ATmega. - Optimierung des Bootloaders: Der Bootloader wurde von der Größe her auf unter 1KB reduziert
-
Thread
AVR-GCC: UART mit FIFO
main-Funktionen kommunizieren, müßten die Indexe als volatile definiert werden, damit sie der AVR-GCC nicht wegoptimiert. Dies würde aber in den Interrupts besonders weh tun, da es mehr Code bedeutet. Daher werden nur die Zugriffe in den main-Funktionen als volatile gecastet (per Macro in meiner mydefs.h
als volatile deklariert. Dann funktioniert es auch mit der Optimierung. Was ich nicht verstehe, warum soll der Code bei fixer volatile Deklaration größer werden als bei gecastetem volatile? Dank lg Rudi
-
Thread
Assembler Code in Cprogramm
Joachim B. schrieb im Beitrag #4115605: > Die Compiler Optimierung -OS ist mir da nie begegnet oder wo ich sie > einstellen kann -Os ist standandmäßig aktiv.
^= 1<<PB0; [/c] Wenn die Lesbarkeit oder Portierbarkeit drastisch leidet, hat bei mir die Optimierung ihre Grenzen.
-
Thread
Parity mit AVR-ASM: Stimmts, gehts schneller?
avr-gcc verwendet in der libgcc Code, der den Weg zu einer 9-Tick Version zeigt: http://gcc.gnu.org/viewcvs/gcc/trunk/libgcc/config/avr/lib1funcs.S?revision=219188&view=markup#l2976 [avrasm] ;; r24 =
machen > können! Frag Moby, der kann das. Oder den Autor fragen, das Patch ist da: https://gcc.gnu.org/r175097
-
Thread
parallele Prozesse konkurrieren um Peripherals
Ein Softcore ohne gcc oder llvm frontend ist einfach unbrauchbar, viel zu exotisch. Aber das willst du ja nicht hören.
State-of-the Art, was gut verifizierbare Stackmaschinen (Safety...) mit anstaendigem Compilersupport (GCC, LLVM) angeht. Das Rad mit den Tools will man nicht neu erfinden..
-
Thread
Tangens sprengt die Codemenge
Bezüglich AVR-GCC ist für float ein 2kB-Chip völlig untauglich, ein 4kB absolutes Minimum und erst ab 8kB wirklich sinnvoll. Ich war es vom 8051 her gewohnt, float auch auf MCs mit 2kB Flash (AT89C2051) einzusetzen
Bisher hat es noch keinen interessiert aber ich sag es dir gerne: Compiler: AVR Studio 4.14 mit AVR GCC plugin Controller: AT90S2313 ja ich weiß den gibt es nicht mehr aber ich habe halt noch welche rum liegen.
-
Thread
kurze Frage zur Optimierung
> Aber was macht der Compiler? Werden diese 4 Zahlen zur Laufzeit > verodert? Nicht wen Optimierungen an sind. > Oder sieht der Compiler, dass es sich um Konstanten handelt > und verodert sie gleich wärend des Kompilierens? Ja. Aber wie Joachim schon schreibt: Schau doch einfach selber
lex schrieb im Beitrag #2583668: > Aber was macht der Compiler? Der Compiler (GCC) faltet diese Konstante, und zwar auch bei ausgeschalteter Optimierung (-O0).
-
Thread
Zeta SBC V2 Z80 mit Floppy Disk
K. schrieb: >> freies Unix für Z80, das mit SDCC kompiliert wird. > > Ich warte lieber bei der GCC mal den Z80 unterstützt. Keine Ahnung wieso > das nicht gemacht wurde. > > Der SDCC ist schnarch langsam, wenn man die Anzahl "Nodes" auf eine > vernünftige Zahl einstellt, […] Der GCC verwendet
anders funktioniert als gewohnt. Das fängt schon damit an, dass es keine einzelne Objektdatei wie bei gcc oder cc65 gibt. Philipp Klaus K. schrieb im Beitrag #6855866: > Der aussichtsreichste Weg, diese Optimierung zu ermöglichen, dürfte > sein, in SDCC die Unterstützung der GNU binutils als Assembler
-
Thread
neu AVRDUDE 5.11
Einen alternativen als den Default-Compiler gibt man einfach beim configure an mit: [code] env CC=gcc-mingw32 ./configure [/code] (mal in der Annahme, dass der Cross-Compiler "gcc-mingw32" heißen würde) > oder war eine komplette Umgewöhnung auf Linux gemeint? das wär ein > bischen heftig für
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
-
Thread
i7-9850H oder i9-8950HK
das *restrict* Keyword in C. Das brachte ca. 10% an Performance, aber nur wenn die Link Time Optimierung nicht verwendet wird. Mit der Link Time Optimierung (/GL bei MS oder -lto bei gcc) braucht man das restrict nicht, der Compiler/Linker erkennt das dann automatisch. Ok, das war ein kurzer
kann, um die Muliplikationen und Additionen *parallel auszuführen. >> >> In der Praxis war der Gnu gcc Compiler der einzige, der es halbwegs >> schaffte, das brachte auch einen Faktor 3 an Geschwindigkeit. > > Der aktuelle Intel Compiler (icc 19.0) macht da bei mir auch AVX Code > draus. Clang 9
-
Thread
Einstieg 32Bit µC - Welche "Familie"
aber leider limitiert. Soweit ich weiß, schon in der Größe, aber auf jeden Fall, was sowas wie Optimierung angeht. Das ist wohl für die meisten Hobbyisten ein großes Manko. Der M3 wird offiziell vom GCC unterstützt und weiterentwickelt, daher keine Abhängigkeit vom Hersteller. Für mich wäre das ein
@Andreas K.: Probier mal: arm-none-eabi-gcc -o hello hello.c -T arm.ld -Wl,--gc-sections
-
Thread
Welche Programmiersprache für numerische Rechnungen Gesperrt
nehmen das, was sie gut verstehen und am Cluster supported wird. Soweit ich informiert bin, ist der GCC am ARM das Maß aller Dinge. Am x86 LLVM oder der Intel Compiler. Dann stellt sich die Frage, wie die interconnects bedient werden. OpenMP ist z.B beim GCC quasi ein Compiler Flag. Es gibt da aber
wenig praxistauglich. Das heißt, bei Haskell gibt es schon einige größere Angriffsflächen für Optimierung. So ein paar grundlegende Infos zu C++ Optimierung gibt es hier und da auch noch, aber ich glaube, früher gab es davon noch mehr, im Moment werden Online viel Bücher zu C++ Optimierung in den
-
Thread
eigene "printf-Funktion" mit variabler Argumenten Liste
Da wirst du wohl den Hersteller /deines/ Compilers fragen müssen (der ja ganz offensichtlich kein GCC ist).
in dem Header stdarg.h abgearbeitet. Kann es sein das ein Complier nur in der von dir genannten Optimierung darüber fällt und sich etwas ungeschickt ausdrückt.
-
Thread
printf-Alternative für AVR
setzen: [c] buf[INT_MAXWIDTH]='\0'; [/c] Aber bei AVR GCC ist das meines Erachtens nach immer überflüssig, auch wenn man nicht mit der Arduino-IDE programmiert und diverse Parameter und Optionen für Compiler und Linker anders setzen kann. Daher habe ich es
y); break; case 3: printf("PLOP %d\n", z); break; } } while(0); } [/c] Mit AVR-GCC 4.7.2 ist sub1 228 Bytes und sub2 112 Bytes groß. Die vermeintliche Optimierung hat die Codegröße also mehr als verdoppelt. Das liegt u.a. daran, dass in sub1 die Variablen x, y und z, die in Registern
-
Thread
Kürzungsmöglichkeiten?
Optimierung nach (Code)Größe
http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Optimize-Options.html#Optimize-Options
-
Thread
Compilersprache C -- Optimierung
Du in C so schreibst wie man in Pascal schreibt, dann hat der Compiler große Freiheiten für die Optimierung.
is the root of all evil. Vorzeitige Optimierung ist die Wurzel allen Übels.
-
Thread
Mittelwert aus ca.100 Werten.
anderes steht, in diesem Forum davon ausgehen, daß es sich um einen AVR handelt, dessen C-Code mit GCC bei -Os kompiliert wird.
das selbe (was ich nicht erwartet hätte...) -O2 ist auch nicht gleich. *Viel schlimmer*: avr-gcc 4.5.1/4.6.4 fügen mit "-Os" ein [c]call __divmodhi4[/c] ein, was 245(!) Takte braucht! Hier noch der Link zum AVR-GCC Compiler Explorer http://avr-gcc.senthilthecoder.com/#g:!((g:!((g:!((h
-
Thread
Welche 32-Bit uC-Familie ist empfehlenswert?
mir vor vielen Jahren mal Microchips Compiler für deren 16-Bitter angesehen. Der war zwar auf Basis GCC, hatte aber eine spezielle Optimierung drin, die nicht Teil des veröffentlichten Quellcodes war. Die war in ein separates Programm ausgelagert. Obendrein hatten sie jenes Programm, das die diversen
(prx) A. K. schrieb im Beitrag #7389478: > Der war zwar auf Basis GCC, hatte aber eine > spezielle Optimierung drin, die nicht Teil des veröffentlichten > Quellcodes war. Die war in ein separates Programm ausgelagert. Selbst wenn das nicht mehr so ist, und selbst
-
Thread
Schneller Mikrocontroller
auch kein Mensch. Moby schrieb im Beitrag #3734645: > Asm-Code ist mehr als "irgendwelche Optimierungen". Er ist die > einfachste, kleinstmöglichste, schnellste, paßgenaueste Lösung jeder > Aufgabe. Dem Stimme ich nicht zu. Ich gebe dir recht, ASM ist mehr als nur eine Optimierung. Ich gebe
spielts keine Rolle. Die Funktion kann der Compiler trotzdem nicht inlinen (auch bei entsprechender Optimierung, habs gerade mal wieder gemessen).
-
Thread
C ohne if() - in einzelnen Fällen möglich?
Bei komplizierteren Bitpermutationen: __builtin_avr_insert_bits https://gcc.gnu.org/onlinedocs/gcc/AVR-Built-in-Functions.html
der Prozessorhersteller aber bis heute immer noch auf seine mistigen proprietären Compiler statt auf GCC oder LLVM setzt und immer noch damit kämpft, überhaupt mal den Standard einzuhalten, gehe ich nicht davon aus dass er übers simpelste hinausgehende Optimierungen hinbekommt. EAF schrieb im Beitrag
-
Thread
C Programmierung ohne Pointer?
Beispiele? Normalerweise sind Pointer eher problematisch in Sachen Optimierung bzgl. Aliasing.
mh schrieb im Beitrag #6651391: > Ok RVO mit nem rvalue macht gcc bei mir auch. Hast du zufällig mal NRVO > also mit nem RVO mit nem lvalue getestet? Ja. Aber ich glaub, ich bin einer Optimierung aufgesessen.
-
Thread
gcc optimiert zu viel
Hallo zusammen, ich habe folgende (abgespeckte) Zeilen, die einen Dreiecktausch durchführen: [code] uint8_t A[10], B[10]; uint8_t* temp; uint8_t* pA =&A[0]; uint8_t* pB =&B[0]; temp =pA; pA =pB; pB =temp; [/code] Wie schaffe ich es, dass der Compiler mir diese Zeilen nicht wegoptimiert? Die triviale Lösung "Optimierung deaktivieren" gilt aber nicht. Danke und Grüße Jörg
-
Thread
Avr-gcc Bitshift 32bit Variable geht nicht
return 1; }[/c] Ich habe mir ein Testprogramm geschrieben: Atmel Studio 6.2 im Simulator. Optimierung ausgeschaltet, aber keine Änderung bei aktivierter Optimierung. [c] for(uint8_t i=0;i<30;i++) { if((i%2) == 0) { ret[i] = RinoBus_Fifo_Write(&f,i|(1<<8)); }else {
[[AVR-GCC-Codeoptimierung]]
-
Thread
C-Compiler selbstgeschrieben.
Maschine) nicht wirklich schwer. Das ist straight-forward. Richtig schwer wird es dann, wenn Optimierungen gemacht werden sollen, die über die einfachsten Formen der Optimierung (Constant-Folding, Common Subexpression Elimination, Multiplikationen durch Shift ersetzen, Divisionen durch & u. dgl.) hinausgehen. Sobald Optimierungen über mehrere Statements bzw. mehrere Funktionen hinweg greifen sollen, wirds aufwändig. Mehrere Statements gehen noch, indem man eine Funktion als ganzes als einen Baum darstellt, aber darüber
-
Thread
static volatile variable in einer Funktion
or reordered except as permitted by the rules for evaluating expressions. [/pre] noch einige Optimierungen offen lässt.
Arduino Fanboy D. schrieb im Beitrag #6232464: > mh schrieb: >> noch einige Optimierungen offen lässt. > Ja, z.B. die "Short circuit evaluation" Die ist keine Optimierung, sondern in C vorgeschriebenes Verhalten. Das heißt, dass bei [C] int i = 0; volatile int j = 3; if (i
-
Thread
Interpretation AVR-GCC *.lss File
sind bei eingeschaltetem Optimierer mehr oder weniger sinnlos im Assemblercode verteilt. Ohne Optimierung passt das, mit nicht. für den Rest: s.o. Oliver
es die meisten Infos enthält. [1] http://rn-wissen.de/index.php/Assembler-Dump_erstellen_mit_avr-gcc
-
Thread
char Array für ultoa()
puts(ptr); puts(0); puts(NULL); } [/c] Kein Abbruch: [pre] stefan@stefanspc:~$ gcc -std=c99 test.c stefan@stefanspc:~$ [/pre] Zweiter Versuch: [pre] stefan@stefanspc:~$ gcc -std=c99 -Wall test.c test.c: In function ‘main’: test.c:7:4: warning: null argument where non-null
Hier: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html mal die Option -fdelete-null-pointer-checks (besser mehrfach) studieren (die Auswirkungen sind - bzw. waren zumindest mir - nicht auf den ersten Blick
-
Thread
Compilieren mit anderer AVR-GCC Version liefert "falsches Ergebnis"
neuen Rechner gekauft - AMD 64 - und habe ein aktuelles Ubuntu laufen. Mit dem Ubuntu kam der avr-gcc 4.5.3 Vorher hatte ich den avr-gcc 4.3.5. Mit dem neuen Rechner, neuen Ubuntu und dem neuen avr-gcc habe ich mein Projekt wieder compiliert. Es gibt keine Fehlermeldungen und das hex, elf usw
du hast zu 99% einen Fehler im code und durch neue Optimierungen wirken sie sich jetzt aus. immer schön auf volatile und atomic operationen geachtet?
-
Thread
Mikrocontroller Auswahl C++ Unterstützung, CAN, I2C, Open Source Compiler
diese einfach aus dem Quelltext entfernt: https://github.com/chipKIT32/chipKIT-cxx/blob/master/src48x/gcc/gcc/config/pic32/mchp.c
Compiler ohne > Einschränkungen gibt. Copy and Paste von oben... Der PIC32-Compiler ist der gcc. http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html Quelltext downloaden, patchen, übersetzen. https://github.com/chipKIT32/chipKIT-cxx/blob/master/src48x/gcc/gcc/config/pic32
-
Thread
Einfache Simulation klappt nicht richtig (AVR Studio)
Optimierung eingeschaltet. Oliver
Zuordnung zwischen Source- und Assemblercode mehr. Ich debugge im Simulator eigentlich immer ohne Optimierung, bis alles passt. Erst dann mit Optimierung. Oliver
-
Thread
Wurzelfunktion für 16bit Fixed Point Werte
erwischt habe. 50 Ticks für ne 16-bit signed-Multiplikation ist immer nocht stolz. Du hast Optimierung aktiviert? > Johann L. schrieb im Beitrag #2256412: >> Ich hab nicht auf's Interface geschaut, ist das avr-gcc ABI? >> Wär sinnvoll... > > Als Neuling kann ich damit auch net so viel anfangen
Beitrag #2257503: > 50 Ticks für ne 16-bit signed-Multiplikation ist immer nocht stolz. Du > hast Optimierung aktiviert? Nein Optimierung ist nicht aktiv. Die Multiplikation ist allerdings auch eine Assembler Routine (32bit = 16bit*16bit). Die Zeit zum Aufrufen (Registerzuweisungsgeplänkel von gcc) ist
-
Thread
Was kostet eine Funktion?
zerlegt in Scheibchen mit 3 bis 5 Zeilen :-) ...und ich versuche gerade mit vorzustellen, wie GCC aussehen würde. Bei 4000000 Zeilen Code wäre man bei 100000 Funkionen oder mehr. Dabei ist schon ein Faktor von 1/4 eingerechnet (Quelle besteht zu 75% aus Kommentaren, also 1000000 LOC netto) und
> zu machen das Verhalten des Programmes stark verändert. > Ne, eben gerade nicht. Sämtliche Optimierungen, die der Compiler > vornehmen darf, dürfen das Verhalten des Programmes _nicht_ verändern. Eine Ausnahme: Die Laufzeit darf sich ändern. Fefes Papier führt mit Recht auf, dass die Effizienz
-
Thread
Byte auf verteilten Ausgängen ordnen
Zum umordnen von bits kann evtl. auch dieses schöne GCC built-in praktisch sein: https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/AVR-Built-in-Functions.html#AVR-Built-in-Functions [c] unsigned char __builtin_avr_insert_bits (unsigned long map,
2*16 Byte reichen und diese Lösung steht auch schon etwas weiter oben, ist aber langsamer als das GCC __builtin_avr_insert_bits bzw. die Bitstore/Load Geschichte...
-
Thread
Optimierung des neuen AVR Studios schlechter
eigentlich 2) Assembler und die übersetzen genau das, was im Source steht. Womit compilierst Du also? GCC (WinAVR)? Gleiche Version wie damals? WinAVR ist nicht Bestandteil des AVR-Studio. Gruß aus Berlin Michael
Hast du überhaupt unter Projekt die Optimierung angeschaltet? Das hat bei mir dann auch erstmal für Erstaunen gesorgt... Mit freundlichen Grüßen, Valentin Buck
-
Thread
AVR Mikrocontroller Lohnenswert?
bräuchtest du ja kein Arduino. Dann kaufst du einen AVR oder STM32 und entwickelst mit Eclipse und GCC. Also erzähl nichts.
https://www.mikrocontroller.net/articles/AVR-Tutorial https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
-
Thread
Blinklicht zu hohe Frequenz
- Optimierung beim Compiler aktiviert? - Wie viel schneller ist denn eine "viel höhere Frequenz"?
Das Ganze gibt es hier auch auf deutsch: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29
-
Thread
Wert an Variable per Referenz übergeben
Ein paar Richtlinien zu avr-gcc: http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung
Funktion in einen Pointer zu laden und über diesen Pointer zuzugreifen. Ein globaler Pointer als "Optimierung" für Zugriff auf die immer gleiche bekannte Variable ist wohl immer Unfug.
-
Thread
Debbuging Modus funktioniert nicht wie er sollte (AMTEL Studio 7)
hi, ... gcc optimization/simulation - das verhalten kenne ich. ist eigentlich ganz logisch, weil wenn der gcc rum optimiert, wie soll dann der c source code noch dazu passen?! da stimmt dann auch kein breakpoint
" zu gehen. majortom schrieb im Beitrag #5202682: > ist eigentlich ganz logisch, weil wenn der gcc rum optimiert, wie soll > dann der c source code noch dazu passen?! Mal ausprobiert - für das Beispiel? Ja, ich kenne die Optimierungs-Probleme auch, deshalb habe ich mal gespielt.
-
Thread
Frage zur Bitmanipulation
O-Registeren als Bitnummern statt als Bitmasken zu definieren. Dann kam der C-Compiler in Form des GCC 3.0. Anfang machte der noch keine CBI/SBI/SBIC/SBIS-Optimierung. Diese Instruktionen waren nur per Inline-Assembler verfügbar, deswegen hat man auch hier die Bitnummern gebraucht, da auch der C-Compiler nicht ohne weiteres in der Lage ist, Bitmasken in Bitnummern umzurechnen. Dann kam der GCC 3.3 mit CBI/SBI/SBIC/SBIS-Optimierung. Nun brauchte man keine Bitnummern mehr. Da sich aber schon alle an den Umgang mit den Bitnummern gewöhnt hatten und keiner Lust hatte, bestehenden Code von
-
Thread
Ringbuffer in C optimieren?
zu verwenden? Wobei ich mich mit der Frage mal auf Buffergrößen beschränken möchte, die eine Optimierung zulassen, wie in dem Assemblerbeispiel genannt.
einem Zeitrahmen fertig zu bekommen oder dergleichen. Es geht mir hier einzig und alleine um eine Optimierung der Optimierung wegen. Also aus Spaß an der Sache ;-) Also: @Karl heinz Buchegger: Buffer+BufferSize (beide sind dem Compiler bekannt, werden also wärend des Compilierens bereits zusammengefasst
-
Thread
Dateien verschieben in C
Arduino Fanboy D. schrieb im Beitrag #6517085: > Und z.B. bei gcc -O0 gar nicht zur Geltung kommt Benutzt du diese Einstellung??? Arduino Fanboy D. schrieb im Beitrag #6517085: > Der > Optimizer entscheidet das anhand seiner Regeln. Das mag ich nicht, wenn
Code-Instanz eine eigene Inkarnation im Programmspeicher. Das ist (fast) immer schlecht für eine Optimierung auf minimale Codegröße, aber im Gegenzug oft sehr gut für eine Optimierung auf Geschwindigkeit. Das Grundprinzip ist simpel. Verdammenswürdig ist nur, dass der Compiler sich erfrecht, die letzte
-
Thread
Conways Game of Live zu langsam auf Z80
Ohne Optimierung gibts halt keine Optimierung...
A. K. schrieb im Beitrag #3939962: > Ohne Optimierung gibts halt keine Optimierung... Die schalte ich nur bei "release" ein, das dauert 20 Minuten !!!! bis der sdcc fertig ist mit "Optimierung".... AMD 3.8GHZ Quadcore. SDCC nimmt aber nur 1 Core
-
Thread
struct list_head Funktionalität auf Cortex-M4 nutzen
play-with-kernel-list_head-three-examples-of-super-cattle.html Absatz: Example 1 Das offsetof() habe ich im arm-gcc compiler.h
awesome-c#data-structures Adam P. schrieb im Beitrag #6897700: > Das offsetof() habe ich im arm-gcc compiler.h offsetof ist ein Standard-Makro und in <stddef.h> definiert, wozu braucht es da noch arm-gcc-compiler.h ? Adam P. schrieb im Beitrag #6897662: > Niklas Gürtler schrieb: > >> Oder
-
Thread
ab welchem AVR lohnt sich C statt asm?
bestimmte AVRs von vorn herein ausschließen? Kommt darauf an, welchen Compiler du benutzt. Der gcc unterstützt nur AVRs mit SRAM, d. h. einen AT90S1200 kannst du nicht verwenden. Von Imagecraft gibt es einen Compiler, der auch für AVRs ohne SRAM geeignet ist. Klar ist, dass du in diesem Fall aber
den vom C-Compiler erzeugten Code angesehen. Ich stimm dem oberen Zitat zu... Wenn man die Optimierung im AVR-GCC einschaltet, dann kommen da doch manchmal Sachen raus, die man selbst nicht bemerkt hätte. Gerade bei größeren Projekten mit vielen Variablen und so zeuch ist man mit einem Assembler-Projekt