-
Thread
PWM mit dem ATTINY26
eine Standardbibliothek, auf die man zurückgreifen möchte. Im hosted mode (der der Default ist beim GCC) kann der Compiler bestimmte Optimierungen vornehmen basierend auf impliziten Annahmen über das Verhalten von Standardfunktionen. Das ist manchmal gar nicht so schlecht. Man kann simpel einen Sack
Der avr-gcc will ein "int main(void)", sonst kommt eine Warnung.
-
Thread
MMC SD library FAT16 FAT32 read write
lol moment bei windows wird das warscheinlich eher c:\WinAVR\bin\avr-gcc.exe heißen... mit optimierung s wird der code jetzt wieder kleiner als mit 2 und der geschwindigkeitsverlust geht auf 10KBytes /sec zurück. also von 165 auf 155KB damit kann ich leben (atmega 168
Der gcc war in dem AVR-GCC package für den Mac. http://www.obdev.at/products/crosspack/index-de.html Das ganze läuft auf nem Atmega8.
-
Thread
Lightweight WS2811/WS2812 Library
Hauptprogramm. Die LIB ist die aktuelle aus dem Git. Hier mal die Meldungen beim Compilieren. AVR gcc ist 4.8.3., aktuell aus Opensuse Leap 42.2. [code] -------------- Build: Release in Stripe_ATMega8 (compiler: GNU GCC Compiler for AVR)--------------- avr-gcc -Wextra -Wall -DF_CPU=16000000UL
Label. Das wird durch den Doppelpunkt deklariert "%=" erzeugt einen unique identifier. https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html [code] " lsl %[dat], #1 \n\t" // [ 4] => OK " str %[maskhi], [%[set]] \n\t" // [ 5] => OK " bcs one%= \n\t" // [ 6]
-
Thread
STM32 Profiling: Barriere gegen Optimierung?
den Inhalt der Funktion vor oder hinter das Auslesen des > Zyklenzählers verschiebt. Stichwort: gcc memory barrier leo
Walter T. schrieb im Beitrag #5939171: > Gibt es eine Möglichkeit, solche Optimierungen zu > verhindern Nimm einfach so eine Compiler-Barrier jeweils vor und nach Deiner zu messenden Funtion: [c]#define CMPBAR __asm__ volatile("" : : : "memory")[/c]
-
Thread
arm-elf-g++ und c++
Hallo Martin! Das scheint in irgend einer Weise mit der Optimierung des Compilers zusammen zu hängen. Wenn ich -O0 einstellen (also Optimierung abschalte), dann erhalte ich den Code...
. Vielleicht liegt es tatsaechlich an den "inline-Member-Funktionen" und einer "übertriebenen" Optimierung, da im Beispiel innerhalb der Funktionen nur auf I/O-Register zurueckgegriffen wird. Koennte sein, dass das volatile bei den "Registermakros" bei der "C++-Optimierung" noch ignoriert wird. Die Implementierung
-
Thread
Asm in AVR GCC?
" "brne delay3" "ret" "dec r17" "brne delay2" "dec r16" "brne delay1" "ret" ); } // gcc plug-in: Error: Object file not found on expected location C:\Tests\gcc\default\qwerty.elf
http://www.nongnu.org/avr-libc/user-manual/inline_asm.html und dann den entsprechenden Eintrag im gcc Manual lesen: http://gcc.gnu.org/onlinedocs/gcc-4.2.3/gcc/Constraints.html Wenn du dir danach etwa die Frage beantworten kannst, was einen "early clobber" von einem "clobber" unterscheidet und
-
Thread
Linux GCC 4.0.1 AVR Toolchain
Hmm, GCC 4.x, du meinst, den sollte man wirklich schon ernsthaft für den AVR benutzen? Alles, was ich darüber bislang weiß ist, dass das Beta-Qualität ist. Interessant für Tests (manche Optimierung soll
Hmm, keine Ahnung, ich hab jedenfalls keinen aktuellen AVR-GCC für Linux gefunden und kurzerhand selber kompiliert. (bin auch AVR Newbie) Die GCC Release Notes sagen nichts von Beta Status, ausser ich habs nicht gesehen?
-
Thread
Open source Autoradio
/E/Daten/Etechnik/SuperH/sh7262/Dokus/gcc: l insgesamt 31M 348K 2010-05-24 14:29 asp_cq_frksh2a_gcc-20100409.tar.gz* 929K 2010-05-24 15:20 cq_gnu_resources20100424.tar.gz* 217K 2010-05-24 15:19 cq_sh7262_gcc.zip* 28M 2010-05-24 14
start.elf start.bin [olaf] ~/sources/SH2A/test1: sh2a-gcc --version sh2a-gcc (GCC) 4.5.1 Meine Test-LED blinkt. :-) Olaf
-
Thread
ARM - Probleme mit sprintf (Linkerfehler)
umgeht. Warum das Problem bei sprintf(test, "Hallo Welt"); nicht auftritt, liegt daran, dass der gcc hier schon mit der Optimierung zuschlägt. Der parst das "Hallo Welt" schon und stellt fest: ups, hier ist ja gar kein sprintf nötig, ein strcpy hätte auch gereicht. Und genau das baut er dann ein. Kannst
Der AVR-GCC liefert schlicht und ergreifend eine andere C-Library mit als der ARM-GCC, die kein malloc () und damit kein sbrk braucht. Solche libraries gibt es natürlich auch für ARM, die muss man "nur" dem GCC
-
Thread
Port Konfigration zur Laufzeit festlegen
Statisch zur Compilezeit zu machen. Hat mir da jemand einen Tipp ? Achja, das ganze unter avr-gcc und derzeit mit einem atmega32. Danke Juergen
: > Schön ist es allerdings nicht unbedingt, weil du dem Compiler jegliche > Möglichkeit zur Optimierung auf den I/O Operationen raubst, dürfte > allerdings im Vergleich zu den if-then-else Orgien auch nicht schlechter > sein. Der GCC kann ganz schön viel wegoptimieren, wenn man ihn lässt. Eine
-
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
Optimizer Unterschiede mit GCC - Codevision - IAR
Der AVR-GCC optimiert gnadenlos mehrfache Einlesungen derselben Variable weg, wenn diese nicht volatile definiert ist. Z.B. wenn Dein if/else in einer Schleife erfolgt. Peter
(hier avr-gcc) legt Dinge fest, die im Standard "Implementation defined" sind, wie etwa die Größe des Typs int.
-
Thread
Bezüglich Stack, Heap, Ram etc. auf µC
nachzureichen: Ja ich programmiere nur in C und die Entwicklungsumgebung (Rowley Crossworks) verwendet den GCC.
Arrays entsprechende Zugriffe alle paar KB einflechten. > Oder wenigstens in Software? Gibts in GCC im Prinzip, wobei es natürlich Sache der Zielsystemanpassung ist, etwas draus zu machen.
-
Thread
Größe eines externen Arrays in C
Elemente\n", (unsigned long)nElemente ); return 0; } [/c] Ausgabe: [pre] klaus@lap7:~$ gcc -Wall main.c source.c klaus@lap7:~$ ./a.out Das Feld hat 3 Elemente [/pre]
Und der angenommene Code-Bloat ist ein viel genanntes Pseudo-Argument, was durch die bessere Optimierung oft (mehr als) wett gemacht wird.
-
Thread
A/D-Wandler ATMega8 funktioniert nicht
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Aktivieren_des_ADC
Pause unsigned char i = 10; for (i=0; i<10; i++) delay_ms(100); } [/C] wenn mit Optimierung übersetzt wird (-Os z.B.). Den folgenden Teil habe ich nicht überprüft. Ich vertraue darauf, dass du das korrekt aus dem AVR-GCC-Tutorial übernommen hast. [C] ADMUX |= (1<<REFS0);
-
Thread
Bibliotheken nur teilweise Linken
in ein > eigenes Modul zu packen. Sowas in "virtuell" ohne Sourcecodemodifikation macht beim gcc das -ffunction-sections :-) Das Problem beim gcc ist ja, dass der Linker an sich recht dumm ist und keine Optimierungen/Auslassungen im Code mehr machen kann. Das würde ja zB. relative Addressierung
http://www.mikrocontroller.net/articles/GCC:_unbenutzte_Funktionen_entfernen
-
Thread
Echtzeit mit JAVA
Java-Applikation allerdings 5x schneller als Dein C-Programm war, war Dein C-Programm miserabel optimiert (Optimierung des C-Compilers ausgeschaltet ???). Gruß, Rayk
geswitcht haette. Daran konnte ich in meinem Code gar nichts aendern. Ich benutzte den Compiler mingw-gcc. An den Optimierungen hatte ich ein bisschen rumgespielt, aber half nichts.
-
Thread
Projekthilfe gesucht - Parallela Cluster (Supercomputing :))
nicht programmieren. Es gibt genuegend Solver (glpk, lpsolve, cplex ...). Da durch solche Optimierungen viel Geld verdient werden kann, wurde schon eine Menge Hirnschmalz investiert.
inkl. Start des Programm sowie Beendigung, gemessen durch unix Time programm. Diesmals mit gnu optimierung, gcc t4.c -std=gnu99 -mtune=pentium-m -mfpmath=sse -Ofast -funroll-loops -march=native -flto Der Grund für iron<60 ist, dass am Ende noch Berichtigungen gemacht werden, und eigentlich die
-
Thread
[AVR][GCC]: Ansteuerung für Funkschalterset
Hallo! Ich habe in den letzten Tagen endlich mal ein Projekt fertiggestellt. Bei (unserem) "Bauhaus" gibt es momentan für EUR 9,95 ein Funkschalterset mit 3 Funksteckdosen und einer Fernbedienung. Ich habe diese Fernbedienung analysiert, auseinander gelötet, die nötigen Teile auf eine Lochrasterplatine gebaut und das Ganze mit einem ATMega16 angesteuert. Falls jemand Lust hat das Ganze nachzubauen, dann gibt es hier meine Projektbeschreibung inklusive Schaltplänen und Source Code: http://www.thomaskropf.at/funkset.php Ich hoffe es ist für jemanden von Nutzen. MfG, Thomas
-
Thread
PDF im Vorwort von [[AVR-GCC-Tutorial]]
Hi, im Vorwort von [[AVR-GCC-Tutorial]] zeigen die Links im pdf http://www.mikrocontroller.net/wikifiles/1/1b/AVR-GCC-Tutorial.pdf ins wiki, nicht ins pdf. Gehört das so? Das Inhaltsverzeichnis eines pdf-Dokumentes sollte
Erstmal danke für die Optimierung und Verbesserung der Darstellung vor Beginn der Aufstückelei. Falls man sich nicht in Zukunft auch für die Pflege das GCC Tutorial zuständig fühlen will (ich tue es bis dato), bitte ich die grade
-
Thread
Programmgröße optimieren, globale Variablen in struct?
byte schon keine Kleinigkeit mehr. Daher war diese Änderung kontraproduktiv. So ist das bei Optimierungen: Manchmal bewirken gut gemeinte Optimierungen das genaue Gegenteil. Gerade für Optimierungen gibt es kein Patentrezepz.
} [/c] Oder so irgendwie... inline-ifs würde ich übrigens auch vermeiden, die scheint der GCC gerne in 16 Bit-Operationen umzusetzen (x = y < 3 ? 4 : 2).
-
Thread
Atmel Studio: uralter AVR-GCC?
#5999150: > Habe mir das "aktuelle" Atmel Studio von Microchip geladen. Was mir > auffiel, der GCC ist uralt. Das Studio meldet: "AVR/GNU C Compiler : > 5.4.0". > > Hier ist man bereits bei Version 9: https://gcc.gnu.org/ Die v8+ willst du verwenden wegen http://gcc.gnu.org/PR81268 Die v9 willst du nicht verwenden wegen http://gcc.gnu.org/PR91189
-
Thread
Array Obergrenzen?
den Stack nützt, läuft evtl. dein SRAM über, sind ja nur 1k. Wars nicht (früher) so, dass beim avr-gcc erstmal Daten vom Flash ins RAM kopiert wurden? Habe allerings schon >6 Jahre nichts mehr mit dem avr-gcc gemacht, kann also sein, dass meine Infos total überholt sind.
Gemeint sind diese Präprozessor Macros: http://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
-
Thread
AVR-GCC Tutorial Taster entprellen
Rückschlusse auf die eingestellte Taktquelle und deine Compiler-Eistellungen beim Übersetzen (Optimierung an/aus) ziehen. Bei falscher Einstellung müsstesr du den Taster statt 75ms im Extremfall 1,2s und länger halten! 2/ Nach dem Blinken ohne Tastendruck: Ist die LED AN oder AUS? Damit kann man
Ich bevorzuge eine ordentliche critical section, die mit Compiler-Barriers markiert wird, beim GCC mit asm volatile ("" : : : "memory"); Warum sollte ich innerhalb der CS auf Optimierungen verzichten? Statt *sei* und *cei* ruft man einfach ein Makro enter_critical_section und leave_critical_section
-
Thread
Debuggen mit JTAG ICE mkII
Beim Kompilieren/Assemblieren der Firmware müssen spezielle Einstellungen gemacht werden. Die Optimierung des Compilers muss deaktiviert werden (GCC -> O0) und es muss die Erstellung von Debugging Informationen aktiviert werden.
Spezielle Einstellungen im Compiler (AVR-Studio mit AVR-GCC) hab ich noch nie gebraucht. Gruß Fabian
-
Thread
char array + itoa löst Reset aus
Absturz und es funktioniert alles wunderbar. Bei beiden Beispielen habe ich die Option s für die Optimierung des gcc angeschaltet. Die erste Version tut auch, sofern ich die Optimierung des gcc ausschalte. Kann mir einer erklaeren warum der erste Fall nicht tut? Gruss Matthias
-
Thread
AVR (hex) reverse engineering (radare2)
#5817970: > Kann ich gewisse Dinge beim programmieren ändern, damit es leichter > wird? Ja, Optimierung abschalten. Dann entspricht das Assemblat eher Deinem Programm.
den glibc C-Code angeschaut hat und mit dem Asm verglichen hat, wird den Asm bevorzugen (mit Optimierungen)
-
Thread
Frage zur Programmierung.
Danke erstmal... Ich arbeite mit AVR-Studio + GCC Habe leider nur Java und PHP gelernt, C basiert nur auf Selbststudium. >Tobias Jenatschke schrieb: > Da steht ja Code drin... wegoptimieren kann er die nicht... >Woher weißt du das? >Comopilier das mal ohne Optimierung (-O0), das sollte helfen. Ich vermute das nur, da es ja direkt im Main funktioniert.... Ich versuch heute abend mal den gesamten Code hier zu rein zu posten...
-
Thread
AVR Studio 6 und Bootloader
Oliver schrieb im Beitrag #3138768: > Ohne Optimierung wird der Index von mcucr_write zur Laufzeit > ausgewertet, das dauert halt länger als 4 Zyklen. Nachtrag: Zumindest der gcc 4.3.3, den ich hier auf dem Rechner habe, erzeugt ohne Optimierung auch ohne Array solch umständlichen Code, der schafft die 4 Zyklen ohne Optimierung auch ohne Array nicht. Oliver
-
Thread
Internes EEPROM beschreiben bei Atmega 644
Nabend, ich bins noch mal. Ich verwende jetzt die Funktionen der GCC Lib. Leider scheinen diese nicht immer zu funktionieren. Manchmal les ich den Wert den ich davor geschrieben habe und manchmal 0xFF. So als ob da nie was abgelegt wurde. In der Lib vom GCC sind an
ACHTUNG JETZT DIE LÖSUNG Stell den Optimierungsgrad des GCC Compiler auf 2 und schon gehts. Hab drei Tage gebraucht. Bei Optimierung 0 benötiget man 6 assembler Befehle um ein Bit zu setzten. Bei Stufe 2 nur einen Befehl. Das ist die kritische Stelle: [c]
-
Thread
Gleitkommaberechnung
> Warum werden die MUL Befehle denn nicht benutzt? Das kann ich gar nicht glauben. Bsp: avr-gcc, aktuelle Version, ATMega16, Optimierung auf Os j = 58 * i; aa: 89 81 ldd r24, Y+1 ; 0x01 ac: 9a 81 ldd r25, Y+2 ; 0x02 ae: 2a e3 ldi r18, 0x3A ; 58
Mambo-Zambo mit der Hilfsfunktion dient nur dazu, den Compiler an einer Constant-folding Optimierung zu hindern: <c> void foo( int* a ) { *a = 5; } int main() { int i; int j; foo( &i ); j = 5 * i; foo( &j ); while( 1 ) ; } </c>
-
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
"Neue" CPU-Architektur-Aspekte (FPGA softcores)
ZPU. Die Diskussion SPARC/Windows vs MIPS/harte Registerfiles ist natürlich längst hinfällig bei GCC, nur ging es mir primär ums Aufbohren des GCC-Supports von Stack-Machine zu sliding windows (die ZPU ist mit ihren sp-relativen ops wie STORESP/ADDSP schon nah dran). GCC hat so seine Mühe mit Stackmaschinen
mal den J1 Forth im Vergleich zur ZPU anschauen. > Yurkowsky hat dazu auch ein paar nette Optimierungen dokumentiert, und bremsende Hazard-Logik gibts da nicht, ergo kann man sie recht hoch clocken, aber da reine Stackmaschine (nur Push/Pop), ist GCC-RTL dafür nicht praktikabel. Haben sich schon
-
Thread
delay funktion
schätze, dass der compiler dies braucht, damit die funktion korrekt arbeitet?) Wo kann man die optimierung einschalten? Ich habe das hilfe menue des AVR studio bemüht und optimize eingetippt. Dort kommt aber nur etwas zum stk 500.
A.D. schrieb im Beitrag #1884930: > Wo kann man die optimierung einschalten? > Ich habe das hilfe menue des AVR studio bemüht und optimize eingetippt. > Dort kommt aber nur etwas zum stk 500. Im AVR-Studio gibts ein Dropdown-Menü mit so Sachen wie "-O2
-
Thread
Ansteuern von 300 RGB-LEDs
man weiss wie ;-) Bezieht sich deine Antwort auf die im [[Soft-PWM]]-Artikel beschriebenen Optimierungen, oder meinst du etwas darüber hinaus gehendes?
Alexander Horst (hoal) >Bezieht sich deine Antwort auf die im Soft-PWM-Artikel beschriebenen >Optimierungen, Ja. Aber ich bin offen für weitere Verbesserungen. MFG Falk
-
Thread
Erste schritte mit AVR
. EDIT: Die Wartefunktionen aus <util/delay.h> funktionieren aber nur richtig, wenn sie mit Optimierung (Compiler-Option -O1, -O2, -O3 oder -Os) übersetzt werden. Ausserdem benötigen sie das Makro F_CPU. Letzteres kannst du im gcc-Plugin von WinAVR in den Eigenschaften einstellen. Ansonsten halt Compileroption
einfacher einen kompletten Code zu haben, der nicht von irgendwelchen Einstellungen (ausser der Optimierung) in der Entwicklungsumgebung abhängt. Wenn die Optimierung nicht richtig eingestellt ist, ist es auch nicht weiter schlimm, stimmen die Zeiten nicht, aber blinken sollte es trotzdem. Erst mal
-
Thread
UART-Fehler :(
Warteschleife z.B. _delay_ms(10) nach jedem Zeichen auf. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29
von 0.5 Herz. Und weil es wichtig ist: Die Zeiten stimmen nur dann, wenn im Compiler die Optimierung eingeschaltet ist.
-
Thread
Float to Raw Bytes
) .text 0x000004f6 0x0 c:/winavr-20080411/bin/../lib/gcc/avr/4.3.0/avr25\libgcc.a(_epilogue.o) .text 0x000004f6 0x9e c:/winavr-20080411/bin/../lib/gcc/avr/4.3.0/avr25\libgcc.a(_clzsi2.o) 0x000004f6 __clzsi2 .text 0x00000594 0x1aa c:/winavr-20080411/bin/../lib/gcc/avr/4.3.0/avr25\libgcc.a(_pack_sf.o) 0x00000594 __pack_f .text 0x0000073e 0xf0 c:/winavr-20080411/bin/../lib/gcc/avr/4.3.0/avr25\libgcc.a(_unpack_sf.o
-
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
Toolchain des WinAVR-20100110 unter Linux
haben weitere Abhängigkeiten: $> aptitude show gcc-avr Depends: libc6 (>= 2.11), libgmp10, libmpc2, libmpfr4 (>= 3.1.0), zlib1g (>= 1:1.1.4), binutils-avr (>= 2.18-4) Suggests: task-c-devel, gcc-doc (>= 4:4.0.2-1), gcc-4.2, avr-libc (>= 1:1.6.2-2)
Prähistorisches habe und meine Compiler deshalb sowieso selber bauen muß: [code]ls /usr/bin/m68k-elf*gcc* m68k-elf-gcc-2.95 m68k-elf-gcc-3.3 m68k-elf-gcc-4.6.3 m68k-elf-gcc-4.6.4 m68k-elf-gcc [/code] Der "ohne Nummer" zeigt auf den, den ich dann meist nutze.
-
Thread
Taster per Interrupt entprellen?
längerem schon im Ordner util untergebracht. Die zweite Meldung besagt, dass Du die Compiler-Optimierungen nicht aktiviert hast. Die Funktionen aus der delay.h funktionieren aber nur richtig, wenn die Optimierung aktiv ist! Abgesehen davon ist SIGNAL genauso veraltet. Schau bitte mal intensiv ins
hat sich gelegt, aber wie stelle ich die Optmierung ein oder aus? Bzw. verschiedene Formen von Optimierung? Gibts da ein Tutorial für? Finde das GCC-Tutorial hier für nicht wirklich hilfreich. MfG
-
Thread
Global angelegtes Objekt in C++ funktioniert nicht
Wie hast du den compilert und gelinkt? Hast du dafür gcc oder g++ verwendet?
. Kann man alle einzeln ein- oder auch nach -O2 wieder ausschalten, z.b. mit -O2 -fno-gcse http://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/Optimize-Options.html#Optimize-Options
-
Thread
Geschwindigkeit?
Schleifendurchlauf. Das ist für eine RISC-CPU ganz o.k. Mit -Os solltest Du etwas besser werden. Andere Optimierungen sollte man nur dann nehmen, wenn man auch weiß warum. Peter
Compilezeit berechnet und als Konstante in > den Code eingefügt werden. sobald irgend eine optimierung angeschaltet ist wird das ersetzt.
-
Thread
Wofür Propeller von Parallax ?
frontends/c/cgram.y frontends/c/cgram.y: Warnung: 3 Schiebe/Reduzier-Konflikte [-Wconflicts-sr] gcc -g -Wall -I. -I./build -DFLEXSPIN_BUILD -o build/lexer.o -c frontends/lexer.c gcc -MMD -MP -g -Wall -I. -I./build -DFLEXSPIN_BUILD -o build/symbol.o -c symbol.c gcc -MMD -MP -g -Wall -I. -I./build -DFLEXSPIN_BUILD -o build/ast.o -c ast.c gcc -MMD -MP -g -Wall -I. -I./build -DFLEXSPIN_BUILD -o build/expr.o -c expr.c gcc -MMD -MP -g -Wall -I. -I./build -DFLEXSPIN_BUILD -o build/dofmt.o -c util/dofmt.c gcc -MMD -MP -g -Wall -I. -I./build
-
Artikel
AVR-GCC-Tutorial/Exkurs Makefiles
werden alle temporären Dateien gelöscht (="aufgeräumt"). Sonstige Einstellungen. Optimierungsgrad. Der gcc-Compiler kennt verschiedene Stufen der Optimierung. Nur zu Testzwecken sollte die Optimierung ganz deaktiviert werden (OPT = 0). Die weiteren möglichen Optionen weisen den Compiler an, möglichst kompakten
der Compiler diese "Variablen" direkt Registern zuweist. Dies kann vermieden werden, indem die Optimierung abgeschaltet wird (im makefile). Man simuliert dann jedoch ein vom optimierten Code stark abweichendes Programm. Das Abschalten der Optimierung wird nicht empfohlen. Statt des Software-Simulators
-
Thread
C++: Objekt mit Adresse einer Variablen initialisieren klappt nicht
aufruft. Manche handhaben C++-Code da nicht korrekt. Ich benutze Em::Blocks mit dem mitgelieferten GCC. [code]C:\Program Files (x86)\EmBlocks\2.30\share\em_armgcc\arm-none-eabi\bin>gcc.exe --version gcc.exe (EmBlocks ARM Embedded Processors GNU tools) 4.7.3[/code] Der Startup-Code ist anbei. Bei
gcc ist der Frontend-Treiber. Für C, C++, Java, Ada, Fortran und wer weiß, was noch.
-
Thread
4x Nibbles auf 16 Bit Wert packen
durchaus daran liegen, dass eine solche nicht > existiert. Ich kann das hier zwar nur für den gcc auf einem AVR nachvollziehen... Aber von den Schiebeoperationen im Quelltext bleibt im Assemblercode nichts mehr übrig.
Wenn ich mich nicht verhauen habe, müsste das mit diesen Registern sogar den Aufrufkonventionen vom gcc entsprechen, so dass die Funktion, so wie sie ist, in eine Datei und zum Projekt dazu gepackt werden kann.
-
Thread
Dauerspeicherung auf SPI EEPROM mit Wrap-around und Sektorlöschung (avr gcc)
dass sie sehr ineffizient sind und suche deshalb nach besseren Lösungen. Für Ratschläge und Optimierungen wäre ich sehr Dankbar. mfg
bleiben. Also Datensätze anhand CRC oder so auf Gültigkeit überprüfen. Übrigens, was hat das mit avr-gcc zu tun???
-
Thread
Was heißt __IO beim GCC
dein GCC so läuft.
Also ich verwende einen Cortex-Me von ST mit GCC als Compiler. Mit IO verbinde ich eigentlich aus der 8-Bit Zeit, daß es um den IO Bereich geht, aber das kann hier nicht stimmen. So sieht der Codeteil aus : [c] __IO uint32_t NbrOfPage = 0x00
-
Thread
itao nimmt zuviel speicher
makefile eingebunden oder die schlanke integer Mathe-Library? Benutzt du die Optimierungsoptionen des GCC? Kurz: Wie sieht dein makefile aus?
> //unbedingt Kompiler Optimierung einstellen & F_CPU frequenz angeben Hast du den Hinweis in dem Kommentar befolgt (Optimierung aktivieren)? Andere Anmerkung, die mit deinem aktuellen Problem nichts zu tun hat, aber wahrscheinlich