-
Thread
STM32: Drama mit "Hard Fault Error"
und kann ihn einkreisen, so auch hier. Bloss wieso ... ewig Theater mit den Optimierungstsufen des GCC. Aber die schaffen locker mal 20% weniger Code. Wieso zur Hölle crashed dieser Code, wenn ich die Optimierung, die auf -OS steht zulasse? Ich traue mich bald keine Vars mehr ohne volatile zu definieren
Ja, vermutlich dass die Leute ungültigen C Code schreiben, der bei Verwendung von Compiler Optimierungen kaputt geht, was dann natürlich immer auf den Compiler geschoben wird. Ich bin schon auf diverse Fehler im GCC gestoßen, aber noch auf keinen einzigen, wo der Optimizer falschen Assembler Code
-
Thread
Zählvariable in for-schleife springt direkt auf Abbruchbedingung
gesetzt. Dann springt er in die Schleife und i ist direkt 8. (Mein Kubus besteht aus 8 Punkten). Optimierungen sind aus, ich arbeite mit CodeBlocks(GCC) MfG Chaos
gcc erkennt das Semikolon-vor-Schleife-Problem (mit hochgedrehten Warnungen) leider nur bei if und else, nicht bei for und while.
-
Thread
gcc vs. mbed online (ARM compiler v5)
das enthält ein printf() und das FatFS von ChaN. Der mbed Online Compiler erzeugt 27,9 kB Code, der gcc 4.9.3 macht aus dem gleichen Projekt 38 kB, also über 10 kB mehr. Optimierung steht auf -Os, -O3 erzeugt gleich viel und kleine Optimierungen noch mehr. Kann das sein das der online Compiler (soll ein
Eine Variante zur Codeverkleinerung beim GCC ist noch die linker time Optimierung einzuschalten...
-
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 - Ersatz von switch case.
in Assembler besser löse, weiß ich und das ist auch nicht die Frage) Compiler ist der IAR, Optimierung auf Platzbedarf, Prozessor der STM8S105. Auszug aus meiner bisherigen Lösung: [c] #define clk_reg1_oben PC_ODR_ODR3 #define clk_reg2_oben PC_ODR_ODR2 #define clk_reg3_oben PC_ODR_ODR1 #define
Besonders als Anfänger und C-Einsteiger sollte man seine Zeit und Energie nicht mit Pseudo-Optimierungen verschwenden. Als fortgeschittener und Profi auch nicht. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
-
Thread
[avr-gcc] "undefined Reference" bei inline Funktionen
. Gründe, eine Funktion nicht zu inlinen, können u.a. sein: • Inlining ist zu teuer • Optimierung oder Inlining ist deaktiviert • Es wird die Adresse der Funktion genommen • Die Funktion nimmt die Adresse lokaler Labels "inline" gibt es erst seit C99. GCC akzeptiert "inline" auch bei
int main() { foo(); return 0; } [/C] Und das steht alles in _einer_ Datei. Wenn Optimierung ausgeschaltet ist, bringt gcc im C99-Modus beim Aufruf von foo() die Fehlermeldung, dass diese Funktion nicht definiert sei. Wie schon gesagt wird _keine_ non-Inline-Version generiert. Compiliert
-
Thread
ATMEGA 8515 -- SREG nicht definiert -- AVR Studio 7
Hier fand ich dann folgendes Programmierbeispiel: https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Interrupts_mit_avr-gcc [c]#include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> //... void NichtUnterbrechenBitte(void) { uint8_t tmp_sreg; // temporaerer
kleines Testprogramm[c]#include <avr/io.h> uint8_t sreg (void) { return SREG; }[/c] Mit avr-gcc-5.2.1 (.s File mit -save-temps):[avrasm]... __SREG__ = 0x3f ... sreg: in r24,__SREG__ ret[/avrasm]
-
Thread
Organisation der Header und Includes
nur Code, der ganz ohne HW Zugriffe auskommt, da bleibt sie an. Ohne Optmierung: 75 kb Mit Optimierung: 59 kb Das ist schon ne Hausnummer. Der Code soll ja gut sein, nahe am Assembler.
Hans schrieb im Beitrag #4430262: > Aktuelle GCC-Versionen haben das Feature "Link Time Optimization" (LTO), > damit werden auch Aufrufe über verschiedene Übersetzungseinheiten hinweg > optimiert. Das Feature muss man aber explizit aktivieren, sowohl
-
Thread
AVR-GCC selbst bauen - Unter Linux für Windows?
gcc\avr\5.3.1\avr25 6.966.108 avr-gcc-5.3.1-win64\lib\gcc\avr\5.3.1\avr25\[Dateien] 3.483.708 avr-gcc-5.3.1-win64\lib\gcc\avr\5.3.1\avr25\tiny-stack 3.482.400 avr-gcc-5.3.1-win64\lib\gcc\avr\5.3.1\avrtiny 3.675.846 avr-gcc-5.3.1-win64\lib\gcc\avr\5.3.1\avrxmega5 3.605.828 avr-gcc-5.3.1-win64\lib\gcc
-
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
char arry zu unit_16t
char[1]=0xEE; Wird zu uint_16t 0xFFEE Wie stelle ich soetwas am besten für einen AVR in GCC an?
Magen Datentyp in C) Der Datentyp links ist allerdings nicht ganz unerheblich, wenn es zu Optimierungen kommt. Denn der Compiler kann den rechten Ausdruck auch wieder von int auf eine 8 Bit Berechnung zurückstutzen, wenn nachgewiesen werden kann, dass das für das Ergebnis keinen Unterschied macht
-
Thread
AVR GCC strom sparen lange sleep-sequenz
Hallo, ich möchte für ein Projekt möglichst lange (1-3 stunden) den Attiny2313 auf einer niedrigen Taktrate im IDLE modus haben. um mich auf diese lange zeit vorzuarbeiten habe ich es mit einem testlauf von einer sekunde probiert. bei einer clock-fuse einstellung von 8mhz und CKDIV unprogrammiert. irgendwie bekomme ich zwischen den beiden flanken von PB0 [fallende flanke] -> [steigenden flanke] nur 70ms anscheinend bleibt mein µC auf 8Mhz / 8 = 1Mhz , eigentlich müsste er aber deutlich langsamer laufen wegen: CLKPR = 7; // change F_CPU clock presc 128. ich bin ratlos warum er diese
-
Thread
WinAVR compiliert nicht mehr richtig
attempt to use poisoned "SIG_INTERRUPT0" [/code] Dies wird doch schon seit Ewigkeiten vom avr-gcc bemängelt.
compiliert. Das lief auch immer, bis auf den einen Moment, wo es nicht > mehr ging. Stell ich die Optimierung nun auf -O0 dann klappt es wieder. Nimm mal -Os. Kann auch sein, dass bei -O2 zuviel RAM genutzt wird und nichts mehr für den Stack übrigbleibt. Sinnvoll wären auch mal die avr-gcc-Kommandos
-
Thread
GCC Compiler Flags während Build
Optionen für bestimmte Mudule setzen wie[pre]modul.o: CFLAGS += -fno-lto[/pre]Ohne modulübergreifende Optimierung ist es schon mal einfacher, ein Modul einzugrenzen.
Eben gefunden auf https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html "... You can invoke GCC with -Q --help=optimizers to find out the exact set of optimizations that are enabled at each level. ..."
-
Thread
Das Drama mit den Strings und Arrays in C.
funktioniert NUR, wenn ich ein Element mit Zahl direkt anspreche Tag[2], vermutlich optimiert der GCC das dann. Sobald ich aber als Index eine Variable nehme, nämlich die aus der RTC: Time.wtag, also Tag[Time.day] dann steht da nur noch Müll auf dem Display oder der Rechner stürzt ab. Bei abgeschalteter Optimierung im Debug Mode aber läuft das Ganze wieder. Was ist denn da nun kaputt ? :-( [code] /////////////////////////////////////////////////// // Druckt die Zeit und Datum ins Display ////////////
-
Thread
Define Makros in C
Test(x) (#x) int main(){ printf("%s\n", Test(A)); return 0; } [/c] Getestet mit dem gcc. Das erste gibt 1 aus, das zweite gibt A aus. Ob die Parameter eines Makros nochmal expandiert werden sollen wird mit dem '#' vor dem Parameternamen (bei dessen Verwendung) gesteuert.
#4389285: > So muß ich für jeden Portpin bis zu 3 defines anlegen. Oder Dich heftig auf die Optimierungen des Compilers verlassen. Oder Dich implizit auf bestimmte Adress-Offsets verlassen. Einen Tod sterben wir eben immer :-)
-
Thread
An alle Logiker
Müller (Gast) >Habt ihr eine Idee, wie man das vereinfachen könnte, um es dem Compiler >(avr-gcc) einfacher zu machen? Warum? Ist es zu komplex? Ist die Ausführungszeit zu groß? https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung > Ich ziele auf
ad absurdum führtst! Ich verweise nochmals auf https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung Mit der Betonung auf "Verfrühte Optimierung ist die Wurzel allen Übels"
-
Thread
Umgang mit Volatile Variablen im Code, beispiel "atoi"
Frage: Die beiden Variablen Volatile oder ist es nicht notwendig? Theoretische Frage: Wenn die Optimierung ausgeschaltet ist, hat das Volatile auch keinen Sinn mehr oder?
> Mit der Optimierung hat das nichts zu tun. Mmmh. Naja. So richtig korrekt ist auch nicht. Natürlich geht es darum, ob man dem Compiler erlaubt davon auszugehen, dass sich ein Wert nicht geändert haben kann oder
-
Thread
Atmega8 GCC: Bitmanipulation an einer Variablen
Du auf "Optimization" 6. Im Optimization Level stellst Du None ein Ab jetzt werden keine Optimierungen mehr seitens GCC unternommen und nur übersetzt. Somit kannst Du in alle Variablen, Strukturen usw. reinschauen. Viele Grüße Stefan
Die meisten Leute wollen, auch wenn sie es nicht wissen, die Optimierung auf Codegrösse. Ich würde dieses Problem nicht durch drehen an der Optimierung "lösen". Volatile oder eine dummy-use Funktion für die Variable einbauen. Dass sowas wegoptimiert wird ist
-
Thread
C Rechnen mit signed und unsigned
Also würde ich > meinen, dass der int Datentyp 8 Bit groß ist. Für Typlayout, siehe http://gcc.gnu.org/wiki/avr-gcc
erst danach auf 16 Bit. Zumindest sollte man das im Auge behalten. Der hier recht beliebte avr-gcc macht das allerdings nicht.
-
Thread
Struct per Pointerzugriff befüllen
Beitrag #4368264: > Wie gesagt, memset scheidet aus. warum? hast du es mal gestestet (auch mit Optimierung)? Ich würde erwarten das der Compiler es inline als Schleife baut.
Die (korrigierte) Schleife ist kleiner als memset und passt! Optimierungen sind natürlich an. Die Standardfunktionen sind halt nicht immer das Optimum.
-
Thread
Codeblähungen beim Rechnen mit globaler Variable
brauchbaren Benchmarks gibt. Momentan haben Konstanten Kosten 0, was noch Denis stammt: http://gcc.gnu.org/viewcvs/gcc/trunk/gcc/config/avr/avr.c?revision=230016&view=markup#l9902 A. K. schrieb im Beitrag #4366535: > Wer mal sehen will, auf welche skurrilen Lösungen Compiler kommen > können
an im Prinzip maschinenunabhängigen Optimierungen bei manchen Zielmaschinen nach hinten losgehen.
-
Thread
Heim Automatisierungswahn Gesperrt
wollen...also leg > dich wieder hin du Troll und träum weiter. Moby traut eigentlich nicht mal dem GCC, daß er keine "überflüssigen" Befehle in den Flash des ATtiny13 schieben würde. Nur wenn wichtig wäre versagt sein Verschwörungssensor völlig ;-)
smart) sein: EVU: Sehr geehrter Stromkunde, obwohl wir in der Vergangenheit diverse Optimierungen vorgenommen haben, um Kostensteigerungen bei gleichbleibend hoher Servicequalität zu vermeiden, haben uns die jüngsten Ereignisse an den Rohstoffmärkten dazu gezwungen, einen kleinen Anteil davon
-
Thread
Gründe für IAR
dabei das Argument für (oder gegen) IAR? Dieser Thread ist ja nicht überschrieben: „Gründe gegen GCC“.
Moment, es gibt noch Leute, die den GCC als "Hobbycompiler" ansehen? Es gibt doch von vielen Firmen zusammengeschnürte Pakete für komplette Entwicklungsumgebungen auf Basis des GCC (z.B. Rowley CrossWorks). Inklusive Support mit Hotfixes
-
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
BCD auf C: was mache ich falsch?
wenigen Fällen ist ein Algorithmus kürzer UND schneller. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Wie
Falk B. schrieb im Beitrag #4365754: > https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung > > https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Wie Ich habe das gelesen... Also, die Variante ohne Schleifen hat auch Recht
-
Thread
DSP-System für Audioverarbeitung, wie Komponenten aussuchen?
eine kleinere Variante, die noch gut lötbar ist, einsetzen, z.B. den BF592. Und zum Thema Compiler: GCC ist immer noch kostenlos und nicht beschränkt in der Codegrösse. Damit fällt die Auswahl schon mal leichter :-) Nur bei den Debug-Tools gibt's halt deutliche Preisunterschiede und ADI war in den letzten
: > Überrascht bin ich doch etwas über die Rechenpower die der STM doch hat > nach ein paar Optimierungen jetzt. > Im Leerlauf (also einfach nur Playthrough) ca 2%. > Mit jedem weiteren Biquad ca +1%. > Also es lassen sich schon recht komplexe Audioverarbeitungen realisieren > drauf. In der
-
Thread
[S] uC - klein, 5V, 2 ADC, 2 DAC, kostenlose Toolchain
Reset ist so ne Sache) IOs - USI taugt als SPI oder I²C und unterstützt eine Software-UART - AVR-GCC ist gratis (und optimiert gratis, anders als die XCCs von Micrchip) - Gibts überall EDIT: Mit V-USB ist sogar USB drinnen (damit is der Chip aber ziemlich beschäftigt)
Reset ist so ne Sache) IOs > - USI taugt als SPI oder I²C und unterstützt eine Software-UART > - AVR-GCC ist gratis (und optimiert gratis, anders als die XCCs von > Micrchip) > - Gibts überall > > EDIT: Mit V-USB ist sogar USB drinnen (damit is der Chip aber ziemlich > beschäftigt) Ja, mit PWM-DAC
-
Thread
C Optimierung ISR
Jörg W. schrieb im Beitrag #4346758: > GCC 4.7.2 rettet R15 … R31 (und natürlich R0/R1). > GCC 4.9.3 rettet R14 … R31 und R0/R1, generiert aber insgesamt 10 ... und die Register werden auch alle verwendet. (Wenn mir nicht eins durch die
bitte das Wesentlich nicht aus den Augen verlieren. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
-
Thread
Software Zertifizierung
sich diese aussage auf eine eingefrorene version des Compilers. Und oft wird verlangt Compiler-Optimierungen auszuschalten. Also prinzipiell kann man den Gcc zertifizieren, da seine Sourcen Offen liegen sollte das sogar einfach möglich sein. Aber Vorsicht, es gibt gcc-Varianten die verhalten lt
? Nein, GCC reicht nicht.
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
manchmal Fehler machen (sehr selten) die im Quellcode nicht zu erkennen sind. Gerade die 'optimierungen' mancher Compiler können einem echt die Karten legen. Z.B. beim Xmega den Takt umschalten geht in GCC je nach Optimierungsstufe mal und mal nicht. Grund ist das zwischen dem freischalten und
Ab einer gewissen Größe. Beim einen 10K, beim anderen 1K, beim dritten Null. > Gerade die 'optimierungen' mancher Compiler können einem echt die Karten > legen. > Z.B. beim Xmega den Takt umschalten geht in GCC je nach > Optimierungsstufe mal und mal nicht. Grund ist das zwischen dem > freischalten
-
Thread
avr-gcc 4.9, Atmel Studio 7 unterschlägt Code
Hallo Leute, ich bin fast verzweifelt. Der Code unten läuft korrekt unter Studio 6 mit avr-gcc 4.8 aber mit dem neuen avr-gcc ab (einschliesslich) Optimierung -O2 wird der Test der Adresse einfach "wegoptimiert". Liegt das jetzt an meinem Code oder ist das ein Compiler-Bug? Danke für eure
Programmierer den Code so geschrieben hat, dass es gar nicht erst zum Overflow kommt, was diese Optimierung ebenfalls rechtfertigt. Neuere Versionen des GCC nutzen an mehreren Stellen die Regeln für undefined Behavior und strict Aliasing für aggressive Optimierungen. Unsauber programmierter Code
-
Thread
debuggen in Codeblocks klemmt
Auch mal ohne Optimierung kompilieren.
Dumdi D. schrieb im Beitrag #4338540: > Auch mal ohne Optimierung kompilieren. unter dem Menüpunkt "Settings compiler" compiler flags ist eine größere Liste möglicher Einträge. Angehakt ist da momentan nichts. Was sollte da ggf. angehakt werden? "Produce
-
Thread
Kann man folgenden Code platzsparender schreiben
4.7.2 oder höher) bekommt man hier: http://sourceforge.net/projects/mobilechessboar/files/avr-gcc%20snapshots%20%28Win32%29/
vielleicht wären ja solche Artefakte (zusammen mit der ja offenbar > insgesamt deutlich mieseren Optimierung) endlich mal ein Anlass für > einen Upgrade der Toolchain? Ja, damit hadere ich schon die ganze Zeit, die Lösung mit aktuellerem GCC und Studio 4.18 wäre eine gute Alternative um das überladene
-
Thread
AVR-C: Funktionen aufrufen
Oder hast du das Programm nur im Simulator/Debugger laufen lassen? Da können je nach verwendeter GCC- bzw. Debugger-Version und je nach Debug-Option unerwartete Dinge passieren, da die Funktionen bei eingeschalteter Optimierung geinlinet werden.
test(); while (1) {} } [/c] lg und nochmals vielen Dank ps: [alle@foo ~]$ avr-gcc --version avr-gcc (GCC) 5.2.0
-
Thread
AVR-GCC optimiert TIME & DATE weg
Die beiden unten stehenden Zeilen werden vom Compiler weggeputzt (Optimierung: Os). Es gibt keinen Bezug im Quelltext auf die Bezeichner s1 & s2. Das Schlüsselwort "volatile" hat keinen Einfluss. Wie kann ich den Compiler überreden TIME & DATE im Flash abzulegen? [C
Probiers mal hiermit: [c] #pragma GCC push_options #pragma GCC optimize ("O0") dein code #pragma GCC pop_options [/c] Aber ich muss OldMan eigentlich Recht geben...
-
Thread
Verständnisfrage zum #include beim "Auslagern" in .c und .h
\atmel studio\6.2\GccApplication3\GccApplication3\MyTWI.c 43 1 GccApplication3
: Severity Code Description Project File Line Error undefined reference to `TWI_init' GccApplication3 C:\Users\Ichich\Documents\Atmel Studio\7.0\GccApplication3\GccApplication3\Debug/.././GccApplication3.c 18 Error undefined reference to `TWI_Flags' GccApplication3 C:\Users\Ichich
-
Thread
GCC / ARM Cortex, Registerzugriff über Pointer & struct
word 0x40020400[/code] Man sieht, es kommt /exakt/ der gleiche Code heraus. Schaltet man die Optimierung ab (-O0), ist die Variante ohne struct sogar langsamer & größer...
man i.d.R. UART1 schon in einem > Register haben und das ganze ist ein einziger LDR/STR Befehl. GCC ist klug genug, konstante Adressen auf Nähe zu untersuchen: https://www.mikrocontroller.net/topic/379814?reply_to=4324033#4320030 Bei anderen Compilern wäre das zu untersuchen.
-
Thread
AVR-GCC Fixed Point und Strings
> "long long sat fract". Unterstützt der AVR-GCC diesen Typen überhaupt?
nicht finden kann, d.h. die Funktion ist auch nicht in einer lib des gcc, die in jedem Falle mitgelinkt wird. Kann man dafür ausgehen, dass beim avr-gcc dafür einfach der Support fehlt?
-
Thread
GCC-Optimierungen bei -ffast-math
Lukas K. schrieb im Beitrag #4305255: > Was für eine > anscheinend doch sehr effiziente Optimierung hat hier zugeschlagen? An GCC wird seit fast 30 Jahren gearbeitet. Man muss davon ausgehen, dass nicht mal die GCC-Maintainer über jedes Detail Bescheid wissen. Bei solchen Details ist die einzige Dokumentation häufig der Source-Code. https://gcc.gnu.org/wiki/FloatingPointMath enthält ein paar grundlegende Erklärungen, aber nicht die exakten Optimierungs-Algorithmen die verwendet werden. Wenn ich es richtig verstehe sind nicht nur der Compiler
-
Thread
[ARM / Cortex-M0(+)] delay-Funktionen "avr-libc style"
das Ergebnis mit "inline": Danke fürs Testen! Ein bisschen mysteriös ist es schon, dass der GCC den Gleitkommaausdruck (wie er aus dem Präprozessor dann rausfällt) ohne Optimierung trotzdem zur Compilezeit ausrechnet, die inline-Funktion jedoch nicht. Naja, lässt sich dann wohl nicht ändern
nehmen. Ich hatte übrigens gar nicht damit gerechnet, dass der Compiler diese Ausdrücke ohne Optimierung jemals zur Compilezeit umsetzt, daher hatte ich den Fall „Optimierung ist aus“ gedanklich für so ein Vorhaben ausgeklammert. (Wer nicht optimiert, dem ist die Ausführungszeit ja sowieso egal
-
Thread
C - Char array löschen
for Schleife reinspringen. Ganz ehrlich. Machs erst mal richtig und kümmere dich dann um Optimierungen. So oft wie du strlen aufrufst, ... da ist erst mal jegliche sogenannte Optimierung vollkommen für die Würscht. > Ob ich die Abfragen verschachtele oder alles in Funktionen auslagere, > spielt
gibt's doch auch bestimmt bei Linux - dieses Poll gibt's bei mir gar nicht, zumindestens meckert mein GCc wenn ich versuche die einzubinden. - was ist das überhaupt? Klingt für mich frei übersetzt wie Umfrage ;) Ich benutze codeblocks als Editor und als linker und Compiler aber das GCc von devcpp, fragt
-
Thread
Neuer ATtiny104?
ok, der "Support" ist ja von Atmel... Die werden schon wissen, warum sie den nicht offiziell bei GCC eingekippt haben. Das war wohl mal ein /checklist item/ des zuständigen Menschen im Marketing, dass mit dem Auftauchen der ATtiny10 der GCC-Support dafür vorliegen solle, hatte ich den Eindruck
der "Support" ist ja von Atmel... > > Die werden schon wissen, warum sie den nicht offiziell bei GCC > eingekippt haben. Oder hab ich das falsch verstanden? http://gcc.gnu.org/gcc-5/changes.html > On AVR, support has been added for the devices ATtiny4/5/9/10/20/40. > This requires Binutils
-
Thread
Wann wird eine Variable zurueckgeschrieben / volatile
sollte man diese Optimierung auch mit volatile verhindern? Sie kann doch während der ISR im Register gehalten werden.
rausfliegen! int a; main() { a=1; } Ja das mal durch deinen Compiler mit aktiver Optimierung und staune ;-)
-
Thread
LCD an Atmega 168 anschließen
keinerlei Pin-Zwänge. Und wenn ich mich nicht irre, werden die Arduino-Programme, ähh Sketche vom GCC übersetzt, was irgendwie die Verwendung von C vermuten läßt ;-)
wenn sich die Einstellung manifestiert, wird der Programmierer auch später keinen Gedanken an Optimierung verschwenden. Und dann hat das sehr wohl praktische Auswirkungen. Schau dir mal an, wie aufgeblasen und ressourcenfressend aktuelle PC-Software daherkommt. Im Vergleich zu Programmen von vor zwei
-
Thread
Architektur für "background" Uart-Transmission
nutzung der 250µs der interrupt >routine und datenkompression) Klingt nicht sinnvoll. Ein Optimierung eines noch nicht wirklich fehlerfreien Konzepts. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
oder interessant genug. Falk B. schrieb im Beitrag #4282207: > Klingt nicht sinnvoll. Ein Optimierung eines noch nicht wirklich > fehlerfreien Konzepts. Da gebe ich dir recht, deshalb habe ich es auch bisher vor mir her geschoben. Oder D. schrieb im Beitrag #4282220: > Ist leider viel zu
-
Thread
Cortex M7 und Cycle Counter (DWT)
Falko J. schrieb im Beitrag #4280637: > Optimierung ist übrigens aus... Das dürfte dein Problem sein. Die Funktionsaufrufe kosten Zeit.
Aber mit Optimierung hat sich nichts geändert. Das inkrementieren der Variable ist aber auch ohne Optimierung nur ein assembler Befehl. Trotzdem erhöht sich der Cycle counter um 11, wenn in Debugger genau diesen einen
-
Thread
Wie Assembler ISR in C integrieren ?
gesagt bin ich mir immer unsicher was ich auswählen muß wenn ich ein neues Projket in AS anlege. GCC C Executable GCC C Static Library GCC C++ Executable GCC C++ Static Library Eine gute Erklärung auf deutsch hatte ich noch nicht gefunden. Vielleicht kann das jemand kurz erklären? Danke.
bin ich mir immer unsicher was ich > auswählen muß wenn ich ein neues Projket in AS anlege. > > GCC C Executable > GCC C Static Library > GCC C++ Executable > GCC C++ Static Library Nun, wenn du ein "C++ Executable" anlegst, dann heißt das, dass du in C++ programmieren willst. Kann man
-
Thread
STM32F4 FPU Problem mit EM:Blocks 2.20
Das könnte sein. Optimierung ist aber übrigens aus, damit der GCC nicht auf die Idee kommt was weg zu lassen. Ich habe das ganze auch mal zwischen anderen Codezeilen dazwischen gepackt, mit dem selben Ergebnis. Hier im
ich denke der gcc schmeißt den Code raus. Das hat nicht mal was mit Optimierung zu tun. Da die Variablen nicht gebraucht werden sind sie überflüssig. Versuch die mal als volatile zu deklarieren. Oder mach ein printf
-
Thread
mcHF-SDR Selbstbau-Projekt
geht selten um Informationen austauschen, eher darum mit möglichst wenig Leistung und technischer Optimierung weit zu kommen. Aber auch der Notfunk ist sehr interessant. Ankerum macht der Amateurfunk es möglich, dass Schulklassen mit der ISS reden können. Im Grunde gibt es eine vielzahl. Würde es
written and verified! jolly good! Die FW wurde mit folgenden Linker Einstellungen gebaut - siehe arm-gcc-link.ld Nun zu meinem Problem: Nach dem Flashen der FW startet das Programm automatisch, und alles sieht sehr gut aus. Schalte ich den TRX aus, kommt nach dem erneuten PowerOn (via Netzteil