-
Thread
Webserver macht einfach nichts mit der 1.39er Source
nicht braucht.(?) Naja. Hier dann mal meine Shellausgabe: [pre] -------- begin -------- avr-gcc (GCC) 4.1.0 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
warning: "ISR" redefined In file included from main.h:16, from 3c5x9.c:49: /usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h:96:1: warning: this is the location of the previous definition 3c5x9.c:730:7: warning: no newline at end of file Compiling: rtl8019.c avr-gcc -
-
Thread
GCC als Crosscompiler für ARM auf ARM
also bei debian auf arm ist der gcc-arm-none-eabi dabei https://packages.debian.org/jessie/gcc-arm-none-eabi
.eh_frame *(.eh_frame) .gcc_except_table *(.gcc_except_table .gcc_except_table.*) .exception_ranges *(.exception_ranges .exception_ranges*) .tdata *(.tdata .tdata.* .gnu.linkonce.td.*) .tbss *(.tbss .tbss.* .gnu.linkonce.tb
-
Thread
Alptraum jedes Programmierer: Code kompilierbar aber doch ein Denkfehler drin wer sieht´s?
Short und Verwechslung. Ich programmiere einen ATmega8 mit einem AVRISP mkII vom AVRStudio mit AVR GCC Plug-In.
gut, das hat aber nichts damit zu tun, daß ein und dasselbe Register durch die Optimierung nacheinander für mehrere Variablen genutzt werden kann. Vielmehr verhindert volatile, daß eine Variable überhaupt in einem Register gepuffert wird zwecks Beschleunigung.
-
Thread
C - Zwei Zahlen zu einer Mappen
Ohne konvertierung zu Double hatte es ja auch geklappt. 2. Was meinst du mit Kommandozeilen? avr-gcc main.c -c -o main.o -Wall -Os -fno-move-loop-invariants -fno-tree-scev-cprop -fno-inline-small-functions -I. -mmcu=atmega328p -DF_CPU=8000000 avr-gcc lib/lcd.c -c -o lcd.o -std=c99 -Wall -Os -fno-move-loop-invariants -fno-tree-scev-cprop -fno-inline-small-functions -I. -mmcu=atmega328p -DF_CPU=8000000 avr-gcc lib/simpleprog.c -c -o simpleprog.o -std=c99 -Wall -Os -fno-move-loop-invariants -fno-tree-scev-cprop -fno-inline-small-functions -I. -mmcu=atmega328p -DF_CPU=8000000 avr-gcc lib/ds18b20.c -c -
-
Thread
AVR: float nach uint/Vorkomma und uint/Nachkomma
, avr-gcc unterscheidet nicht zwischen double und float!?!
gerri schrieb im Beitrag #3044245: > D.h. im Klartext, avr-gcc unterscheidet nicht zwischen double > und float!?! Das ABI lesen: http://gcc.gnu.org/wiki/avr-gcc#ABI
-
Thread
ARM Cortex gegen AVR
(nicht für Einsteiger) AVR (8Bit): + Einfach (für Einsteiger) + freie Compiler Toolchain (AVR-GCC: Eclipse mit Plugin oder AVR-Studio) o Peripherie/Schnitstellen - Speed/Rechenleistung (falls das wichtig ist)
an. > Ist wohl schon zu lange her, dass ich mich darüber geärgert habe ;-) Nimm einen modernen GCC und deklariere die Variable als "__flash". Den Rest macht der Compiler für dich. Kein #include, kein pgm_read_xxx() mehr.
-
Thread
ist C++ langsamer als C?
tatsaechlich, die einen ganz schnell zumindest Speicher kosten kann: RTTI. Das kann und sollte man bei avr-gcc mit -no-rtti abschalten.
manuell). Dadran wird sich auch nichts ändern -- die STL kann prinzipbedingt nicht jede erdenkliche Optimierung erriechen, auch wenn die für einen Programmierer ganz offensichtlich ist.
-
Thread
[ASM] PowerPC springt nach 0x0
dann schmiert er auch nicht ab. Für den Compiler gilt also ab 5 case Auswertungen eine andere Optimierung? Desweiteren habe ich die switch-case durch ein if-else-if ersetzt. Damit gehtn auch alle meine 7 erfolgreich - auch weil anderer ASM code erzeugt wird. Welche Gründe gibt es denn hierfür
schmiert er auch > nicht ab. > > Für den Compiler gilt also ab 5 case Auswertungen eine andere > Optimierung? Ja. Ab 5 oder 4 (hängt wiederum von was anderem ab) case-Labels verwendet gcc Sprungtabellen, wenn die case-Werte "dicht" sind. Das müsste in deinem Code erkennbar sein, indem zB der Startwert
-
Thread
Volatile in ISR und main() geht nicht
bei array's notwendig? DOCH!!! Auch wenn es OFT ohne geht, ist es NICHT sicher! Hab ich auf dem GCC schon erlebt, dass erst das volatile das korrekte Ergebnis liefert (UART TX Interrupt). MfG Falk
bedeutet ja schliesslich: keinerlei Annahmen über den Inhalt einer Speicherzelle machen und lokale Optimierungen auf dieser Speicherzelle aussen vor lassen. Natürlich ist es unwahrscheinlich, dass der Compiler es schafft ein komplettes Array in CPU-Registern zu halten und damit eine Optimierung aufzubauen
-
Thread
Codegröße verkleinern
Routine einen kompilierten Code von ein paar Bytes bekomme, erhalte ich für denselben Sourcecode mit avr-gcc kompiliert, mehrere KBytes. Trotz der eingeschalteten Optimierung im makefile mittels der s Option. Ich habe einige Hindeutungen auf ein Tool namens avr-size im /bin Verzeichnis gelesen welches den
irgendwas.hex ("text"). Kleiner machen kann man damit aber nichts. Und warum schreibst du nicht ins AVR-GCC-Forum?
-
Thread
AVR Inline Assembler - Problem mit Funktionsparameter
das jemand? Alternativ schaue ich mir das die Tage mal im Disassembler an). Allerdings ist diese Optimierung fürs Debugging schwierig... Daher will ich solche Blöcke durch Inline Assembler ersetzen. Von Assembler habe ich leider recht wenig Ahnung und vom C-Compiler noch weniger... Bisher habe ich mir
); 1. Fehler: R30 wird gesetzt, ohne dass der entsprechende Seiteneffekt beschrieben ist. GCC geht also davon aus, dass sich der Wert in R30 nicht ändert und könnte einen Wert darin gespreichert haben, der durch das asm zerstört wird. 2. Fehler: R30 wird im 1. asm nicht verwendet, GCC könnte
-
Thread
Mehrere Quelldateien, inline und __attribute__((always_inline))
#include "header.h" inline void bar(void) { // Do something. } // ... [/c] Der GCC bricht das Kompilieren mit [pre] bfin-elf-gcc -I./include/ -g -mcpu=bf537 -std=gnu99 -Wall -pedantic -Os -save-temps -Winline -c -o A.o A.c events.c: In Funktion »foo«: ./include/header.h:
Blick ins ASM-Listing bestätigt das ordnungsgemäße Inlinen (BTW: Jedoch nicht bei abgeschalteter Optimierung, was imho nicht zur Aussage in der Doku passt). Nochwas am Rande. Wenn ich das __attribute__((always_inline)) entferne meckert er: [pre] bfin-elf-gcc -I./include/ -g -mcpu=bf537 -std=gnu99
-
Thread
Makefiles im C-Projekt
richtig? Nein, nicht wenn man es richtig macht. Du beziehst dich wohl auf LTO, was keine Optimierung des Linkers ist sondern des Compilers. GCC zum Beispiel zerlegt den globalen Call-Tree in Teilbäume, die parallel compiliert werden können. Einfach mal die LTO-Optioen anschauen.
Bruno V. schrieb im Beitrag #7637296: > Ich kenne AVR-GCC nicht. Kennst du einen gcc, kennst du alle. gcc ist gcc ist gcc ist gcc. > Wer macht dabei den dependency-Kram, also dass > nur die nötigen Schritte erfolgen? Niemand. Wer braucht schon solch
-
Thread
vom C code zur *.hex file
... und dann machst vermutlich gleich Bekanntschaft mit der Optimierung. Wenn in den Compilereinstellungen die Optimierung ein ist (und das ist sie und soll auch so sein) wird dir folgende Codezeile mit sicherheit "wegoptimiert": [c] for(x=0;x<=62;x++); //Int-Wert
. was muss ich damit machen? zu dem von dir genannten punkt: wie verhindere ich denn diese optimierung?
-
Thread
Rechen-Zuweisung von Variable in GCC
irgendwie stehe ich auf dem Schlauch - geb gerne zu das mein C eingerostet ist, aber warum der WINAVR-GCC die folgende Zeile nicht ausführt bzw. anscheinend erst gar nicht compiliert - verstehe ich nicht TimerCnt += 32/8; //_TIME_CONST_US_TIMER_CLOCK (32); // Diese Zeile erscheint in keinster
Dann optimiert dein GCC schlecht. Bei mir kommt raus: Version mit "Var=32/8": [avrasm] .L10: ldi r24,lo8(4) ldi r25,hi8(4) .L9: sbiw r24,1 brne .L9 rjmp .L10 [/avrasm]
-
Thread
Bräuchte ein paar "Tipps"
erstmal getrost auslassen. wenn man die Grundlagen von C drauf hat, würde ich empfehlen mit dem AVR-gcc-Tutorial hier anzufangen und ein paar LEDs blinken zu lassen
schrieb im Beitrag #2465533: > Allerdings ist es lustiger ein C-Programm zu debuggen, wenn die > Optimierung einen Code erzeugt, der nichts mehr mit dem Quelltext zu tun > hat Die Optimierung darf das Endergebnis nicht verändern.
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
kompilieren, es gibt aber Warnungen : [code] -------------- Build: Debug in EmcExcelRelay (compiler: GNU GCC Compiler for AVR)--------------- Checking if target is up-to-date: make.exe -q -f makefile Running command: make.exe -f makefile -------- begin -------- avr-gcc (GCC) 4.7.2 Copyright (C) 2012
Einschaltaugenblick zu sehen, dann nur noch die Artefakte ) Ich habe auch mit der Compilerversion avr-gcc (GCC) 9.2.0 versucht. Das Ergebnis war aber gleich. Vielleicht hatte jemand ein ähnliches Problem ? Danke im Voraus. Jan [Mod: C- und code-Tags ergänzt.]
-
Thread
Hilfe! AVR spinnt / macht was er will.
den Stack nichts mehr übrig. Besser man macht es so: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Array_aus_Zeichenketten_im_Flash-Speicher Gruß Jadeclaw.
unsigned char Buffa3[512];" ? Wurde doch schon gepostet: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Array_aus_Zeichenketten_im_Flash-Speicher
-
Thread
avr-libc: relocation truncated to fit
8k Eine weitere Möglichkeit zur Umgehung bestimmter libgcc-Funktionen wäre die Funktionen in den gcc-optabs umzubenennen; das geht schmerzfrei im AVR-Teil. Dann wäre immer noch eine __addsf3 in libgcc, aber avr-gcc würde Aufrufe zu zB __avrlibc___addsf3 ausgeben, falls zB nicht -mno-avr-libc gesetzt
> Eine weitere Möglichkeit zur Umgehung bestimmter libgcc-Funktionen wäre > die Funktionen in den gcc-optabs umzubenennen; das geht schmerzfrei im > AVR-Teil. Ehrlich gesagt: lieber wäre es mir, wenn wir die Autoren der avr-libc- Funktionen davon überzeugen könnten, das wirklich dem GCC-Projekt
-
Thread
LCD EA W204B-NLW
versaubeutelt" werden. Deswegen habe ich mich da auch noch nicht ran getraut. Was hat das mit der Optimierung immer auf sich und wo find ich die im Atmel Studio 6.1? Danke
nehmen muss??? Vielen Dank Das kann ich dir nicht ausführlich erklären, aber bei diesem link http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html wird es erklärt. Leider alles Englisch.
-
Thread
Was macht der Compiler bei Rechnungen mit defines?
auch gar nicht in > der Frage. Sondern ob der Kompiler (10/2) ausrechnet, oder nicht. Ja (bei GCC). > Oder macht das auch der Präprozessor Nein. Der macht Textersatz. Ist "10/2" der gleiche Text wie "5"? Um das Prä-Compilat erzeugen (bzw. nicht löschen zu lassen) geht mit GCC etwa gcc -g3 -save-temps main.c
-
Thread
AVR-ISR Assembler ohne Flags zu benutzen
persönliche Meinung. P.S. Es gibt auch effiziente Ringbuffer-Implementationen, die solche Optimierungen bzgl. Bufferlänge = Zweierpotenz gar nicht brauchen.
dass sie problemlos auf ein paar Register verzichten > könnten warum haben "die Wichser" beim gcc dann -ffixed-<register> erfunden?
-
Thread
C Übergabe mit Zeiger
es ein Bug von AVR Studio? Wenn dann wäre es ein Bug im Compiler (und nicht in der IDE), also dem GCC, und das ist (wenn auch nicht ganz ausgeschlossen) eher unwahrscheinlich. Such mal hier im Forum nach Bug und GCC. Fast jeder behauptet erstmal, das muss ein Bug im Compiler sein,... und praktisch
jedes Mal stellt > sich raus, das es doch kein Bug im GCC ist. Ja klar im Compiler. Ich weiß garnicht das AVR-Studio gcc nutzt. Ehrlich gesagt kann ich es mir auch nicht vorstellen, aber an was liegt es dann? > Mit welchen Compiler flags compilierst
-
Thread
switch() Merkwürdigkeiten
Das muß eine GCC-spezifische Sache sein. Hab eben mal in mein IAR-Programm geschaut. Der macht das nicht. Michael
"Das muß eine GCC-spezifische Sache sein." Ja stimmt, deshalb hab ichs ja im GCC-Forum geschrieben :-) Um genau zu sein, es ist der AVR-GCC Version 3.3.2 Peter
-
Thread
ADC Channelauswahl
und y und sonstigem Schnickschnack. Aber: All das steht doch auch so im ADC-Teil, der im [[AVR-GCC-Tutorial]] verlinkt ist. Inklusive einer funktionierenden Routine, die einen beliebigen Kanal (und damit auch 2 verschiedene hintereinander) abfragen kann. Hast du da schon mal reingeschaut? [[AVR-GCC-Tutorial
, wo du Zeitprobleme hast * und dann, wenn feststeht, dass du in einem bestimmten Bereich Optimierungen brauchst, dann fang mit Optimierungen an. Premature optimization is the root of all evil
-
Thread
Grundsätzliche Frage zu Compilern / Arduino IDE im besonderen.
Schalte mal die Optimierung vom Linker ein, dann werden nur noch die verwendeten Funktionen eingebunden.
/ ist. <http://www.rapidtables.com/code/linux/gcc/gcc-l.htm> Der Sinn davon ist Compilerlaufzeit zu sparen (bei popeligen uC Projektchen nicht relevant) und Qualitätssicherung: eine einmal auf Herz und Nieren, also Funktion und Laufzeitverhalten
-
Thread
WINAVR und CarryFlag
könnte. Aber wenn eine Funktion nicht mindestens 10% der CPU-Zeit verbraucht, lohnt sich eine Optimierung in den seltensten Fällen.
. Siehe [[Soft-PWM]], dort lohnt sich eine Optimierung nur in der ISR. MFg Falk
-
Thread
GCC AVR Fehler
Hallo! Ich habe da ein dickes Problem im GCC AVR gefunden. Ich will einen String nach einer Reihe von Schlüsselwörtern durchsuchen. Wenn die Schlüsselwörtern im Ram stehen und unter verwendung von strcasecmp geht das auch wunderbar. Kommen
kennt. Bei Strings[i] geht das dann klarerweise nicht mehr. > Ich habe da ein dickes Problem im GCC AVR gefunden. Wider nix. War doch nur ein Programmierfehler. (Das Umcasten von cliline_ram auf const char* kannst du dir sparen. Das const ist an dieser Stelle die Zusicherung der Funktion, dass
-
Thread
Beim Byte die Bits am schnellsten umsetzen.
Anwender benutzt, beschränke ich mich im wohlverstandenen Eigeninteresse auf die Auswahl und die Optimierung von Algorithmen, die mit üblichen Architekturen möglichst gut harmonieren. Alles, was darüber ist, ist vom Übel. > ist man nicht gezwungen alles in Assembler-Mnemonics zu > schreiben
Für den AVR: https://gcc.gnu.org/onlinedocs/gcc/AVR-Built-in-Functions.html __builtin_avr_insert_bits (0x01234567, bits, val) wird zu [code] bst r0,1 bld r18,7 bst r0,2 bld r18,6
-
Thread
AVR-GCC: Wie float im Flash?
Ich muß einen float aus dem Flash auslesen, leider gibt es aber nur pgm_read_dword und damit kriege ich folgende Warnung: DISPLAY.C:35: warning: dereferencing type-punned pointer will break strict-aliasing rules Der Code: [c] float gain_uout; *(long*)&gain_uout = pgm_read_dword( EEP_GAIN_UOUT ); [/c] Wie kann ich die Warnung beseitigen? Peter
-
Thread
Attiny Speicher zu knapp
Ist hier beschrieben http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmspeicher_.28Flash.29
stimmt was du da erzählst dann benutzt du einen miesen Compiler oder machst böse Dinge (keine Optimierung, nicht-konstante Delays usw.). Denn auch mit dem GCC kann man den Code aufblähen aber dann hat man definitv etwas falsch gemacht. gruß cyblord
-
Thread
C: Zuweisung von 2 Variablen auf einmal
nur einmal vorhanden sein wird, wenn du das in zwei Zeilen aufteilst (ausgenommen, wenn man die Optimierung ganz deaktiviert).
Gerald K. schrieb im Beitrag #6694742: > Der Aufruf war in beiden Fällen: gcc -S test.c dann füg mal noch ein -O ein
-
Thread
__flash und memcpy
address space '__flash' to address space 'generic'" Wie macht man es richtig?? Compiler: avr-gcc
{ *(uint8_t *) dst++ = *(const __flash uint8_t *) src++; } } [/c] Compiler avr-gcc 4.7.2 Optimierung: -Os
-
Thread
Ist das ein Bug im Compiler?
K. schrieb im Beitrag #3857496: > Virtuelle Maschinen > sind da ungemein praktisch. für einen GCC aber etwas übertrieben. Bei mir gibt es in jede Projekt ein Batchfile, das setzt einfach die passenden Umgebungsvariable zum GCC. schon kann ich mehrere Projekte mit unterschiedlichen GCC verwenden
abgeben dass immer etwas verlässliches herauskommt, aber soweit ich weiß > - und wie man sieht! - tut GCC das nicht. Doch, gerade GCC _tut_ es :-) Und das wird auch im Kleingedruckten zugesichert: "Most frequently reported non-Bugs" https://gcc.gnu.org/bugs/#nonbugs >> [...] To fix the code
-
Thread
Vorstellung und gleich eine Frage
/articles/AVR-GCC-Tutorial#EEPROM > aber irgendwie mag er entweder nichts ins > eeprom schreiben, oder aber nicht auslesen Wie könnte man wohl rausfinden, welches der beiden Szenarien zutrifft? Du musst dringend
oder verlierst du den Inhalt nach dem ein / ausschalten ? @ Karl Heinz, warum sollte man immer die GCC Lib verwenden ? ich seh dafür keinen Grund.
-
Thread
64 Bit float Emulator in C, IEEE754 compatibel
Maxim B. schrieb im Beitrag #5916664: > Ich finde es nicht normal, daß in GCC double wie float behandelt wird. Nicht GCC allgemein, sondern das ist eine Konfiguration von AVR-GCC. Derjenige, der damals die GCC-Portierung für den AVR vorangetrieben hat, sah offenbar zum damaligen
in Ticks: von ~11500 auf ~7000 - 84 Byte eingespart Ist als V1.1.4 released. Die push/pop-Optimierungen via gcc-prologue habe ich da noch nicht drin. Die möchte ich in Summe in ein Release einsteuern, wo ich in Summe nochmal doppelte Code-Stellen rauswerfe.
-
Thread
Linker-Problem
=gnu99 -DF_OSC=3686400 -MD -MP -MF .dep/main.o.d main.c -o main.o Linking: main.elf avr-gcc main.o --output main.elf -Wl,-Map=main.map,--cref -lm /usr/lib/gcc/avr/3.4.3/../../../../avr/lib/crts8515.o(.init9+0x0): In function `__bad_interrupt': ../../crt1/gcrt1.S:104: undefined reference
ffreestanding noch compilieren und linken, aber dann vermasselst du dir eine ganze Reihe an möglichen Optimierungen.
-
Thread
STM32F030 Problem mit GPIO
wenn man ohne Optimierungen kompiliert dauert das delay vermutlich minuten. Hast du so lange gewartet beim testen?
wie ich das mit OpenOCD mach. Programmierer schrieb im Beitrag #3869183: > wenn man ohne Optimierungen kompiliert dauert das delay > vermutlich > minuten. Hast du so lange gewartet beim testen? Ich hab gcc gesasgt, das er auf Größe optimieren soll ("-Os"). Ausserdem hat ich ihn ne weile neben
-
Thread
Arduino RAM sparen mit PROGMEM und strcpy_P()
verändert werden darf und somit darf der Compiler/Linker das auch annehmen und entsprechende Optimierungen durchführen.
aber er ist offenkundig noch immer zu doof dazu. Der arm-gcc kann diesbezüglich einiges besser, als der avr-gcc. Vermutlich hat es damit zu tun, dass AVR spezielle Befehle für den Zugriff auf den Flash Speicher brauchen, die gängigen ARM Controller aber nicht
-
Thread
2x 7 Segment Anzeige - Multiplexen mit HF lässt Board ausgehen?
bei Trost ist, schmeisst dir so eine Schleife wegen groben Unfugs raus. Du bist auf einem AVR mit gcc. Da gibt es eine Funktion _delay_ms() http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29 Auch wenn das so nicht bleiben wird, um zu warten ist das der Weg denn
eigentliches Problem. _delay_ms liefert nur dann einigermassen richtige Wartezeiten, wenn die Optimierung aktiviert ist. Also -Os anstelle von -OO Wenn der Compiler dann immer noch, aufgrund -ansi, ein paar Warnungen wirft, müsste man sich die einmal ansehen. Ich schätze mal, dass sich der Compiler
-
Thread
ATMega88 Umwandlung IAR -> GCC
www.atmel.com/products/AVR/mc/) Allerdings hänge ich gerade bei der Umwandlung der IAR-Befehle in gcc-Befehle. Wie müsste die folgende Zeile für den GCC aussehen? [c]__flash const uint8_t sineTable[SINE_TABLE_LENGTH * 3] = { . .(hier stehen die Tabellendaten) . .[/c] Wenn ich die zu
oben), _keine_ RAM-Adresse (das wäre ZL bzw. R30 :( ), also vermutlich besser 0x1e + 0x20 = 0x3e beim GCC benutzen, sorry falls ich verwirrung gestiftet haben sollte -hth, Jörg
-
Thread
IAR-Compiler
umgesetzt. Aber der Asm-Code führt nicht die mit dem C-Code programmierte Funktion aus. Stell ich die Optimierung aus klappt es. Danke für Eure Antworten, Grüße Timo //--- Includes: #include<inavr.h> #include<io8515.h> //--- Macros: #define ClearBit(ADRESS,BIT) (ADRESS&=~(1<<BIT)) #define SetBit(ADRESS,
wert! Der Editor wird z.B. von UltraEdit um Längen geschlagen. Der Compiler ist wohl nur ohne Optimierung brauchbar... Also wohl GCC. Leider ist die Doku zum GCC nicht so sehr berauschend. Zumindest fand ich nix, mit dem ich innerhalb von einer halben Stunde ein lauffähiges HEX-File und OBJ-File machen
-
Thread
Ab wann lohnt sich ein 32bit Controller? Compilerkosten?
unnötig oft ausgeführt. > Soweit ich weiß sind die 32bit Compiler extrem teuer. oder? Den GCC gibts doch auch für 32-Bitter (z.B. ARM Cortex M3), aber manchmal ist er etwas kniffelig zu installieren und zu konfigurieren, ehe er läuft. Eine ähnlich sorgenfreie Ready-to-run Installation, wie
übrigen, Optimierung kostet auch Zeit. Und was nützt es 3 Euro bei den Komponenten zu sparen, wenn ich dafür eine Woche länger brauche, bis alles zu meiner Zufriedenheit läuft? Und nicht zu vergessen. Hat man sich
-
Thread
AVR + 47HC164 Code-Optimierung
Originalversion 24-27 Takte (datenabhängig) pro Iteration, die modifizierte Version 23 Takte (gcc 4.3.4). Nicht wirklich der Brüller. Ergibt zusammengerechnet also an die 200 Takte. Mit -O3 sind es jedoch für alle 8 Iterationen insgesamt nur knapp 90 Takte.
"r" (dC), "r" (dD), "r" (dE), "r" (dF) ); } [/c] Damit ist die Optimierung nun offiziell abgeschlossen ;-)
-
Thread
ATmega 1284P PA4 geht nicht
Um möglichst viele Fehlerquellen auszuschliessen, habe ich alle includes vermieden und keine Optimierung verwendet. Wir haben es mit mehreren 1284 und einem 644 getestet. Sowohl mit Atmel Studio 5 als auch Atnmel Studio 6 kompiliert. Auf zwei verschiedenen Boards ausprobiert. Mit externem 12 MHz Quarz
flackern > die Ports deutlich sichtbar vor sich hin. Du bist nicht Rainer Z. Er hat die Optimierungen vielleicht an gelassen.
-
Thread
Popelige Rechnung oder doch nicht?
LDI R31,0x00 Load immediate --- C:\home\tools\hudson\workspace\avr8-gnu-toolchain\src\gcc\gcc\config\avr\libgcc.S 1: 0000001E 02.c0 RJMP PC+0x0003 Relative jump 1: 0000001F 05.90 LPM R0,Z+ Load program memory and postincrement
RJMP PC-0x0009 Relative jump --- C:\home\tools\hudson\workspace\avr8-gnu-toolchain\src\gcc\gcc\config\avr\libgcc.S 1: 00000043 97.fb BST R25,7 Bit store from register to T
-
Thread
Wittig W2000 mit Sourceforge.net
ist sie komplett. Vielen Dank für eure Mithilfe! Sorry, ich in blutiger Linux-Anfänger. Mit Gnu-Gcc Make usw. hab ich schon einiges gemacht und das ist zum Glück unter Linux gleich... PS: Warum ist die TomCat.flash Datei um 400kb kleiner als die von Welec? Da fehlt doch noch ein ganzes Stück Code
Ich habe gerade die Datei: cdk-nios-gcc_all_3.1-20040330_i386.deb.zip in die Google-Group gestellt. Link Google-Group: http://groups.google.com/group/welec-dso Link Google-Group Files: http://groups.google.com/group/welec-dso/files
-
Thread
Nicht genutzte globale Variablen werden wegoptimiert
Hallo GCC-Gemeinde, ich bin gerade auf ein sehr merkwürdiges Problem gestoßen. Und zwar werden globale Variablen, die ich in meinem Programmcode nicht explizit verwende, nicht richtig initialisiert, d.h. mit
nicht probiert, das wäre aber eh eine mehr oder weniger unbefriedigende Lösung. Ach ja: Die Optimierung ist natürlich aus, hier meine GCC-Argumente aus dem Makefile: [code] C_FLAGS = -mcpu=cortex-m3 -mthumb -O0 -gdwarf-2 \ $(patsubst %,-I%,$(INC_DIRS)) -I. \ -std=gnu99 \
-
Thread
EEPROM Schreibfrequenz auf eine Adresse
Montag das asm File dann wirst es ja sehen. Übrigens verwende ich den Codevision Compiler und nicht den GCC
Micha schrieb im Beitrag #2146235: > Dein Hex funktioniert. Unterschied könnte noch die Optimierung sein. Was hast Du? -O, -Os, -O2? Welchen Optimierungsgrad hat Peter benutzt?
-
Thread
cannot read spec file 'device-specs/specs-atmega4808'
" ignoring duplicate directory "c:/avrtoolchain/avr-gcc-9.1.0_mingw32/lib/gcc/../../lib/gcc/avr/9.1.0/include-fixed" ignoring nonexistent directory "c:/avrtoolchain/avr-gcc-9.1.0_mingw32/lib/gcc/../../lib/gcc/avr/9.1.0/../../../../avr/sys-include"
\Atmel\ATmega_DFP\1.3.300\include c:\avrtoolchain\avr-gcc-9.1.0_mingw32\bin\../lib/gcc/avr/9.1.0/include c:\avrtoolchain\avr-gcc-9.1.0_mingw32\bin\../lib/gcc/avr/9.1.0/include-fixed c:\avrtoolchain\avr-gcc-9.1.0_mingw32\bin\../lib/gcc/avr/9.1.0