-
Thread
[C] Struktur ist zu groß
gcc 4.7.2 x86-64: 14 gcc 4.8.1 ARM: 14 gcc 4.7.2 AVR: 14
Es gibt in GCC eine Warnung -Wpadded.
-
Thread
XMC4700 Linker Fehler
Hallo, auf dem Infineon Mikrocontroller XMC4700 benutze ich den ARM GCC Compiler. Der Linker erzeugt folgende Meldung: ld.exe: address 0x802001c of TestAppl.elf section `.abm' is not within region `FLASH_1_cached' Auszug aus dem Linkerscript File: [c] MEMORY
Heute Nachmittag habe ich den Compiler auf Optimierung eingestellt. Der Linker hat da nicht gemeckert allerdings hat das Programm nicht so richtig funktioniert. Sollte man das Compilieren wenn möglich ohne Optimierung durchführen?
-
Thread
mega8 Flash Verwirrung
beim überfliegen des Codes kann ich keine entsprechenden entdecken. Auf was steht die Code optimierung?
hohe Speicherdarf nicht nachvollziehbar In den lcd-routinen wird _delay_ms() benutzt, ohne Optimierung zieht das die float-libs mit rein. Oliver
-
Thread
Funktion mit gleichbleibender Ausführungszeit
hohem Aufwand mit einem Timer machbar. Moegliche Alternative: Funktion in eigene Datei und ohne Optimierung nur diese Datei kompilieren.
Beitrag #4177562: > Linker optimieren nicht. Tun sie sehr wohl. Und nicht erst seit gestern. Die gcc Toolchain kann's seit 2005: http://hubicka.blogspot.de/2014/04/linktime-optimization-in-gcc-1-brief.html Aber auch das dürfte bei diesem Beispiel keine Rolle spielen, da gibt's nach dem Compilieren
-
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
delay Funktion arbeitet falsch??
ausgeben. Dafür empfiehlt sich die CTC-Betriebsart des Timers (falls vorhanden). s. a.: [[AVR-GCC-Tutorial]]
was meint ihr mit Optimierung?
-
Thread
uint32_t => float (32) ohne cast!
Johann L. schrieb im Beitrag #5111439: > macht avr-gcc -Os man sollte die Funktionen aber schon aufrufen.
Johann L. schrieb im Beitrag #5111439: > Dieses "Type Punning per Union" wird zwar von GCC unterstützt (steht > irgendwo im Kleingedruckten), konformes C ist es aber nicht. Seit C99 schon, und das ist doch default beim GCC.
-
Thread
GCC ARM Cortex-M3: Merkwürdiger Assembler Code von C++-Routinen
(ich verwende Sourcery G++ Lite): arm-none-eabi-gcc -o test1.o -c -DSTM32F10X_MD_VL -DUSE_STDPERIPH_DRIVER -Wall -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -fno-inline -ffunction-sections
Hallo, ohne -fpack-struct wird daraus bei mir (Sourcery gcc version 4.6.1): [code] movs r3, #17 str r3, [r0, #0] [/code] mit -fpack-struct erhalte ich das selbe Ergebniss wie du.
-
Thread
C Compliler für EFM32 von Energy Micro
ein bisschen was mit inline-Funktionen & Assembler basteln, aber an sich gehts schon. Wie gesagt, GCC braucht halt etwas Anpassungsarbeit. > Pragmas Die GCC-spezifischen Pragmas logischerweise (die sind ja immer Compiler-spezifisch) > kompakten Code? Und wie, die Optimierungen sind krank... > Wohl eher doch nicht. Wohl doch! > Also: GCC oder nicht - es kommt drauf an, was man machen will. Eher wie faul man ist...
-
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
C++ Speicherfehler finden
;-) Naja, gdb zum Beispiel wird dann ziemlich böse. In der Regel reicht aber die Debug-Option von gcc schon, damit es scheppert.
ich noch mitbekommen und oben auch geschrieben. Aber hat er in den letzten Jahren auch bei der Optimierung/Codegenerierung zugelegt? Mein letzter Stand ist der, dass er dabei mit dem GCC etwa gleichauf war. XTerminator schrieb im Beitrag #2517151: >> Den Intel-Compiler würde ich als den aktuell
-
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
etwas akademische Frage zu C
ersten Mal im Draft N1516 vom 4.10.2010, also relativ spät auf. Vermutlich wurde das Verhalten des GCC erst daraufhin geändert.
PORTB = 1; } [/c] Das Inkrement wird hier trotzdem als 16-Bit-Operation ausgeführt (AVR-GCC 6.2.0). Es würde aber nichts gegen so eine Optimierung sprechen. Vielleicht kommt sie ja in Version 7 :) Edit: Auch die Abbruchbedingung i<=255 statt (i<256) ändert nichts daran.
-
Thread
SPIEN disable
mcucsr = MCUCSR; mcucsr |= (1 << JTD); MCUCSR = mcucsr; MCUCSR = mcucsr; Bei abgeschalteter Optimierung tat sich auf allen vier JTAG-Pins nichts. Bei optimaler Optimierung (-0s) hatte ich das gleiche Resultat wie bei der ersten Variante, nämlich dass der TCK-Pin funktioniert hat, die übrigen drei
ATmega32 schrieb im Beitrag #3206119: > Bei abgeschalteter Optimierung tat sich auf allen vier JTAG-Pins nichts. Das ist nicht verwunderlich, weil dann die zeitlichen Randbedingungen für JTD nicht eingehalten werden. > Bei optimaler Optimierung (-0s) hatte
-
Thread
ARM Cortex M4 Assembler
chris_ schrieb im Beitrag #6586996: > Weiß jemand, wie man aus dem GCC einen Assembler Abschnitt aufruft und > wie die Parameterübergabe aussieht? Mit Inline Assembler kannst du alles so aufrufen, wie es dir beliebt. https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html
Der gcc arbeitet auch mit Assembler Files .s Ich benutze das bei einem Bare-Metal Projekt für den Startup-Code. https://stackoverflow.com/questions/7190050/how-do-i-compile-the-asm-generated-by-gcc gcc
-
Thread
IVEL bei mega32 lässt sich nicht setzen
HelpUrl: Installed Packages: AVRGCC - 3.4.1.95 AVR Toolchain 8 Bit Version: 3.4.1.830 - GCC 4.6.2 Package GUID: a3796ad3-98fe-4e60-bd15-57100d343560 Company: Atmel HelpUrl: AVR Toolchain 32 Bit Version: 3.4.1.348 - GCC 4.4.3 Package GUID: a3796ad3-98fe-4e60-bd15-57100d343560 Company
GELÖST .... zum debuggen hab ich die optimierung auf null -O0 gesetzt/ausgeschalten. übers disassembly sieht man jedoch im code, dass das setzen des flags nicht innerhalb von 4 zyklen passiert bei optimierung -O2 beschränkt sich das setzen
-
Thread
avr-gcc: __DATE__ formatieren / "initializer element is not constant"
kommt mit nur 1 Quelldatei aus, nichtmal ein .ino: die (GUI)IDE (oder Make) macht daraus mehrere gcc Aufrufe. Niemand ist brav und artig, also auch nicht vor 23:59 im Bettchen. Also läuft irgendwann ein Buildvorgang über den Zeitpunkt der Datumsänderung: ein gcc Aufruf davor, ein gcc Aufruf danach
welches anschließend im Zuge der Optimierung infolge Nichtverwendung wieder weggeworfen werden kann.
-
Thread
Variablenfreigabe for-Schleife
deklararierten Variablen hinter der for-Anweisung fortgesetzt worden ist. Entsprechend gab es auch mal eine GCC-Version, die das so implementiert hat, aber meiner Erinnerung nach war das damals wirklich nur in C++ implementiert, der C-Compiler vom GCC hatte das nie als Erweiterung -- außerdem ist das alles
nein, ist ja nicht so das ich mir das ausgedacht habe. Es gibt auch noch > mehr Compiler als den GCC. Nun ja, hier ganz oben drüber steht: >Forum: GCC Aber gut, ich verbessere mich: Das Verhalten ist in C immer eindeutig definiert. Das gilt natürlich nicht für Compiler, die eine C-ähnliche
-
Thread
dev-c++ konfigurieren (WinAVR)
Beim Code::Blocks-Team ist anscheinend auch der ein oder andere Entwickler von dev-C++ mit dabei. AVR-GCC wird von Code::Blocks auch direkt unterstützt.
du dir irgendwo über ein Array hinausschreibst oder ähnliches. Unter Code::Blocks wird wohl ne Optimierung eingeschaltet sein (O1, O2, O3, Os), während bisher nicht. Ohne Optimierung kann es sein, dass an beliebiger Stelle PaddingBytes eingefügt werden, was dazu führt, dass du ohne Optimierung in diese
-
Thread
AVR-Studio 4.19 und JTAG ICE MK2 unter Windows 11 64 Bit installieren
Harald K. schrieb im Beitrag #7856793: > Zum Microchip Studio gehört eine freie gcc-Version, die man einfach so > nutzen kann Falls du die XC8 Toolchain meinst: Darin hat Microchip einige Optimierungen entfernt, um sie als "pro" Version gegen extra Geld zu verkaufen: -O2, -O3,
man wird nicht gezwungen, XC8 zu verwenden. Der gcc kennt natürlich all' die Optimierungsoptionen.
-
Thread
Komplexes Problem: C++ xml Server und Tomcat Java (forwarding SOAP xml Requests)
mit CppCheck und PVS-Studio - Quelltext einfach unter Windows/Linux prüfen -AdressSanitizer aus dem gcc/clang (ab gcc 4.8 unklar ob für AIX verfügbar) und/oder Valgrind für Runtime-Analyse -direkte manuelle Analyse des Codes also mal Fakten auf den Tisch: 1. Welche C/C++, AIX/Linux Erfahrung hast
PVS-Studio - Quelltext einfach unter > Windows/Linux prüfen haben wir > -AdressSanitizer aus dem gcc/clang (ab gcc 4.8 unklar ob für AIX > verfügbar) > und/oder Valgrind für Runtime-Analyse > -direkte manuelle Analyse des Codes Analysiere gerade den Java Teil, inkl. statischer Code Analyse, manuelle
-
Thread
Günstiger Anfang mit ARM Gesperrt
noch etwas? Wie sieht es da im Linux-Umfeld aus? (habe irgendwo hier gelesen, dass man den Standard gcc mit entsprechenden Parametern wohl auch Binaries für Cortex M0 erzeugen lassen kann) Danke auch noch für weitere Tipps. Michael
Beitrag #4057548: > Langsam ist es genug mit dem Getrolle... Yep, dann hör doch auf damit. GCC gibt's auf jeden Fall schon länger als Openoffice, und auch OpenOCD gibt es schon so lange, wie Keil beispielsweise zu ARM gehört.
-
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
40 Bit in 5 Bytes abbilden mit Bitfeld
jetzt geklärt wäre, noch was anderes: Mathias G. schrieb im Beitrag #4801393: > } __attribute__((gcc_struct)) tx_data; ... ich glaube nicht, daß das Attribut gcc_struct auf ARM irgendwas (geschweige denn, was Sinnvolles) tut. Das würd' ich weglassen.
auch probiert - bringt nicht wirklich was. Ich habe es auch mal ausprobiert: Mit arm-none-eabi-gcc 6.2.0 und __attribute__((packed)) und ohne das gcc_struct-Attribut (das auf dem ARM sowieso keine Bedutung hat) ist die Struktur 7 Byte groß, d.h. es verbleiben keine ungenutzten Bits.
-
Thread
Probleme mit MISRA C
0x12345678 << 36 = 0x23456780 0x12345678 << 36 = 0 0x12345678 << 36 = 0 [/pre] Compiler ist der GCC für x86 mit -O2.
36&0x1f) = A<<4 führt. Da kann es natürlich je nach Compilerversion Unterschiede geben, ich habe GCC 4.5.1.
-
Thread
Byte über UART auswerten.
wenn man auf den HW-Multiplier verzichtet und sie durch Schiebeoperationen ersetzt, wie es der AVR-GCC-C-Compiler je nach eingestellter Optimierung auch macht. Welcher Weg im Einzelnen günstiger ist, entscheidet der Compiler). Bei anderen Prozessoren kann man dann z.B. über eine sukzessive Addition
.... Also nochmals vielen Dank an die Wahnsinnigen :D die beim AVR-GCC-Kompiler mitgewirkt haben.
-
Thread
8 Bit aus 32-Bit-Variable auswählen
Fragestellung nicht deine Umsetzung. Vielleicht kennst Du schon das Schlüsselwort UNION ? https://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html
Der Compiler versteht was ich will wenn die Optimierung eingeschaltet ist. Dann ist der Code kompakter als Assembler!
-
Thread
delay.h defekt
- Compiler optimierung geändet/ausgeschaltet Nicht ausschalten, einschalten.
Also Optimierungen hab ich alle ausprobiert -O0 bis -O3 und -Os Variablen sind jetzt alle volatile. Christian H. schrieb im Beitrag #1739309: > anzeige_7seg_zahl(startcounter); > _delay_ms(1000); > startcounter
-
Thread
Frage an W.S. wegen USB CDC Implementierung STM32F103
eingesetzt, um zu prüfen, dass der µC wirklich in UsbCharOut() hängt. jetzt kommt der Witz: Mit der Optimierung -O0 tritt der Fehler nicht mehr auf! Dafür meldet Windows jetzt bei -O1 und -O2 grundsätzlich bei jedem Anstecken, dass das Gerät nicht ordnungsgemäß funktioniert. Mein eigentliches Problem
aus core_cm3.h hat den Vorteil, dass es je nach Compiler die richtige Implementierung macht. Beim gcc ist das dann: [C] static __INLINE void __NOP() { __ASM volatile ("nop"); } [/C] Damit ist der Code dann auch unter Keil übersetzbar, der mit der gcc Syntax "asm volatile
-
Thread
"undefined reference" arm-elf-ld
"-Funktionen aus der "lib_AT91SAM7S64.h" betroffen sind. Ich vermute, dass der Compiler (gcc 4.10) ohne Optimierungen den Code einfach nicht entsprechend ersetzt. Gibts da ne Lösung (außer die inlines entfernen)? Vielen Dank
Jetzt geht es. Ich verwende übrigens den gcc 4.1 aus GNUARM unter Ubuntu Linux. Selbst kompiliert.
-
Thread
Download Code MSP430
Hallo, ich benutze den GCC+MSP-GCC-Downloader zum programmieren des Codes im MSP430. Der MSP ist mit 60 kByte Flash ausgestattet (MSP430F169). Wird der Code größer als 0x9000 löscht zwar der Downloader den Chip hängt aber bei
Sinn. Mein Eclipse schmiert auch gerne mal ab, wenn ich die Optimierung anhabe, und irgendwo in einer 3. Subroutine einen Breakpoint setze. Ist halt Open Source, das ist nicht unfehlbar sondern in vielen Sachen weit hinter richtig teuren kommerziellen Sachen wie
-
Thread
STM32F4: Umstieg auf Eclipse + GNU Arm Embedded Plugin
leider die Optimierungen flach, die in der Funktion verwendet werden. Gibt es bei 2. einen technischen Grund oder eine Abhilfe?
Hrmmm, in den Optimierungseinstellungen sehe ich, dass man noch den gcc als Treiber für den Linker einstellen muss und dass es auch Möglichkeiten gibt, der Maschinerie zu sagen, dass ein Objekt außerhalb der Projekt-Übersetzungseinheit nicht sichtbar ist... Vielleicht sind
-
Thread
ATTINY 433MHz Fuchssender mit akustischem Grillen-Sound
kleiner > geht es nicht So ist es! Welche Compiler version hast du verwendet? Setzt das Optimierung Os voraus, oder macht gcc das bei dir immer? Ich bin echt überrascht ...
version hast du verwendet? Alt. WinAVR20100110. (Never change a running system). > Setzt das Optimierung Os > voraus, oder macht gcc das bei dir immer? Ich bin echt überrascht ... Ob Voraussetzung dafür weiß ich nicht, ich nutze immer Os. Gerade ausprobiert: mit O0 und O1 macht er's umständlich.
-
Thread
Computed Goto's in C/C++
Assemblerprogrammierer mit Sicherheit keinen besseren Code programmieren kannst. Der wichtigste Ansatzpunkt für Optimierungen ist natürlich immer noch der Algorithmus.
Code zu debuggen, der anders ist als der Release-Code, darüber kann man streiten. Vor allem bei Optimierungen, die oft noch so manchen vorher unbemerkten Fehler zutage fördern.
-
Thread
STM32F4 mit gcc-arm-none-eabi
Zusammen, ich versuche ein STM32-E407 Development Board von Olimex mit STM32F407ZGT6 CPU mit der GCC ARM Embedded toolchain (gcc-arm-none-eabi-4_9-2015q4) zu programmieren. Compiler und Linker (beides gcc) rufe ich mittels Makefile auf. Debugging mittels GNU gdb (GNU Tools for ARM Embedded Processors
welches sich ebenfalls in dieser Struktur unter /Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/ befindet (Danke an Steffen Rose). Die CFLAGS habe ich aus dem Artikel ARM GCC hier im Forum (https://www.mikrocontroller.net/articles/ARM_GCC) aus dem Kapitel Compiler & Linker Flags --> "Ohne Optimierungen
-
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
Leon3 c Code Optimierung und Messung
kann, da weder gettimeofday, noch clock() etwas bringt? Die Auflösung ist immer zu hoch. Gibt es Optimierungen beim GCC die speziell für Sparc bzw. Leon3 sind. Was sollte ich beim Programmieren beachten, dass meine Software schneller ausgeführt wird. Kleine Funktionen "inline" kennzeichnen bzw. Variablen
ein Betriebssystem nicht eine Laufzeitumgebung, sprich linux ? , whatever ... Gaisler bietet ein gcc cross compiler + Toolchain(bcc), von der Sache mit allem was das Herz begehrt :D Für Geschwindigkeit würd ich den LEON3 Instruktion- Data Cache auf max, fahren + geeignetem caching Algorithmus parametriern
-
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
#ifndef geht nicht
schreibe, wird blub(); nicht compiliert und der Code wird entsprechend kleiner. Wenn ich das gleiche mit gcc mache sehe ich aber keine Größenänderung. Muß ich noch etwas voreinstellen?
Vielleicht mal Optimierung einschalten ( mit -Os ) ?
-
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
LPC2134 Startup Code bzw. "Blink Beispiel"
hatte ich zwar hauptsächlich mit dem Keil gearbeitet, aber ich hatte dann das Ganze auch noch mit dem GCC (Yagarto, Version hab ich vergessen) durchgezogen. Ein Linkerscript war dazu überhaupt nicht nötig. Guck dir einfach die "cccgcc.bat" an, dazu die zwei "compile_gcc.xcl" und "link_gcc.xcl". Sicherlich
obendrein ist der Code des GCC selbst bei heftigster Optimierung noch immer um 10..20% größer als der vom Keil. W.S.
-
Thread
GCC: Adresse einer bestimmten Codestelle
sondern im ELF-File als Label auslesbar sein. Eine erste Idee war, das "Label as value"-Feature des GCC zu verwenden, einen Pointer damit zu beschreiben und diesen dann während des Programmablaufs im z.B. Simulator auszulesen: [C] void *ptrLabel; int main(void) { // Label-Adresse in Pointer
z.B. durch eine (Pointer-)Variable. - wenn möglich ein Konstrukt, das nicht nur speziell für den GCC verwendbar ist. Irgendjemand eine Idee? Schönen Tag noch, Thomas
-
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
[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
Umstieg von Arduino auf "klassische" IC Programmierung
optimieren, das noch nicht mal funktioniert. Das ist Unsinn. http://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung >Mich stört >auch, dass ich eigentlich nicht weiß, was in diesen Labraries vor sich >geht und "es einfach funktioniert". Das ist der Sinn der Sache
kann ich optimieren? Was spare ich dadurch ein? Zeit? Geld?(Plus) Welchen Aufwand kostet die Optimierung? Zeit? Geld? (Minus) Dann stellst du fest, dass sich gerade für kleine Stückzahlen vermeintliche Optimierungen von ein paar kB Flash und ein paar Euro für ein Evalboard nicht lohnen! Extrem
-
Thread
Gibt es Zählerbausteine mit seriellem Ausgang?
Olaf schrieb: > Dann gibt es jetzt also einen gcc fuer Pics? Das ist naemlich meine > erste Forderung an einen neuen Controller. Microchip verwendet sowohl für die 16-Bit Schiene (PIC24/30/33) als auch für die PIC32 höchstselbst GCC als Basis ihres
Optimierung aus.
-
Thread
Kein Atmega 324A mehr in AVRDUDE?!
Hallo, genau da punktet Arduino und räumt mit ihren hochaktuellen avr-gcc 7.3.0 gnadenlos alles ab. Mal ernsthaft. Wenn damals Atmel und jetzt Microchip an der avr-gcc Entwicklung mitmachen würde, dann hätte auch jeder wie bei ARM aktuelle Toolchains zur Verfügung. Da
die eine oder andere Überraschung erleben. Und was die Codeoptimierung betrifft, wurden hier für gcc ja schon ein paar Beispiele aufgeführt, auch wenn sich die Diskussion dann etwas zerfasert hat.
-
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
GCC und LDS/STS auf Attiny10
Ich kämpfa gerade mit avr-gcc 4.7.2 und einem Attiny 10. Der Compiler weigert sich, die kurzen 8-bit LDS und STS für den Speicherzugriff zu nutzen, sondern erzeugt stattdessen einen indirekten Zugriff über das Z-Register. Das ist
ganze Reduced-Core-Kram liegt derzeit einzig und allein bei denen. Den patchen sie selbst in den GCC rein, und meines Wissens ist er nach wie vor in einem reichlich halbbackenen Zustand.
-
Thread
Register reservieren in avr-gcc
Hallo, ich möchte einzelne Register in avr-gcc fest verwenden. Dazu gibt es eine Syntax im Wiki-Artikel [[AVR-GCC-Codeoptimierung]]. Die habe ich auch schon vor Jahren erfolgreich verwendet. [code]register uint8_t more_flags asm("r2");[/code]
Funktionen, die für -mcall-prologues verwendet werden. Ist das garantiert? Auch für die Zukunft? Der GCC an sich verwendet diese Register ja schon.