-
Thread
Fühlt sich der gcc hier veralbert?
why-do-compilers-not-warn-about-out-of-bounds-static-array-indices > > "Enable optimization. Without at least -O2, GCC is not doing enough > analysis to know what a is, and that you ran off the edge." Das wäre jetzt auch mein Vorschlag gewesen, mal die Optimierungen einzuschalten. > WTF? -.- Wie meinst? Der
Rolf M. schrieb im Beitrag #8072654: > Das wäre jetzt auch mein Vorschlag gewesen, mal die Optimierungen > einzuschalten. Optimierungen sind eingeschaltet. [pre] $ grep "^:set make" ~/.vimrc :set makeprg=\(gcc\ -Wall\ -Wextra\ -pedantic\ -O3\ -std=c2x\ -save-temps\ -c\ %\ 2>&1\\\|tee\ errors
-
Thread
AVR: Watchdog löst keinen Interrupt aus
Jahrzehnte langer Verwendung von Interrupts - einem der zentralsten Themen in der uC Entwicklung - im avr-gcc immer noch ohne jegliche Warnung zur Weg-Optimierung einer globalen Variablen in einer ISR kommt. Es ist m.E. einfach nicht mehr zeitgemäß, dem Optimierer des avr-gcc da nicht eine entsprechende Regel
langer Verwendung von Interrupts > - einem der zentralsten Themen in der uC Entwicklung - im avr-gcc immer > noch ohne jegliche Warnung zur Weg-Optimierung einer globalen Variablen > in einer ISR kommt. Es ist m.E. einfach nicht mehr zeitgemäß, dem > Optimierer des avr-gcc da nicht eine entsprechende
-
Thread
STM32G484 USB CDC Code läuft nur wenn mit <= -O1 kompiliert
Version des GCC hast.
Wstrict-aliasing=3 -fno-strict-aliasing ``` hilft leider nicht. Aber diese Zeilen helfen: ``` #pragma GCC push_options #pragma GCC optimize ("O1") void InitEndpoints(void) { ... } #pragma GCC pop_options ``` Also exakt das gleiche Problem auch bei diesem Board.
-
Thread
Warum ist die USB/CDC Implementierung der Cube HAL so groẞ?
? Nick schrieb im Beitrag #8007084: > Sicherlich gibts auch eine komplett freie Toolchain. Der gcc sollte ja > wohl arm können. Also der GCC kann die CubeHAL kleiner kompilieren als der GCC der bei Arduino oder STM32CubeIDE mitgeliefert ist?
Niklas G. schrieb im Beitrag #8007090: > Also der GCC kann die CubeHAL kleiner kompilieren als der GCC der bei > Arduino oder STM32CubeIDE mitgeliefert ist? Quatsch. Hör endlich auf dir so wirres Zeug zusammen zu fantasieren. Ich habs schon mal
-
Thread
Digikey teurer, Vivado unter Jahresabonnement, kostenlose Compiler von Microchip uvam
Hallo, aha Danke. Mir war nicht bewusst das gcc die PICs nicht unterstützt. Ich dachte immer gcc unterstützt alles, weil jeder mitmachen kann. Vielleicht hätte sich Microchip aus jetziger Sicht lieber im gcc einbringen sollen. Wer weiß.
im Beitrag #8072251: > was ist denn überhaupt der Vorteil vom MPLAB X Compiler gegenüber dem > gcc? Soweit ich weiß gab es nie einen. Im Gegenteil: Die haben einige Optimierungen aus ihrer Kopie des avr-gcc entfernt, um sie gegen Lösegeld zurück zu bringen. Ich fand das schon immer sehr frech.
-
Thread
Mein neues C-Buch braucht ehrliche Kritik
verstärkt anzuziehen: > https://www.heise.de/news/Linus-Torvalds-wettert-gegen-Compiler-Collection-GCC-4-9-2268920.html > > Manche sagen "Ballast" andere sagen "Erfahrung". Das Torvaldsinterview ist aus dem Jahr 2014 und in Compilerversion GCC 4.9. GCC gibt es schon noch länger und es wäre interessant
> Respekt alter, Wow!!. Danke. > Wäre eigentlich nett (Wunschliste ;)) wenn ein wenig mehr gcc-asm-inline > mit drin wäre, denn da gibt es auch eher wenig oder eher unstandarsierte > oder didaktische Hilfe > (https://sys.cs.fau.de/lehre/ss22/bst/uebung/doc/extern/gcc-inline-assembly.html
-
Thread
Bizarrer Firmware crash - ATmega4808. Wie Debuggen?
angeht, so werden diese i.d.R in den Release Notes angekündigt sofern erwähnenswert: https://gcc.gnu.org/gcc-8/changes.html#avr https://gcc.gnu.org/gcc-9/changes.html#avr https://gcc.gnu.org/gcc-10/changes.html#avr https://gcc.gnu.org/gcc-11/changes.html#avr https://gcc.gnu.org/gcc-12/changes.html#avr https://gcc.gnu.org/gcc-13/changes.html#avr https://gcc.gnu.org/gcc-14/changes.html#avr https://gcc.gnu.org/gcc-15/changes.html#avr https://gcc.gnu.org/gcc-16/changes.html#avr https://gcc.gnu.org/gcc-17/changes.html
-
Thread
Günstiges und einfaches Mini-Controller Board, was würdet ihr heute nehmen?
int main(void) {' >> main.c > echo ' printf("Hello World!\n");' >> main.c > echo '}' >> main.c > gcc -o main main.c > ./main Noch einfacher: [pre] gcc -xc - && a.out #include <stdio.h> int main(void) { printf("Hello World!\n"); } ^D [/pre] Da die erste Zeile sowieso immer gleich
Beitrag #7993214: > die Zertifizierung für > sicherheitskritische Systeme, und höchste Compiler-Optimierung sind auch für gewerbliche Hersteller in den wenigsten Fällen notwendig. ciao Marci
-
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
"Memory Barrier" in C99
sorgen, dass entsprechende Funktionen siese Eigenschaft haben, etwa indem man interprozedurale Optimierungen deaktiviert.
angegeben oder Seiteneffekte beschrieben werden können, firmal existiert also noch nicht einmal eine GCC Memory Barrier wie asm("" ::: "memory").
-
Thread
Object Oriented Forth
Hab' vor Jahren mal eines für ein ST7735 1,8" TFT geschrieben. Hat einen Tag gedauert. Inklusive Optimierung.
Stackmaschinen mies aus. Der Punkt ist halt schlussendlich in der klassischen embedded Entwicklung der: GCC oder nicht GCC (oder dito LLVM). GCC ist aber klar auf Registermaschinen ausgelegt und 'kennt' die Forth-Denke nicht. Also bleibt praktisch gesehen Forth nur noch allenfalls fuer paralleles Multiprozessing
-
Thread
C mit Visual Studio Code
C-Compiler direkt als Extension in das VS Code einbinden und welcher ist empfehlenswert (gibt es dort GCC)?
Udo S. schrieb im Beitrag #8017595: > Ich persönlich würde ja den GCC Compiler, ggf. make und einen netten > Editor nehmen. VSCode ist nur ein Editor, sonst nichts. Ob nett, ist Ansichtssache. Und da unter Linux gcc und make dranzudengeln sollte man wohl hinbekommen
-
Artikel
AVR-GCC
aus dem svn kommen (svn co svn://gcc.gnu.org/svn/gcc/branches/branchname gcc ,mit branchname gcc-version-branch, aktuell ist gcc-6-branch) oder aus dem aktuellen trunk (svn co svn://gcc.gnu.org/svn/gcc/trunk). Die AVR-LibC: Download. Achtung
Einstieg in die Nutzung des avr-gcc unter MS-Windows mit WinAVR (englisch) AVR-GCC und Linux GCC-Forum auf mikrocontroller.net
-
Artikel
AVR-GCC-Tutorial
allem (aber nicht nur) den Abschnitt = Oft gestellte Fragen (und Antworten dazu). Den Artikel AVR-GCC in diesem Wiki lesen. Das GCC-Forum auf www.mikrocontroller.net nach vergleichbaren Problemen absuchen. Das avr-gcc-Forum bei AVRfreaks nach vergleichbaren Problemen absuchen. Das Archiv der avr-gcc
Warteschleifen) vorzuziehen, da leere Zählschleifen ohne besondere Vorkehrungen sonst bei eingeschalteter Optimierung vom avr-gcc-Compiler wegoptimiert werden. Weiterhin sind die Bibliotheksfunktionen bereits darauf vorbereitet, die in F_CPU definierte Taktfrequenz zu verwenden. Außerdem sind die Funktionen der
-
Thread
Systemnahe Programmierung in C (SPiC) Vorlesungsfolien, Übungen und Projekte
virtuellen Maschine ausgeführt. > [pre] > $ python > Python 3.13.7 (main, Aug 15 2025, 12:34:02) [GCC 15.2.1 20250813] on > linux > Type "help", "copyright", "credits" or "license" for more information. >>>> print("Hier auch?") > Hier auch? >>>> > [/pre] [pre] Python 3.14.0 (main, Nov 18 2025, 05:53:34) [GCC 14.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys; _ = sys.stdout.write("Ja.\n") Ja. >>> [/pre]
-
Thread
X86, Sparc, Arm und RISC-V in einem Schwung
CXXRTL-Variante davon baut, und wie schnell sie laeuft. Plus, wie es dann mit den Regressions-Tests (GCC et al) aussieht.
auf einem 166MHz AMD sind kaum hinzubekommen. Ich hatte mich damals mit den AMD-spezifischen Optimierungen befasst. Deshalb stutze ich auch, als da nun plötzlich Win98 bootet. Wenn man realistisch ist, kann man einen DX66 mit Win31 in einen FPGA packen, sammt COPRO-Funktionen und den entsprechenden
-
Thread
Programmieren mit KI
Flag noch nie > gebraucht! Hast du halt "Glück" gehabt und benutzt wahrscheinlich "ältere" AVR-GCC. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523 Niklas G. schrieb im Beitrag #8028325: > Was würde es hochgerechnet pro Monat kosten wenn man dieses Pensum > täglich umsetzt? Das ist eines
schrieb im Beitrag #8028325: > Sicher dass es *false* Positives sind?! Siehe zum Beispiel https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56456 Ein GCC Maintainer bezeichnete -Warray-bounds mal als "broken by design". Ähnlich ist die Lage bei -Wstringop-overflow https://gcc.gnu.org/bugzilla/show_bug.cgi
-
Artikel
Avr-gcc Bugs
Useless code generated for stack / register operations 12.3 92729 Switch from cc0 to CCmode so avr-gcc can be kept in GCC v11+ 11.0 82658 Right-shifting 8-bit unsigned integers. 10.0 92055 Support 64-bit double 10.0 86040 RAMPZ not cleared after reading from __flashN 9.3, 8.4, 7.5 85805 Wrong code for
epilogue on naked function 4.5.3 41885 Rotate patterns do not correctly consider overlap. 4.5.0 Weblinks. gcc.gnu.org/bugzilla: avr avr-libc: Fehler
-
Artikel
Festkommaarithmetik
undefiniert , in aller Regel spuckt es das unbekannte Zeichen aus (wie bei '%' ). 'S' ist eine avr-gcc-Erweiterung: Es interpretiert den übergebenen Zeiger als Flash-Adresse und liest die Bytes intern mit pgm_read_byte() . Anders als bei Windows, wo "%S" mit Unicode zu tun hat. Dadurch ist die printf-Funktionalität
der Ablage im Speicher berücksichtigt werden. Im Sinne der Verständlichkeit wurde bewusst auf Optimierungen und kompakt/kryptische Schreibweisen verzichtet. Der Syntax ist Standard-C und somit auf jedem Compiler nutzbar. Diese Funktion gibt auch führende Nullen aus. Das ist erstmal OK, denn so wissen
-
Thread
TWI1 auf Atmega328PB schlägt fehl
330R serielle Widerstände eingefügt, nichts hilft. Um Probleme mit meinem Code (AVR command line gcc) auszuschließen, habe ich die Arduino-IDE gestartet und das Beispiel aus https://github.com/mathertel/LiquidCrystal_PCF8574 auf mein Board geladen. Ich habe das Beispiel mit vielen Serial.print() Statements
Beispiel für abstruse, scheinbar völlig unerklärliche Fehler, die sich so ergeben können. Nach Optimierung der Bürden lief das dann mit beiden Oszillatortypen gleichermaßen, insbesondere auch inclusive Timer4... > Ist der > PB Oszillator wirklich so pingelig? Ja. Alle LowPower-Oszillatoren sind
-
Thread
uSDX+ mit FW 4.00e und die CW Tastung
andere Präprozessor auch, ergänzt aber noch unsichtbar includes auf die Arduino-Libraries. Ein gcc nimmt den Code deshalb ohne diese Ergänzungen nicht. Aber in deiner Arduino-IDE siehst du ganz schnell, ob der Code ausgegraut ist oder nicht. Markus W. schrieb im Beitrag #8093672: > Bild zwei
dafür in Grenzen halten. Gibt gerade einen Beitrag zu so was in der letzten oder vorletzten C't. Optimierung bei AI-Bot Anfragen, um Kosten zu senken. vy73 Markus
-
Thread
Vivado 2026.1 Free Edition - Keine Linux Unterstützung mehr
ermöglicht. Das ist etwas gänzlich anderes und eher damit zu vergleichen, dass jemand, der ein mittels GCC kompiliertes Closed-Source-Programm erhalten hat, auch nicht den Anspruch auf Herausgabe des Quellcodes erhält (, sofern das Programm nicht mit Bibliotheken verlinkt ist, die genau dies vorschreiben
UltraScale+ und Versal Adaptive SoCs optimiert. Auch die Synthesen verzichten auf detaillierte Optimierungen, um schneller durchzulaufen und den großen heutigen FPGA-Schaltungen und einer effektiven Synthese gerecht werden zu können. Damit lassen sich kleine FPGAs nicht so gut optimieren, wie mit älteren
-
Artikel
FIFO
Bytes arbeiten. Die kleine Bibliothek ist als Archiv verfügbar. Für die Simulation muss man die Optimierung des Compilers ausschalten, um alle Variablen anzeigen zu können. 2 n -Ringpuffer - die schnellste Lösung. Vorteile: Durch Bitmaske auf den Feld-Index write kann der nicht "Amoklaufen" und beliebige
werden, bzw. durch Generische FIFO mit C-Präprozessor. Mit einigen zusätzlichen Macro-Tricks (und GCC Compiler Extensions) ist es möglich diese FIFO auf beliebige Datentypen und Längen zu erweitern. Die Grundidee ist, dass für jede FIFO ein neuer struct erstellt wird, dessen Bestandteile identisch benannt
-
Artikel
Pulsweitenmodulation
zusammen. Etwas genauer: Schaltverluste beim FET Siehe auch. Pulsdichtemodulation AVR-Tutorial: PWM AVR-GCC-Tutorial: PWM Soft-PWM Motoransteuerung mit PWM LED-Fading AVR PWM Ambilight in Hardware 1-Bit Digital-Analog-Wandlung Forumsbeitrag: Audioausgabe mit PWM Forumsbeitrag: SPWM auf Atmega8, bitte um Feedback hinsichtlich Optimierung Forumsbeitrag: H-Bridge 50Hz Sinus - LC Filter dimensionieren Forumsbeitrag: Arduino Mega 11 PWM-Pins mit 1kHz Forumsbeitrag: Sprung in der PWM-Kennlinie beim ATtiny85 und Timer 1 Forumsbeitrag: