-
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
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
Effizient Maske für höchstes gesetzes Bit berechnen?
Optimierungen vornimmt, auf die 99,9% der Assemblerprogrammierer nicht kommen würden.
Yalu schrob: >....dass der GCC mitunter Optimierungen >vornimmt, auf die 99,9% der Assemblerprogrammierer nicht kommen würden. Ich denke eher, daß die 0,1% in Deiner Rechnung fehlenden Leute zu 100% hier im Forum vertreten sind
-
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
avr-gcc Code im lss
hi, wenn man im AVR-Studio ein Projekt erstellt undkompiliert, dann findet man im Listing auch den C-Code als Kommentar wieder. Im Eclipse mit AVR-Plugin ist das leider nicht der Fall. Weiß jemand welche optionen für die Ausgabe des codes verantwortlich sind oder noch besser, wo ich das genau in den Projekt-Settings im Eclipse-Projekt umstellen muss? Danke Vlad
-
Thread
ATMega328P low power funktioniert nicht
eines Portbits mit einem sbi aufs PIN-Reg.. Den erhält man aber nur mit OR bei eingeschalteter Optimierung. Da dann nämlich kein RMW ausgeführt wird.
in einer Version so wie sich der Programmierer das vermutlich gedacht hat, und das auch erst seit GCC Version 2.X?, als die SBI-Optimierungen dazugekommen sind. Welches nun das "Richtige" oder "Falsche" Verhalten ist, mag jemand mit tiefem Verständnis des C-Standards entscheiden, mir jedenfalls ist
-
Thread
Wie kommt es, dass es Arm SoCs für unter 10 € gibt, aber keine x86 SoCs zum gleichen Preis?
, mit dem Befehlssatz befasst sich doch der Compiler. Die, die tatsächlich taktgenaue Assembly-Optimierung betreiben, lassen sich von der einfacheren (als x86) ARM-Assembly auch nicht schocken. x86 schrieb im Beitrag #4968008: > Die Compiler sind ebenfalls hochoptimiert. Und ARM-Compiler nicht?
vor 20 Jahren für x86 optimiert wurde macht doch heute keinen Unterschied mehr für ARM - solche Optimierungen sind heute standard in allen guten Compilern...
-
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
Compiler optimizations
Hallo, das Argument channel (function messung) wird nur übergeben, wenn ich die Compiler Optimierung auf -O0 schalte ... bei allen anderen Einstellungen wird mir immer nur 0 übergeben ... Das Ganze teste ich mit dem AVR Studio 5. Wenn ich das auf den uc übertrage, scheint es sich irgendwie anders
schnelle Hilfe! Vorerst kann ich mir mit volatile behelfen ... dann sehe ich trotz eingeschalteter Optimierung die Werte im Debugger ... Jetzt kann ich den eigentlichen Fehler suchen :-). Markus
-
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
C-Code optimieren (passt nicht in Attiny2313) :( Gesperrt
Probier mal -mcall-prologues Damit optimiert der GCC die Pushs/Pops von Funktionen, indem er sie mehrfach nutzt. Kann helfen.
C-Compiler in einem 2nd-Pass auf. Wenn man hier kein -Os angibt, wird im zweiten Durchgang ohne Optimierung übersetzt)
-
Thread
Tipps zur Speicheranalyse gesucht
Erhoffe mir Tipps wie man Fehler bei der Speicherallokation auf die Spur > kommt. Sanitizer? Im GCC -fsanitize= https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html
Beitrag #7972555: > Mit -Os ist der objdump auch noch gut lesbar, evt. besser als > ganz ohne Optimierung. Oder -Og
-
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
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
AVR für wenig Geld im LAN
Unterschiede zeigen. Wenn die Dateien sich komplett unterscheiden, vermute ich eher, daß Du eine andere GCC-Version verwendest als Kurt und/oder andere Optimierungs-Einstellungen.
>> Wenn die Dateien sich komplett unterscheiden, vermute ich eher, daß Du >> eine andere GCC-Version verwendest als Kurt und/oder andere >>> Optimierungs-Einstellungen. Wie kann denn ein Programm so von der Version und den Optimierungen abhängen?
-
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
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
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
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
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
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
AVR Flash Problem GCC
Hallo Leute, ich habe ein Problem mein mit Atmel Studio 6 erzeugtes Programm in den ATmega8 zu flashen. Er fängt mit dem Übertragen ja auch an, aber nach 192 bytes bricht er mit der Fehlermeldung ab: An error occured while executing command with ID 0x14. Timed out waiting for a response. 192 bytes was successfully received before the timeout. Protocol state at time of timeout was 'Get Data'. Ich vermute es liegt am Code. Nur das der Compiler nicht meckert. Habe leider kaum Erfahrungen mit Studio 6 wie man z.B. die Code Optimierungen ausstellt usw.... Es handelt sich um ein DCF77 Empfänger
-
Thread
STM32F7 GCC Speicherzugriff Optimierung
Hallo, Ich spiele grade an einem einfachen Ringbuffer auf einem STM32F7 rum. Hierbei habe ich festgestellt das der Mikrocontroller ein enorm hohen Teil (ca 50%) meiner "Rechenzeit" mit dem auslesen aus dem Buffer beschäftigt ist. Die aufzurufende Funktion gibt einen wert aus mit einem delay zurück und sieht folgendermaßen aus: #define BUFFER_SIZE 11499 float RingBufferDelay(int delay) { int offset = 0; if (delay< 0) offset = buffer.write + delay- 1; else offset = buffer.write - delay- 1; while (offset < 0) offset += BUFFER_SIZE; return data[channel][offset]
-
Thread
GCC cross compile / libgcc.a verweist in leeren speicher bereich
befehle weiter ein sprungbefehl und der zeigt ins leere. WARUM???? Ich habe diese Probleme mit dem GCC-4.6.3, GCC-4.7.0 und GCC-4.7.1 Was muss ich ändern? Die libgcc liegt als static vor "libgcc.a" Wenn ich den GCC-4.6.3 von codesourcery verwende gibt es kein Problem. Die Makefile und den linkerskript
Möglicherweise hat Dein eigenerzeugter Compiler andere arch- und cpu defaults wie der Codesourcery. GCC-Manual sollte Auskunft geben. Was sagt $ xxx-gcc -v? Bei CS kommt da: arm-none-eabi-gcc -v Using built-in specs. COLLECT_GCC=arm-none-eabi-gcc COLLECT_LTO_WRAPPER=/usr/local/CodeSourcery
-
Thread
ARM-Assembler-Tutorial
chris_ schrieb im Beitrag #6692459: > Genau an dem Punkt liegst du ziemlich falsch. Optimierung findet auf der > konkreten und nicht der abstrakten Ebene statt. Es gibt konkrete Optimierung auf Befehls- und Registerebene. Es gibt abstrakte Optimierung der Algorithmen (Theorie, à la Knuth
Strategie aufs falsche Gleis gesetzt, sitzt man vielleicht so tief in der Tinte, dass konkrete Optimierung für die Katz ist. Und es gibt dazwischen eine Optimierung der Algorithmen unter Berücksichtigung von Speicherzugriffszeiten und -Strategien aktueller Prozessoren (z.B. ist sequentieller Zugriff
-
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
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
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
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
AVR-install-skript?
hallo ihr fleißigen! könnt ihr mir sagen, ob, und wenn ja, wo es ein Skript für den avr-gcc gibt, das wie das hier im forum für den msp430 verwendet wird und alles benötigte für linux aus dem netz zieht und installiert? ich dachte da an simulavr, gcc, avr-libc, avr-gdb, uisp,... in möglichst
letztlich eine Übermenge des yacc. > aja, sind die versionen ok? ich habe mal aus verdacht den gcc4 > genommen! Nimm eine neuere Version des GCC, die Optimierung ist dort für den AVR deutlich besser geworden. Ich mache meine Projekte auf Arbeit nunmehr mit GCC 4.1.0. Wenn du latest+greatest
-
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
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
HINWEIS: abgekündigte Funktionen/Makros verschwinden bald
Böhmische Dörfer für mich! Im Endeffekt ist GCC ja nur ein Werkzeug. Ich würde zum Blech biegen auch den Hammer mit dem krummen 30cm Stiel nehmen. Mit dem kann ich eben gut. Auch wenn die EU "Normgerechte Hämmer mit 20cm Stiel, rot lackiert" vorschreibt
, Code wie foo |= BAR; foo &= ~BAR; zu verstehen, weil es halt generisches C ist. Wenn AVR-GCC nicht irgendwann mal die Krücke mit sbi und cbi und so gebraucht hätte, hätte die AVR-GCC-Gemeinde sicher auch gar keine Probleme damit, weil sie sich von vornherein an die natürliche C-Schreibweise
-
Thread
Code minimieren
Beitrag #5697984: > Ich möchte meine Skills ein wenig erweitern, was C sehr gut! > und die Optimierung und Minimierung anbelangt. Es ist gut, wenn Du Dich mit C, seinen Konstrukten und Möglichkeiten auseinander setzt. Was Du da aber betreibst nennt man Obfuscierung und hat mit Optimierung oder
modifizierten Quelltexte, mit denen der eigentliche Compiler gefüttert wird, kann man sich mit der gcc Option -E ausgeben lassen.
-
Thread
bestimmte gnu-arm-as Version im Netz finden
Du könntest hier schauen ob der da dabei ist: https://launchpad.net/gcc-arm-embedded/+series
2.24-"Kollegen" anders machen zu müssen. Vielleicht gibt es ja einen Schalter, der gewisse Optimierungen steuert?
-
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
AVR-GCC Linker linkt unbenutzte Teile
Hallo zusammen, ich bin gerade dabei, den Webserver von U. Radig so zu modifizieren, dass er mit einer von mir dafür abgeänderten Version von efsl (embedded file systems library) läuft und Webseiten von SD_Krate anzeigt. Ich mache daraus ein Projekt für AVR-Studio, d.h. ich habe alle notwendigen Files bereits importiert und efsl benutze ich nicht als Bibliothek, sondern direkt den Quellcode. Nun bin ich gerade an einer merkwürdigen Sache dran. Damit der Code möglichst klein wird, habe ich einige Optimierungen im Compiler, unter anderem -ffunction-sections -fdata-sections Im Linker
-
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
AVR ATMega8 Systementwicklung in C
Hallo Severino, sieh einmal hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial dort steht alles was Du bruachst und wissen muß um los legen zu können. Grüße Hans-Josef
erzeugen. Nur so kannst du schnell sehen wie groß das Programm wirklich wird. @ Peter >avr-gcc -g -Wall -Wstrict-prototypes -Os -mcall-prologues Siehe oben. Kleiner gehts kaum 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.
-
Artikel
ASM vs C
workarounds belegt werden müssen, oder mit neuen Generationen von Derivaten neue Möglichkeiten der Optimierung gegeben sind. Von solchen Optimierungen, die in neuere Compilerversionen einfliessen, kann man auf diese Weise quasi kostenlos profitieren. Ein Beispiel dafür: POVRay (mehrere Megabyte C++ Sourcecode) compiliert für P4 mit GCC 3.4.0 bringt gegenüber GCC 3.3.1 eine Leistungssteigerung von knapp 7%. Um diese 7% per Assembler-Optimierung zu erreichen würden wohl einige Tage Arbeitsaufwand nötig, sofern es überhaupt gelingt.
-
Thread
xmega Taktfrequenz
schrieb im Beitrag #5494536: > Warum habe ich solch lange Schaltzeiten bei 32MHz? Welchen Optimierungs-Level hast Du aktiviert? Poste doch bitte auch Deinen Compiler-Aufruf. Grüßle Volker Nachtrag: Ohne Optimierung funktioniert der Zugriff auf das geschützte Register für die Taktumstellung nicht, wird also aktiviert sein. Mein avr-gcc erzeugt für die Schleife folgenden Code .L3: std Z+5,r24 std Z+6,r24 rjmp .L3 Wobei jeder Assembler-Befehl 2 Taktzyklen benötigt und die Schleife somit 187,5ns benötigt
-
Thread
[AVR GCC] "Speicherfresser" finden?
https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung
Falles du es nicht eh schon machst. Den Compiler auf Codegröße optimieren lassen (gcc -Os) Details: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
-
Thread
[MSP430] Struct Daten auf FLASH Speicher dauerhaft sichern
Timing Problem habe ich über Wortweises schreiben gelöst. habe mal die Größe exakt bestimmt. mit optimierung also irgendwie passen zusammen gelegt ergibt das für TS_KEYS 17 Bytes und für TS_MUDOLE 18 Bytes + 20* TS_KEYS also insgesamt 358Bytes Ohne optimierung sind das TS_KEYS im schlechtesten fall
>habe mal die Größe exakt bestimmt. mit optimierung also irgendwie passen >zusammen gelegt ergibt das für TS_KEYS 17 Bytes und für TS_MUDOLE 18 >Bytes + 20* TS_KEYS also insgesamt 358Bytes >Ohne optimierung sind das TS_KEYS im schlechtesten
-
Thread
Schachcomputer
GCC ist ein freier C/C++ Compiler den man ueberall fuer alle Betriebssysteme herunterladen kann.
aber ich kann nur durch Probieren sehen, ob ich das wirklich durchziehe. Fangen wir mal mit c/c++ GCC an! Also was benötige ich C oder C++ und ist der GCC die Schnittstelle zum Prozessor oder das Entwicklungsprogramm? Gruß Duracell
-
Thread
Frage zu Pointern - AVR vs x86_64
Sieht jemand auf Anhieb einen Fehler? Ich nutze avr-eclipse, daher kein Makefile. [code] $ avr-gcc --version avr-gcc (GCC) 4.3.4 [/code] [code] $ gcc --version gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 [/code] Vielen Dank für die Ratschläge, ich vermute, dass es etwas sehr banales ist, aber
muss... Meine Assembler-Kenntnisse gehen leider gegen 0 :( Ich habe jetzt versucht, es ohne Optimierungen zu übersetzen (-O0) und da scheint es zu gehen!? Wo kann da in meinem Code der Fehler sein? Mir wird das langsam zu hoch ;)
-
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
-554 Byte = 1 Befehl?
einen Befehl weglasse(!) bzw. einen anderen konstanten Wert zuweise. Ich vermute mal, daß da die Optimierung des GCC nicht mehr kann, wenn der eine Befehl fehlt. Zusammengefaßt sieht es so aus: [C] main() { while(1) { if(...) { if(...) { } else { if(.
packe ich die Option -Wunreachable-code jetzt immer mit rein, hilft ja und Warnungen nehme ich beim GCC durchaus ernst.
-
Thread
avr-gcc 5.2 für Windows
--param ggc-min-heapsize=131072 COMPILER_PATH=c:/program files (x86)/gcc-5-avr-mingw32/lib/gcc/../../libexec/gcc/avr/5.2.1/;c:/program files (x86)/gcc-5 -avr-mingw32/lib/gcc/../../libexec/gcc/;c:/program files (x86)/gcc-5-avr-mingw32/bin/../libexec/gcc/avr/5.2.1/;c:/progra
lib/gcc/avr/5.2.1/../../../../avr/lib/avr5/;c:/program files (x86)/gcc-5-avr-mingw32/bin/../lib/gcc/avr/5.2 .1/;c:/program files (x86)/gcc-5-avr-mingw32/bin/../lib/gcc/;c:/program files (x86)/gcc-5-avr-mingw32
-
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.