-
Thread
Übersetzungsfehler in GCC
müssen einige Summen und Differnzen gebildet werden. Leider funktioniert das beim Compilieren nicht. GCC verwirft in der Optimierung die Differenzenbildung. Ich weiß, nur leider nicht warum. Der Code in C lautet: [c]temp.real = fft[0].real; fft[0].real = (temp.real + fft[2].real)*8; fft[2].real
-
Thread
C++ Kompilierzeiten/VStudio 2017
Umbau fertig bin werde ich das auch machen ich verstehe nur nicht was das für eine relevanz hat, der gcc,mingw,clang vollbringen auch keine kompilierzeitwunder mit so einer Codebasis, egal welche Platform > Gruß > Olaf
#6161495: > Hat hier jemand Erfahrungen mit dem VStudio und > Compiletime-Benchmarking? Optimierungen ausschalten, dann geht es deutlich schneller (sieh Debug Compile). e
-
Thread
switch(Funktion()) möglich?
#5419713: > Keine Ahnung, woher ich das habe. Soso. > Es gilt jedenfalls nicht nur für den > gcc, soviel ist sicher. Überhaupt nichts ist sicher. Das ist _kein_ garantiertes Verhalten. Auch der gcc generiert if-else-if für switch, wenn er sich dazu entscheidet.
> baue und nicht einen WinAvr2010 benutze? Nein, denke genaues Lesen ist angesagt: https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
-
Thread
Neue AVR-Studio mit AVR-GCC Integration
Bitte diskutiert das mal außerhalb des GCC-Forums weiter (am besten mit Atmel Norwegen selbst).
Irgend eine Fehlermeldung? dwarf-2 oder coff? Simulator und gcc-Parameter auf Controller eingestellt?
-
Thread
Compiler - Optimierungsflags
Alternativ zeige den C-Code und lasse Forenteilnehmer einen Blick drauf werfen. Beim neueren GCC 4.1.1 ist ein typ. Beispiel für "unerwartete" Effekte, dass dort aus GCC Sicht unnütze Schleifen wegopimiert werden { int i; for(i=0;i<1000;i++); } als Primitiv-Warteschleife streicht der 4.1.1 GCC bei eingeschalteter Optimierung zusammen zu { }
-
Thread
Probleme bei der Programmcodeerstellung zwischen -O0 und -Os Einstellung
>Ich habe nun versucht die Optimierung von -O0 auf -Os umzustellen. >Dabei hagelte es einige Fehler die ich mit einem Eintrag in >Projekt->Config.Options->Custom Options->Custom Compilation Options >"-lc" und "-lm" beheben konnte.
jetzt weis werde ich es in Zukunft heherzigen, jetzt ist es zu spät. LEIDER :-( Mit der -O1 Optimierung sollte mir jedoch der Speicher reichen. Trotzdem ist es komisch. Thomas
-
Thread
LCD Taktproblem
eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus // http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung // #ifndef LCD_ROUTINES_H #define LCD_ROUTINES_H //////////////////////////////////////////////////////////////////////////////// // Hier die verwendete Taktfrequenz
Ergänzung: Compiler-Optimierung an?
-
Thread
Nach Initialisierung falsche Werte im Struct
Welches Flag für Compiler Optimierung hast Du gesetzt? versuche es mal mit -Og
Niklas G. schrieb im Beitrag #7709717: > Es ist extrem unwahrscheinlich, dass der GCC bei so etwas simplen > versagt. Es ist extremst unwahrscheinlich, das eine intakte toolchain ein „undefined reference to memcpy“ auswirft. Oliver
-
Thread
Wechsel von Hardware zu Embedded SW vorbereiten
Die GCC von TI ist nicht nur eine IDE sondern eine Comunity und nein nix Parameter, den Richtigen Launchpad anhängen, die GCC findet ihn meist sogar selber und schlägt dir dann Projekte vor. Aber es gibt
Patrick L. schrieb im Beitrag #6958706: > Die GCC von TI ist nicht nur eine IDE sondern eine Comunity und nein nix > Parameter, den Richtigen Launchpad anhängen, die GCC findet ihn meist > sogar selber und schlägt dir dann Projekte vor. Klingt
-
Thread
Inline Funktionen und Codeoptimierung
uint8_t u08; #define screenx 16 #define screeny 16 u08 volatile gdata[screeny][screenx]; avr-gcc Version: 3.4.1 Compiler Optimierungen: OPT = -O2 -ffast-math -fweb -frename-registers -Winline -mtiny-stack
make: *** [all-gcc] Fehler 2
-
Thread
Funktion wird wegoptimiert im AVR Studio mit gcc
Hallo libe Leute, Bei der Programmierung eine Warteschleife ist mir in meinem richtigen Projekt aufgefallen dass diese auf irgendeine Art und Weise gar nicht erkannt wird bzw aufgerufen wird. Nach einigen Nachforschungen bin ich dann auf verschiede Threads gestoßen die besagen dass bei eingeschalteter Optimierung diese Funktion wegen irgeneines Grundes umgangen wird. Mit ausgeschalteter Optimierung funktioniert es SUPER. Kann mir jemand sagen wo der Fehler liegt? Der Quellcode liegt im Anhang und ist aus nem Buch.Hier ein Auszug aus dem lss-File. ###########################################
-
Thread
Go-Compiler für MSP430
Mal ganz blöd gefragt: Für den GCC gibt es ein Go-Frontend und ein MSP430 Backend. Lassen die sich nicht miteinander verheiraten, so dass nur noch Bibliotheken fehlen?
Εrnst B. schrieb im Beitrag #6269573: > Für den GCC gibt es ein Go-Frontend und ein MSP430 Backend. > > Lassen die sich nicht miteinander verheiraten, so dass nur noch > Bibliotheken fehlen? Meines Wissens nach ist der GCC nicht so modular aufgebaut
-
Thread
16-Bit Ergebnis aus 8-Bit-Variablen berechnen?
Woran kann ich erkennen, wie groß "int" im GCC-Compiler ist? Ich Kompiliere immer mit der Optimierung: "-0s" könnte das zu Problemen führen? habe es so probiert: 16-bit-variable = (uint16_t)(rechnung); Die Rechenergebnisse sind noch
Erik H. schrieb im Beitrag #2027614: > Woran kann ich erkennen, wie groß "int" im GCC-Compiler ist? sizeof(int) sagt es dir. Aber im WinAVR ist siezof(int) gleich 2. Also 16 Bit > Ich Kompiliere immer mit der Optimierung: "-0s" könnte das zu Problemen > führen? Kann. Aber
-
Thread
Frage bezüglich LIBS
Abend miteinander! Ich bin gerade dabei mit AVR Studio ein GCC Projekt zu schreiben. Es handelt sich dabei um ein kleines Program was im Grunde nur Werte von der Seriellen Schnittstelle UART bekommen soll und diese 1:1 als PWM Frequenz auf dem OC1A vom TINY2313
hast Gleitkomma-printf() aktiviert, obwohl du es gar nicht brauchst... Außerde solltest du die Optimierung des Compilers einschalten. Aus mir nicht wirklich verständlichen Gründen ist die Voreinstellung für ein GCC-Projekt in AVR Studio hier ein Level 0, also keine Optimierung.
-
Thread
Probleme mit float Berechnung
ja im Debugger. Hab keine Optimierung an!
wissens dürfte er mit volatile deklarierte variablen nicht wegoptimieren, also liegts nicht an der Optimierung. :(
-
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
dereferencing type-punned pointer - was ist das?
2) Code umschreiben (Unions wie beschrieben) 3) GCC optimieren lassen und evtl. inkorrekten aber dafür dann evtl. schnelleren Code bekommen
werden. -fno-strict-aliasing unterdrückt keine Warnungen, sondern schaltet die entsprechende Optimierungen ab, d.h. solche, die unter der Annahme von strict-aliasing korrekt sind. Ohne die Option bleiben die Optimierungen eben aus, und damit auch Warungen, die damit im Zusammenhang stehen. Ich schätze
-
Thread
Fernbedien RC5 Empfänger
Interrupts globale Variablen ändern. Der Keil C51 optimiert diese daher grundsätzlich nicht weg. Die Optimierungen des GCC sind jedoch vorrangig auf größere CPUs ausgelegt, d.h. Mikrocontroller typische Programmabläufe fallen da etwas hinten runter. Rein formal entspricht das aber dem C-Standard, daher wird
würde daher am liebsten sämtliche Variablen als volatile definieren, allerdings wird dann die Optimierung ausgeschaltet. Es hilft also nichts, man muß beim GCC immer ein wachsames Auge haben und bei derartigen Effekten darauf prüfen. Auch wenn ulkige Effekte nach einem Compilerupdate auftreten, liegt
-
Thread
DCF Funktion frisst unglaublich viel Speicher
Irgendwas mach ich dann falsch, ich brauch da knapp 300 Bytes... Wenn ich dein Projekt mit avr-gcc -Os übersetzte, ergeben sich für das dcf77-Modul rund 320 Bytes, sowohl für avr-gcc 4.3 als auch für die ältere 3.4, für die das Projekt wohl geschrieben wurde. Ein Byte rechne ich mit 8 Bit. Löwe
Eine Sache die bei dieser Diskusion nicht beleuchtet wurde ist die Verwendung des GCC Compilers. Er ist gut, aber er ist auch eine Eierlegendewollmilchsau. Ich meine damit, dass die Optimierung noch besser geht. Wer vielleicht mal etwas Zeit hat sollte sich den IAR Compiler angucken
-
Thread
Transistortester AVR
Software/trunk). Die 1.04k Version ist im Software/tags Ordner als Zip-File abgelegt. Das Meckern des gcc Compilers muß an einer anderen gcc Version liegen. Wenn diese Compilerversion einen const haben will, kann man bei Zeile ~360 in Transistortester.h die Anweisungen mit "extern const" statt "extern
aber in der Arbeitskopie hinzufügen. Wenn neuere gcc Versionen weniger gut optimieren, ist es vielleicht keine gute Idee, diese zu benutzen. Grüße, Karl-Heinz
-
Thread
Glühwürmchen in Rotkohlglas gefangen
und _c in eine Funktion ausgelagert -- Zeug für Bootloader-Support entfernt -- Kleinigkeiten, um GCC bei der CSE-Optimierung zu helfen. -- Sortierung von _b gegen _c in eigener Funktion Dann, soweit ich sehen kann, können alle Daten im RAM ebensogut uninitialisiert sein nach RESET? Hab mal die
noinit.ld: [pre] SECTIONS { .nirvana : { *(.init4) } } [/pre] Beim Link-Aufruf (avr-gcc als Linker) gibt man zusätzlich als Optionen an [pre] avr-gcc ... noinit.ld -Wl,--section-start,.nirvana=0xa00000 [/pre] > Nungut, ich selber bin mit der Simulation auch unzufrieden. Die Waves
-
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
GCC: variable may be used unitialized
unbegrenzt, und es hängt auch vom Optimierungsgrad ab. Vielleicht nochmals die Doku studieren: http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmaybe-uninitialized Ansonsten kann ich mich nur Felix anschließen.
Abbruchbedingung weniger Unterschied besteht, als es von Nutzersicht aussieht? Oder daß bei der Optimierung das eine in das andere überführt werden kann (in einer Richtung ist das klar... aber in Gegenrichtung? ) ? Oder stehe ich auf dem Schlauch?
-
Thread
Byte Array shiften
+) { _rol_array(p); //p+=11; } [/c] das funktioniert mit auskommentierter Zeile wenn gcc Optimierung -Os ein, wenn Optimierung aus muss der Pointer inkrementiert werden. Ich habe auch probiert die funktion _rol_array() mit Returnwert zu versorgen, aber das klappt auch nicht so recht:
der Funktion durch 'st %a+, r0' manipuliert, daher wohl der Unterschiedliche Effekt bei mit/ohne Optimierung. Aber auch wenn ich den return Wert verwende wie er hier rauskommt ist der nicht richtig. Kann man auf einen Blick sagen das ist def. falsch oder ist das eher ein Randbereich des gcc?
-
Thread
Inline-Assembler: Label-Sprungadresse in Z-Register laden - wie?
Oliver schrieb im Beitrag #2246191: > Inline-Assembler im gcc ist nunmal Krampf, und ist > für mehr als drei zeilen ungeeignet. Anders: inline-Assembler im GCC ist genial und unwahrscheinlich gut mit dem Compiler integrierbar, aber das hat seinen Preis.
Und: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Assembler-Dateien http://www.rn-wissen.de/index.php/Avr-gcc/Interna#Registerverwendung Vorteil der extra Datei: Man kann sie auch simulieren!
-
Thread
PID-Regler: Wie schnell ist schnell genug?
Routine nochmal auf zwei anderen Boards laufen lassen. [code] STM32L031 @ 32 MHz (Cortex-M0+) gcc 6.3.1 -Os: 38,6 µs gcc 6.3.1 -O3: 39,5 µs gcc 7.2.1 -Os: 39,3 µs gcc 7.2.1 -O3: 39,8 µs Keil: 24,3 µs LPC1549 @ 72 MHz (Cortex-M3) gcc 7.2.1 -0s: 19,3 µs gcc 7.2.1 -O3: 9,5 µs [/code]
Die Keil Version ist mit dem mbed Online erstllt, der ist beim M0 immer noch deutlich besser als der gcc. Ist jetzt nicht ganz das PID Thema aber man sieht das die Compiler Optimierung hier auch noch eine Menge ausmachen kann. Die Testroutine ist die PID Funktion aus dem ersten Post die 1000x aufgerufen
-
Thread
Billiger einstiegs-DSP?
Leistung ja schon. :-) Auch da ist der Compiler von Renesas umsonst (beschraenkt auf 256kb) und gcc ist auch moeglich. > Aber da der gcc prima mit dem Blackfin > funktioniert... Wie gut ist der gcc denn dann eigentlich aus der Sicht des DSP-Entwicklers? Ich koennte mir vorstellen das er als
gut auf verschiedenen Plattformen. Gebe zu, ich bin inzwischen schon solch ein GCC-Nazi geworden, dass ich keine von GCC nicht unterstuetzte Plattform mehr anfasse... Gruesse, - Strubi
-
Thread
Liste aller Buildin-Befehle für den Cortex M4 von STM32
diese built-ins austauschen. Benutze doch bitte die üblichen Begriffe. Builtins sind sowas: https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html Was du suchst, sind die Assembler-Instruktionen. Willst du die per Inline-Assembler nutzen? Sicher, dass das mit gutem C-Code nicht genauso gut geht?
weitestgehend unbekannt. Dann befasse dich damit erstmal genauer. Ohne diese kannst du solche Optimierungen vergessen.
-
Thread
Zu blöd für if-Anweisungen?
Funktionsblöcke werden nicht ausgeführt, egal welchen Wert ich für usiValue eingebe. Ich verwende AVR-GCC und AVR-Studio 3.56 zum simulieren. Es kann davon ausgegangen werden, dass alle verwendeten Variablen deklariert und richtig initialisiert worden sind. if (usiValue > 2) { /
noch realitätsnah ist, bleibt auch anzuzweifeln, da sich durch (nachträgliches) Einschalten der Optimierung ja z. B. das Timing des Programmflusses ändern würde. Du könntest die Variable `volatile' deklarieren und damit den Compiler anweisen, auf diese Variable keine Optimierung durchzuführen. Aber
-
Thread
Benötige hilfe bei ATmega8 Timer
mit dieser Fuseeinstellung, oder? Mit was arbeitest du - AVR Studio+WinAVR, WinAVR allein, AVR-GCC? Hast du daran gedacht F_CPU in den Compileroptionen zu setzen? Stimmt der Wert, besonders die Anzahl der Nullen :) Was macht dieses Programm (mit -Os Optimierung übersetzen): [C] #include <avr
Stefan B. schrieb: > Mit was arbeitest du - AVR Studio+WinAVR, WinAVR allein, AVR-GCC? Hast > du daran gedacht F_CPU in den Compileroptionen zu setzen? Stimmt der > Wert, besonders die Anzahl der Nullen :) Ich arbeite mit AVR Studio+WinAVR. ÖÖÖÖHM, F_CPU setzen? Nein, habe ich
-
Thread
Attiny45, timer tut nichts?
rffb.o.d rffb.c -o rffb.o Linking: rffb.elf avr-gcc -mmcu=attiny45 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=rffb.o -std=gnu99 -MMD -MP -MF .dep/rffb.elf.d
Um das Thema nochmal aufzuwärmen. Es handelt sich um einen Bug im alten GCC. Mit GCC 4.8 funktioniert nun der folgender Code. [CODE] #include <avr/io.h> #include <avr/interrupt.h> int main(void) { DDRB |= (1 << PB0) | (1 << PB1); PORTB |= (1 << PB0)| (1 <<
-
Thread
Anfängerfrage AVR GCC
Johann L. schrieb im Beitrag #6488746: > GCC zum Beispiel meckert main ohne finales return ebenfalls nicht an es gibt ja nicht nur GCC, mein Text war eben beispielhaft für alles was mir schon begegnet ist! Es gibt auch noch Compileroptionen
function main shall not be used (3.2) within a program. [...] [/pre] Und was C angeht, hat avr-gcc eine Optimierung, die Aufrufe von main im Endeffekt UB machen, es sei denn man verwendet -mno-main-is-OS_task, siehe http://gcc.gnu.org/gcc-8/changes.html#avr Logischerweise darf main dann auch
-
Thread
AVR Studio Debuggen von C
Hallo, also ich habe die Version 4.14 vom AVR Studio runtergeladen und versuche gerade GCC zu Debuggen. Das meiste funktioniert für den ATTINY 85 ziemlich gut, es gibt aber ein paar Sachen, die überhaupt nicht funktionieren: - nicht für jede Variable, die berechnet wurde wird ein Wert
vielleicht daran: >also ich habe die Version 4.14 vom AVR Studio runtergeladen und versuche >gerade GCC zu Debuggen. Weshalb nutzt du nicht 4.19? MfG Spess
-
Thread
Programmgeschwindigkeit bim XMEGA viel kleiner als Taktfrequenz?
>ich war erstaunt, dass der Unterschied zwiscehn C und Assembler trotz >Optimierung und so einfachem Programm solch riesige Unterschiede bringen >soll... In Assembler bist du, so wie du das Programm geschrieben hast, nicht schneller.
Befehle, sondern Register. Die findest du im Datenblatt. Aber viel wichtiger: Deren Namen unter AVR-GCC findest du im entsprechenden Header File im WinAVR inc Verzeichnis. ioxYZ.h
-
Thread
Makefile Grundlagen - Frage
[c]prog: main.o foo.o bar.o gcc -o prog main.o foo.o bar.o main.o: main.c gcc -c main.c foo.o: foo.c gcc -c foo.c bar.o: bar.c gcc -c bar.c[/c] Bei diesem Beispiel verstehe ich nicht ganz wozu ich die erste
einfach ein Shell-Skript verwenden. Erkan schrieb im Beitrag #3089990: > Kann man außerdem das: > gcc -o programm main.c foo.c bar.c mit > gcc -o programm main.o foo.o bar.o gleichsetzen ?? Allgemein ja, denn gcc enthält selber ein paar Regeln, um aus Dateinamen die passenden Aktionen zu ermitteln
-
Thread
Probleme mit inline bei neuem gcc
Hab grad den relativ neuen avr-gcc 7.1.0 auf einem Arch-System installiert. Wollte ein gut abgehangenes ATmega-Projekt kompilieren. Das Projekt hab ich damals zu gcc 4.X-Zeiten gestartet, aber zwischenzeitlich auch mit gcc 5.X und
Und die Funktion in den Header zu packen ist Grundvorrausetzug um den Compiler möglichst gute Optimierung zu ermöglichen. (von LTO mal abgesehen). Deswegen hab ich das so umgesetzt. Ich hab damals glaub ich auch mit anderen Qualifiern probiert. Ergebnis waren Linkerfehler. Nämlich dann wenn gcc
-
Thread
avr-gcc: code optimieren?
Hi, ich wollt mal fragen ob schon mal jemand hier avr-gcc code optimiert hat. Dis Problem ist weniger, die Optimierungen zu machen, sondern ich hab überhaupt keinen Plan, wie die zurück in avr-gcc kommen. Das System von Mailinglisten ist mir auch net klar
# # Irgendwie klappt das net. Ich bekomme # [pre] /local/gcc-4.3.2-obj-avr/./gcc/as -mmcu=avr3 -o _mulsi3.o libgcc.s ../../../../gcc.gnu.org/gcc_4_3_2_release/libgcc/../gcc/config/avr/libgcc.S: Assembler messages: ../../../../gcc.gnu.org/gcc_4_3_2_release/libgcc
-
Thread
Kann man diesen C-Code vereinfachen?
t inout[9] = { 0, 1, 2, 0, 3, 0, 0, 0, 4 }; Output = inout[Input]; Ansonsten würde ich die Optimierung dem Compiler überlassen.
https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung "Die goldene Regel lautet: 90% der Rechenleistung werden in 10% des Codes verbraucht. Diese 10% muss man finden und zum richtigen Zeitpunkt optimieren
-
Thread
Wird if Schleife ignoriert, wenn sie nie eintritt?
Es würde dich noch mehr wundern, wenn du wüsstest, wieviel Aufwand die Compilerbauer in die Optimierungen gesteckt haben und immer noch stecken, und was die alles können. Ungennutzen Code entfernen ist allerdings eine der Basis-Optimierungen überhaupt, das gibt es schon seit ewigen Zeiten. Oliver
if-Abfrage komplett heraus? Mal was zum Thema: Wenn der Compiler mit einer entsprechenden Optimierungs-Option (-O bzw. -O2) gestartet wurde, kann er solche if-Abfragen schon wegoptimieren- sowohl wenn debug == true oder debug == false gesetzt wird. Allerdings musst Du ihm schon etwas unter die
-
Thread
[Newbie] Code größe bei Unterschiedlichen Programmen
WinAVR? Es liegt zu 100% an der Toolchain (WinAVR, avr-toolchain) und dessen einstellungen ( Optimierung ). Der Editor ist dabei ziemlich egal.
Im Endeffekt kann es sich nur unterschiedliche Versionen des gcc Compilers oder um unterschiedliche Parameter handeln mit denen dieser Compiler aufgerufen wird. Der Vergleich mit verschiedenen IDEs ist also völlig sinnfrei. Ich entwickle z.B. für AVR ausschließlich
-
Thread
Info zum verwendeten Compiler im HEX-File?
Du kannst beim GCC vordefinierte Macros als Konstante im Flash ablegen. [c] #define GCC_VERSION (__GNUC__ * 10000 \ + __GNUC_MINOR__ * 100 \ + __GNUC_PATCHLEVEL__) [/c]
www.mikrocontroller.net/topic/429895#5054356 Das Problem tritt nur auf, wenn die OCaml-Runtime mit dem gcc und ganz bestimmten optimierungs Optionen gebaut wurde. https://caml.inria.fr/mantis/view.php?id=7452#c17108
-
Thread
Welche Low Cost 32 Bit MCU Familie? Gesperrt
auf Messen auch kostenlos verteilt. Mit Speck fängt man Mäuse... Und C++ incl. STL konnte man dank gcc auch früh auf den Cortex-M nutzen.
Umso wichtiger ist halt die > Dokumentationen. Das wird mit dem Programmier-Spaß bei der Optimierung mehr als ausgeglichen :) Aber genau so ist es: Dokumentation zu Sinn und Zweck, dem Verfahren, den verwendeten Parametern ist das Ein&Alles. Wenn nun auch noch der Code selber programmsprachlich
-
Thread
C18 oder HiTech
könnte, in der kostenlosen Version nicht zur Verfügung steht, würde ich den C18 wählen. Höhere Optimierungen wie sie der GCC durchführt beherrschen beide Compiler nicht. Vor allem werden Zwischenergebnisse nicht wiederverwendet: [c] x = i/2; y = i/2; z = i/2; [/c] Oder [c] col1 >>= 8 - bits;
Michael G. schrieb im Beitrag #2163791: > Höhere Optimierungen wie sie der GCC durchführt beherrschen beide > Compiler nicht. Vor allem werden Zwischenergebnisse nicht > wiederverwendet:x = i/2; > y = i/2; > z = i/2; > Odercol1 >>= 8 - bits; > col2 >
-
Thread
Effizienz von Bascom !?
ELAB Pascal (der leider sehr viel Geld kosten). Am Ende habe Ich mich eindeutig dafür entschieden GCC zu lernen. Hier gibt es genügend Freaks die einem helfen. Man braucht meist gar keine Fragen stellen - Ist alles schon mal gefragt worden (siehe Forum AVR-GCC). GCC kriegst du zudem kostenlos (siehe
MP3-Player mit Festplatte, LCD usw. in einem AT90S8515, programmiert mit AVR-GCC. Immer noch Zweifel?
-
Thread
Registerattribut
neue HW in den GCC einfügt, hat sich dort auszukennen. Bernhard
ich lieber meinen eigenen Compiler. Das geht schneller, auch wenn ich am Anfang nicht soviele Optimierungen drauf haben werde wie der gcc.
-
Thread
Erste Schritte mit ARM SAMD20
von diesen Registern. Ob das bei den Cortex-M3 und -M4 besser aussieht weiss ich nicht. 7. Der gcc lässt Optimierungs-Wünsche offen. -Os läuft am schnellsten, schneller als -O2 und -O3. Gucke ich in den Assembler, sehe ich meist auf Anhieb Möglichkeiten zu kleinen Verbesserungen. Wen das interessiert
Der braucht nach wie vor rund 300 CPU-Takte. Es gibt immer mehrere Wege ans Ziel. :-) > 7. Der gcc lässt Optimierungs-Wünsche offen. Dabei würde es mich wundern, wenn nicht zig verschiedene GCC Versionen im Einsatz wären. Mein Atmel Studio hat gerade Atmel ARM GNU Toolchain 4.8.4.1443 drunter
-
Thread
Black Magic Probe auf ST Link v2 clone "baite"
ja, das ist ein normales Verhalten wenn man optimierten Code debuggt. Da ist es besser die Optimierung auszuschalten, beim gcc kompilieren mit -O0. Da kann auch Segger nicht zaubern und das hat nichts mit Gefrickel zu tun.
ja, das ist ein normales Verhalten wenn man optimierten Code debuggt. Da > ist es besser die Optimierung auszuschalten, beim gcc kompilieren mit > -O0. Danke, klar, macht absolut Sinn. Mal sehen wie ich dem Arduino zusätzliche Parameter mitgeben kann. Ich komme beruflich zwar aus der SW-Ecke
-
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
Zeiger auf eine Methode einer Klasse -> Funktionszeiger
verwendet, es bekam damals eine mir nicht ganz verständliche und etwas martialische Warnung des Compilers (gcc 2.95) - funktioniert hat es aber. Mit gcc 3.3 sieht diese weniger schlimm aus, sollte dem mal nachgehen... Das Konstrukt muss dann so aufgerufen werden, dass es an ein Objekt 'angebunden' ist. Statische
, ob du dann die 4 ns nicht an anderer Stelle (auf Grund schlechterer Optimierung) verlierst ;-)
-
Thread
CubeMX und HAL - I2C hängt sich auf
dem Rechner!! Und so viel Overhead frisst das auch nicht , es sei denn man nutzt nur O0 Optimierung.
genauso ausgeführt wird. Ist bei uns in der Firma übrigens auch Codierungs Richtlinie geworden für den GCC.