-
Thread
ATmega328 CLKDIV8 geht nicht
-Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.4.351\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" [/code]
util/delay.h> // Funktionen zum warten // Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden int main(void) { unsigned char test_c; // LED an Port PB0 ist Low Aktiv angeschlossen PORTB = 0x01; // Nur Pin PB0 aktiv DDRB = 0x01;
-
Thread
Delay timing Problem
avr gcc hatte da das problem dass die NOPs verschwinden. Ich vermute dass es das ist. (Ich verwende den gcc nicht mehr fuer uC. Ist zu beschissen geworden.) Versuch an die disassembly zu kommen. ich glaube
dem Compiler als Kommandozeilenparameter -D übergeben. Schau Dir mal an, wie diene Kommandozeile vom gcc Aufruf aussieht.
-
Thread
Wie aktuell ist K&R C?
hatte ich schon geschrieben: Ich ignoriere großzügig sämtliche Hinweise auf irgend- welche "Optimierungen" und "Kurzschreibweisen".
schrieb im Beitrag #6192184: > Ich ignoriere großzügig sämtliche Hinweise auf irgend- welche > "Optimierungen" und "Kurzschreibweisen". Hast Du Beispiele? Meinst Du sowas wie *d++=*s++ statt Langversion?
-
Thread
Toochain bauen avr-gcc-x.x mit binutils-2.34 funktioniert nicht
binutils 2.32 > okay gcc 9.2 mit binutils 2.32 > okay gcc 9.2 mit binutils 2.34 > nicht okay gcc 9.2 mit binutils 2.33.1 > okay gcc 9.3 mit binutils 2.33.1 > okay Daraus schließe ich das mit den binutils 2.34 etwas nicht
CS11); // Prescaler 8 > TCCR1B = TCCR1B & ~( _BV(CS12) | _BV(CS11) | _BV(CS10) ); Die Optimierung in ein einzelnes sbi, falls das register im passenden Adressbereich liegt, macht der Compiler trotzdem. (*) ich 'abe gar kein gcc 10 ;) Oliver
-
Thread
C++17, alignment-check template Interface reduzierbar?
Ich kann das ganze so noch nicht mal mit dem gcc9.2 auf einem x86-64 Rechner kompilieren. error: size of array is not an integral constant-expression char for_sizeof[(char *)&(TV::value.*MPtr) - (char *)&TV::value]; Ich würde dir aber aus
M.K. B. schrieb im Beitrag #6177085: > Ich kann das ganze so noch nicht mal mit dem gcc9.2 auf einem > x86-64 > Rechner kompilieren. > > error: size of array is not an integral constant-expression > char for_sizeof[(char *)&(TV::value.*MPtr) - (char *)&TV::value]; > > Ich würde
-
Thread
Wie in C zum Quadrat? Gesperrt
wurde ein "Haken" noch nicht diskutiert, der insbesondere in einer µC-Umgebung relevant sein kann: gcc (zumindest, clang weiß ich nicht) macht die 'pow()'-Optimierung nur, wenn man *nicht* mit -ffreestanding übersetzt (was ja in einer µC-Umgebung durchaus eher mal der Fall ist).
dich halt jetzt auf ein "volatile" versteifen. Traurig. Markus F. schrieb im Beitrag #6174337: > gcc (zumindest, clang weiß ich nicht) macht die 'pow()'-Optimierung nur, > wenn man nicht mit -ffreestanding übersetzt (was ja in einer > µC-Umgebung durchaus eher mal der Fall ist). War ja keine Zielplattform
-
Thread
Double gegen Integer
Dennis H. schrieb im Beitrag #6167517: > macht gcc/cc von sich aus Gebrauch von AVX/SSEx ? Muss er halt nachschauen, wie sein gcc configuriert ist. Üblicherweise erstellt der generischen (ARM64)-Code. Wer aber auf dem level optimiert, soellte
auf einer HP Z440 Workstation mit 8 > Kernen. > (deshalb auch unter PC Programmierung gepostet). GCC ist mit 7.4.0 schon > etwas altbacken ist halt bei der LTS dabei Mach mal das Ubuntu nicht schlechter als es ist: gcc in Version 8.3 ist auch bei der 18.04 LTS als Paket zu haben.
-
Thread
C++11 std::array mit struct
jv@JamesWebb:~/kicad/build/debug$ gcc --version gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even
drin. aber eigentlich kannst du was neueres installieren. ich habe auch 18.04 parallel und da ist gcc-9 drauf.
-
Thread
C++ Kompilierzeiten/VStudio 2017
Umbau fertig bin werde ich das auch machen ich verstehe nur nicht was das für eine relevanz hat, der gcc,mingw,clang vollbringen auch keine kompilierzeitwunder mit so einer Codebasis, egal welche Platform > Gruß > Olaf
#6161495: > Hat hier jemand Erfahrungen mit dem VStudio und > Compiletime-Benchmarking? Optimierungen ausschalten, dann geht es deutlich schneller (sieh Debug Compile). e
-
Thread
FatFs + STM32F4 SDIO. DMA Speicheralignment
läuft mir ab einer SDIO_CLK von >= 8 MHz das Sende-FIFO leer. (Wenn ich die Funktion mit höchster Optimierung kompiliere geht etwas mehr; Mit einer Assemblerroutine könnte man auch noch vielleicht etwas herausholen. Das ist aber alles irgendwie total gepfuscht) Ansich könnte ich den HW_FLOW_CONTROL des
16 o. 4 byte. http://elm-chan.org/fsw/ff/doc/sfile.html "BYTE buf[FF_MAX_SS];" <- da mal ein gcc align attribute drauf werfen Aber wenn er sich bei disk_read selber widerspricht ist das etwas doof. M. H. schrieb im Beitrag #6160281: > Meine Tests zeigen auch, dass das in der > regel gut
-
Thread
Atmega objdump: Speicherfresser finden
memory being used by data and code. This app can also read and analyze MAP files produced by the GCC, Xbox360, Wii, PS3 (gcc and SNC), and PS4 compilers." Das erleichtert zumindest das Suchen etwas...
> Vor allem, ... Compiler denken nicht mit. Es gibt auch keine Optimierung die "so viel wie möglich ohne RAM-Nutzung in den Registern zu erledigen." Das waere allenfalls ueber eine Optimierung in Richtung minimaler Laufzeit des Programms steuerbar. Im Stack gehaltene
-
Thread
casting in C
in double gerechnet - was aber hier vermutlich keinen Unterschied macht, da es sich um Code für AVR-GCC zu handeln scheint.
". Hab ich ja geschrieben: Rolf M. schrieb im Beitrag #6158129: > Double kennt auch der avr-gcc. Aber es ist dort genauso klein wie float.
-
Thread
Benutzt hier jemand die Cortex-M4-FPU?
Bauform B. schrieb im Beitrag #6150758: > # DO NOT USE Mit -march=armv7e-m+fp baut der GCC FPU-Befehle auch in > reine > # DO NOT USE Integer-Funktionen ein. Also evt. auch in > Interrupt-Routinen! Nur wenn man ohne Optimierungen kompiliert. Du kannst die FPU auch beim Betreten der
r7 streut der GCC überall hin, selbst wenn r7 nicht verwendet wird. Weiss der Geier wieso. Aber das stört ja nicht, bei dem CPU Takt können die paar ns nichts ausmachen.
-
Thread
for Loop in C / die 10000ste dumme Frage
HW-Loop nutzen. Nutzt man den Schleifenzähler für Operationen in der Schleife, werden solche Optimierungen aber verhindert.
#Oliver S. schrieb im Beitrag #6157343: > Im Falle eines mingw-x86_64-gcc auf Windows 10 z.B. ein unsigned char. Da > ist es also schonmal nichts mit einem schnelleren 32-Bit-Typ. Ich glaube, auf x86 ist 8 Bit auch nicht langsamer als 32 Bit. Bei 16 Bit sieht's wohl anders
-
Thread
Drei kleine Fragen zur Arduino-Programmierung
unter deinem Stein hervor kriechen und dir die Welt anschauen. Die hat sich seitdem verändert. (avr-)gcc kann schon eine ganze Weile LTO (link time optimzation). Und damit funktioniert Inlining auch über die Grenzen von Translation Units. > ... man erreicht mit dem Modularisieren > eines: Klarheit
Wobei der C Compiler kleine Funktionen bereits automatisch in inlined. Und vor allem, weil der gcc seit Generationen inline einfach ignoriert, weil er es eh besser weiß und auch macht. Oliver
-
Thread
Wieviel mehr an Strom braucht man für 64 Bit fähige Mikrocontroller?
der aktuelle Prozessor zu deiner Anwendung passt. Und auch wieviel Zeit die Entwickler in die Optimierung stecken duerfen. Olaf
der aber erstaunlicherweise immer ausgereicht hat. Der Keil-Compiler war sehr geschickt in der Optimierung.
-
Thread
DAC8552 SPI Programm
Ansatz habe im Programm. Danke im Voraus! [c]#include <avr/io.h> #include <util/delay.h> #pragma GCC optimize 2 //Optimierung #define F_CPU 16000000UL #define DD_MISO PB3 #define DD_MOSI PB2 #define DD_SCK PB1 #define DD_SS PB0 #define DDR_SPI DDRB void SPI_MasterInit
-
Thread
(No)-Aliasing for fun and performance
all-alias-typen char (und Typaliase dafür) und std::byte verwenden. Für die Spielfreudigen: https://gcc.godbolt.org/z/QMQW2c Oder die Datei im Anhang verwenden.
> im char*. Mehrstellige Funktionen sind böse, aber Output-Parameter sind ok? Und fehlende Optimierungen aufgrund von aliasing ist das kleinste Problem mit char*.
-
Thread
attiny84 debug falscher Sprungpunkt
-Wundef -mmcu=attiny84 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATtiny_DFP\1.3.147\gcc\dev\attiny84" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" Diese werden automatisch vom AVR Studio erzeugt, falls es daran liegt. Ich hatte vorher die ganzen CASE
Tino K. schrieb im Beitrag #6122581: > keiner irgendeine Idee? Schalte die Optimierung aus. Codeumstellungen usw. verhindern bei -O1 usw. effektives Debuggen. leo
-
Thread
FixedPoint in C und C++
sich insbesondere in den folgenden beiden Punkten vom C-Code: 1. signed short _Accum hat beim AVR-GCC 7 Nachkomma-Bits, etl::FixedPoint<t, 8> hingegen 8. Damit ist natürlich viel leichter zu rechnen. Ändere das in etl::FixedPoint<t, 7>. 2. Im C-Code ist die Konvertierung von int16_t nach
Ergebnis, auch bei negativen Werten von sum. Schöner wäre es natürlich, wenn der Compiler diese Optimierungen selbstständig durchführen könnte.
-
Thread
SDCC 4.0.0 release candidate 1
Alternative. Beim MCS51-Port sehe ich es genau so: Der Keil-C51 ist wunderbar. Allein dessen Optimierung mit mehreren Durchläufen ist schon den Kaufpreis wert. Schade, dass weder der XC8 für die PIC noch der avr-gcc nur annähernd mithalten können.
Alternative. > > Beim MCS51-Port sehe ich es genau so: Der Keil-C51 ist wunderbar. Allein > dessen Optimierung mit mehreren Durchläufen ist schon den Kaufpreis > wert. Schade, dass weder der XC8 für die PIC noch der avr-gcc nur > annähernd mithalten können. Weder XC8 noch Keil-C51 sind frei. Aber
-
Thread
Mehr UB erkennen (C++)
im placement-new aufrufen. Heiko L. schrieb im Beitrag #6119900: > Dass type-punning ( auch mit gcc Erweiterung ) UB ist, liegt wohl eher > an komplexeren Aliasing Effekten Nein. Das Aliasing und die daraus ggf. folgende, falsche Optimierung hat mit dem UB des Type-punning nichts zu tun. Aber
M. schrieb im Beitrag #6120418: > Nein. > Das Aliasing und die daraus ggf. folgende, falsche Optimierung hat mit > dem UB des Type-punning nichts zu tun. Aber: eine Verletzung der > strict-aliasing-rule ist selbst natürlich wieder UB. Nur in theoretischem C++. In gcc funktioniert type-punning
-
Thread
TÜV-SÜD-zertifizierte MPLAB-Tools
Der XC32 ist ja anscheinend GCC-basiert. Heißt das jetzt etwa, dass der ARM GCC und G++ für sicherheitskritische Dinge nutzbar ist, und man dort dann auch aktuelle Sprachstandards nutzen kann (C18, C++17)?
Programmierer schrieb im Beitrag #6117665: > Der XC32 ist ja anscheinend GCC-basiert. Heißt das jetzt etwa, dass der > ARM GCC und G++ für sicherheitskritische Dinge nutzbar ist, und man dort > dann auch aktuelle Sprachstandards nutzen kann (C18, C++17)? GCC? Bist du
-
Thread
RISC-Architekturen Geschwindigkeitsvorteil durch LOAD-STORE-Architektur
CPU > hätte man jetzt nicht die Zeit, da noch Mann-Jahrhunderte reinzustecken. Liegt auch bei GCC nicht gerade bei Mann-Jahrhunderten, mein letztes Projekt hat ca. ein Mannjahr (plus ca. 3 sinnlos outgesourcte Fernost-Mannjahre, d.h. fuer die Tonne) gekostet. Mit LLVM kocht sich's noch weiter runter
Entkopplung des Rechenwerkes vom Speicher. Insofern legt LoadStore auch die Grundlage für weitere Optimierungen wie Caches und Memory-Bursts.
-
Thread
Rechenzeitoptimierung STM32F4
Programmierung des STM32. Da dieser ja eine FPU besitzt bin ich mir nicht sicher, ob typisch Code-Optimierungen, wie das Verwenden von Integer-Variablen im Gegensatz zu Float, Teilen durch Potenzen von 2^n wirklich einen erheblichen Vorteil bringen. Bisher bin ich nicht im Netz fündig geworden und wollte
> Weißt du, ob die Verwendung FPU standardmäßig im Compiler aktiviert ist? Ich glaube, der arm-gcc Compiler nutzt die FPU, wenn folgende Parameter gesetzt sind: -mfpu=fpv4-sp-d16 -mfloat-abi=hard Siehe https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html "The default depends on the specific
-
Thread
Statische Bibliothek erstellen in C++
in das Build-System ein was es besser macht. Nicht den Code unlesbar machen um fragwürdige Optimierungen zu erzielen, das ist fast immer ein Fehler.
Anwendung braucht ungepackt rund 3 Mb, gepackt mit Winrar knapp 800 Kb. Statisches Linken, Optimierung -o3 mfg
-
Thread
Typsichere und permutierte Parameterlisten in C++
im Forum anschaue, die etwa mit Lesen von Daten aus dem Flash zu tun haben bei AVR. Die proprietäre GCC-Erweiterung __flash gibt es ja nur im GCC-C-Mode, nicht in GCC-C++-Mode. Also muss man in C++ PROGMEM benutzen. Und wenn es dann ein Array-of-C-Strings ist, dann fangen die Probleme an. Egal ob AVR
Forum anschaue, > die etwa mit Lesen von Daten aus dem Flash zu tun haben bei AVR. Die > proprietäre GCC-Erweiterung __flash gibt es ja nur im GCC-C-Mode, nicht > in GCC-C++-Mode. Also muss man in C++ PROGMEM benutzen. Und wenn es dann > ein Array-of-C-Strings ist, dann fangen die Probleme an. Und
-
Thread
LCD 4x20 2004A auf Zeilen schalten
von Peter Fleury) ausprobiert. Leider funktioniert es nicht. Habe ein weiteres Display nach dem AVR-GCC-Tutorial/LCD-Ansteuerung vorbereitet und siehe da, alles funktioniert wunschgemäß. Bei der I2C Anbindung und der 4 Zeilen Konfiguration erhalte ich bei folgender Sequenz: lcd_gotolc(1,5
dem I2C Modul jetzt einwandfrei. Ich denke der Compiler hat mir die Sorgen bereitet. Habe die Optimierung in AS 7.0 auf "Optimize for size (-Os) gestellt. Konnte allerdings noch nicht ermitteln was wegoptmiert wurde. Betreibe den Atmega 328P nach wie vor mit 16 MHz und die I2C Schnittselle mit 1 kHz
-
Thread
Cortex M3/M4: Compiler reordering und memory barriers bei delay Funktion
Schließlich passiert das Ganze ja nur ein einziges Mal beim Einschalten. Was die Compiler-Optimierungen betrifft, so habe ich hier schon Schauergeschichten über den GCC gelesen. Danach benimmt der sich gelegentlich glatt daneben und "optimiert" angeblich ganze Programmteile hinweg. Kann ich nicht
W.S. schrieb im Beitrag #6102025: > Was die Compiler-Optimierungen betrifft, so habe ich hier schon > Schauergeschichten über den GCC gelesen. Ja, da werden gerne Schauermärchen erzählt, am Ende stellt sich jedesmal raus daß derjenige den Code so geschrieben
-
Thread
AtmelStudio 7 util/delay.h funktioniert nicht
" from project "E:\Projekte\Testprojekt\atemga 328p\GccApplication3\GccApplication3\GccApplication3.cproj" (entry point): Done building target "Build" in project "GccApplication3.cproj". Done building project "GccApplication3.cproj". Build succeeded
Marco H. schrieb im Beitrag #6266105: > Und sie funktioniert nicht mit Optimierung ! Es ist anders herum. Sie funktioniert nicht ohne Optimierung.
-
Thread
Dry made easy
etwas hinterher. Deswegen brauch clang etwas mehr boilerplate. Der angehängte Code ght nun für gcc >= 8.1 und clang >= 9.0.
etwas hinterher. Deswegen brauch clang etwas mehr boilerplate. Der angehängte Code ght nun für gcc >= 8.1 und clang >= 9.0.
-
Thread
C++ call by reference Frage
ist. Jedoch ist das schon eine Zeit her, und ich habe es tatsächlich nur gerade nochmal für AVR und gcc-9.2 vesrus 10.0 geprüft. Also: kläre uns bitte auf! Wo findet diese Art der Optimierung statt?
Wilhelm M. schrieb im Beitrag #6094682: > Also: kläre uns bitte auf! Wo findet diese Art der Optimierung statt? IPA-Optimierungen in den IPA-Passes, diese können mit -fdump-ipa-xxx gedumpt werden, wobei xxx den Pass bezeichnet. "all" für alle IPA-Passes. http://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html
-
Thread
Merkwürdiger _delay_ms() reset
für die Funktion spielt keine Rolle, habe ab 1ms vieles probiert. - Verschieden Werte für die Optimierung habe ich auch probiert Es hat die ganze Zeit funktioniert und plötzlich nicht mehr! Ich habe versucht möglichst genau die letzte Änderung auszukommentieren, aber der Reset bleibt. Leider weiß
. SIGNAL(<handler>) ist doch nicht mehr gültig. https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Alte_Quellen
-
Thread
ATmega809 Timer CMP Interrupt funktioniert nicht
Johann L. schrieb im Beitrag #6082744: > erzeugen alle aktuellen Versionen, wenn Optimierung aktiviert ist (außer > mit -Og): @Johann: Du hattest das doch gefixed: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81268 Dazu muss in den device-specs ja folgendes stehen: [c] *asm_gccisr
#6082901: > Johann L. schrieb im Beitrag #6082744: >> erzeugen alle aktuellen Versionen, wenn Optimierung aktiviert ist (außer >> mit -Og): > > @Johann: Du hattest das doch gefixed: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81268 > > Dazu muss in den device-specs ja folgendes stehen
-
Thread
Ersatz für XC32-Compiler?
Zonk schrieb im Beitrag #6081858: > Irgend einen schönen GCC oder so? Das ist ein GCC! Geh zu Microchip und bring uns den Quelltext. http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v2.20-full-install-release-notes.html PS: Dann versuch auch ich
Im "chipkit core" ist ua. eine uneingeschränkte pic32 gcc toolchain enthalten.
-
Thread
AVR (8-Bit) / C++ Toolchain
Atmel Studio 7, da ist GCC für C/C++ integriert, sowie viele Programmer zum Übertragen auf den Chip.
Jeder avr-gcc ist ein gcc, und kann daher so viel C++, wie ein gcc halt so kann. Die üblichen verfügbaren avr-gcc-toolchains machen auch alles mit. Es braucht ein paar paar zusätzliche Funktionen für new, delete
-
Thread
Bitfelder, Portabilität und STM32
Procedure Call Standard for the Arm Architecture, IHI0042, ist das alles ziemlich genau definiert. Der GCC kennt -mabi=aapcs und Compiler, das nicht kennen, sind einfach das falsche Werkzeug. Noch eine nette Warnung aus dem aapcs, aber das ist auch kein Bitfeld-Problem: [pre]If the container of a non-volatile
und explizite RMW. Im übrigen sind Prozessorregister auch als volatile zu kennzeichnen, um Optimierungen des Zugriffs abzuschalten und ein reorder-barrier einzuführen. C++ hat genau aus diesem Grund die compund-operators wie etwa += für volatile ge-deprecated, damit das auffällt, dass hier ggf. RMW
-
Thread
Initialwert von globalen Variablen zur Laufzeit verwenden
aus einem > gedoppelten Wert in .cinit (oder wie das Segment dort auch immer heißt). Das sollte gcc hinbekommen.
UDL-Op, der ein C-String-literal ins Flash packt. Also etwa das Gleiche, wie die __flash-extension im gcc.
-
Thread
C -> Port Bitset
geschweiften Klammer! Dann geht dein > Beispiel auch ohne die geschweiften Klammern beim "if". bei gcc nicht nötig, da impliziert durch die {} klammer und sowieso schon alles ugly. mt
>> Immer ein "do-while(0)" um die geschweiften Klammer! > > bei gcc nicht nötig, Bei jedem C-Compiler nötig! Siehe http://c-faq.com/cpp/multistmt.html
-
Thread
i7-9850H oder i9-8950HK
das *restrict* Keyword in C. Das brachte ca. 10% an Performance, aber nur wenn die Link Time Optimierung nicht verwendet wird. Mit der Link Time Optimierung (/GL bei MS oder -lto bei gcc) braucht man das restrict nicht, der Compiler/Linker erkennt das dann automatisch. Ok, das war ein kurzer
kann, um die Muliplikationen und Additionen *parallel auszuführen. >> >> In der Praxis war der Gnu gcc Compiler der einzige, der es halbwegs >> schaffte, das brachte auch einen Faktor 3 an Geschwindigkeit. > > Der aktuelle Intel Compiler (icc 19.0) macht da bei mir auch AVX Code > draus. Clang 9
-
Thread
Professionelle Entwicklung für AVR-Controller (Linux)
von Mikrocontrollern braucht aber Tricks & Kniffe & Erfahrung. Widerstehe der Versuchung, die Optimierung auszuschalten, nur weil dein single stepping im Debugger nicht geht: du debuggst sonst einen komplett anderen Code. Ohne Optimierung ändert sich das Timing, manchmal so sehr, dass es keinen Sinn
https://www.iar.com/iar-embedded-workbench/certified-tools-for-functional-safety/ Deshalb auch kein gcc. Olaf
-
Thread
C++ Codeoptimierung Tastatureingabe
Programm ohne jeglichen Kommentar. > Schon lange her, dass ich das mal erleben durfte. Ok Optimierung Nr.1 :)
eigentliche Funktionalität wird tatsächlich in völlig identischen Code > übersetzt. Beim mir ist er mit gcc-trunk wenige Instruktionen kürzer. Aber das ist auch völlig egal. Dieses Gequatsche, man müsste als Programmierer die Optimierungen des Compilers erledigen, ist doch einfach nur Blödsinn. Die Compilerbauer
-
Thread
avr-g++: external linkage von const/PROGMEM Symbol.
PS: Ich habs mit zwei Compiler Versionen versucht, der 7.3.0 und zuletzt der 4.9.2: $ avr-gcc --version avr-gcc (GCC) 4.9.2 $ avr-g++ --version avr-g++ (GCC) 4.9.2
lrwxrwxrwx 1 root root 5 Sep 14 11:03 g++ -> g++-8 lrwxrwxrwx 1 root root 5 Sep 14 11:03 gcc -> gcc-8 [/pre] gcc und g++ sind Ein und das Selbe.
-
Thread
Fork: avr-libc version 3, für xtiny
804, 806, 807, 1604, 1606, 1607. Der allerdings nicht aktiv ist, weil >> die Devices nicht von avr-gcc unterstützt werden und daher von configure >> ignoriert werden. > Wäre das denn großer Aufwand, die dem avr-gcc beizubringen? Ist schon drin: http://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html
://gcc.gnu.org/PR92729 Oder das tut ein neues Geschäftsfeld für Microchip auf: Optimierungen deaktivieren, und für ein paar armselige Kröten Freischaltungen für die Optimierungen verticken. > Und avr-gcc
-
Thread
Buch zu STM32, HAL, Atolic true Studio und Cube MX?
die Lite Version gibt es scheinbar immer noch. Für M0 ist es allerdings schon interessant weil der gcc da mit der Optimierung immer noch hinterherhinkt.
-
Thread
Warum kann der Compiler nicht erkennen, daß Variable in ISR geändert wird?
den Code ziemlich direkt wie er dastand, ohne sonderlich eindrucksvolle statement-übergreifende Optimierung. Weshalb volatile auch nicht ernsthaft benötigt wurde. Als die Compiler besser wurden, weil es genug RAM dafür gab, änderte sich das und es kam volatile.
Absichtlich, oder zu faul zum optimieren? ??? Wo landendenn globale Variablen beim C compiler? (Ohne Optimierung!) ???
-
Thread
Laufzeiten und GNU/Watcom C
Compiler Optimierungen (-O2) sind eingeschaltet?
http://www.x-hacker.org/ng/wcppug/ng1963c.html Wie machst du die globale zp1 entsprechung beim GNU gcc? Lokal geht es so: https://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Structure_002dPacking-Pragmas.html Welche Watcom version verwendest du 1.9 oder die V2 variante? Gcc version? Moeglichkeit unter
-
Thread
MISRA C / ISO 62262 in der Praxis?
ist das durchaus drin. Zumal sich kommerzielle Anbieter ja mit irgendwas auch von der kostenlosen GCC-Konkurrenz abheben müssen.
hinter PC-Lint. Das ist in etwa so, wie (non safety) Keil- oder IAR-Kompiler dort wo es gute gcc-Backends gibt. Oder wie bei uns seinerzeit Tortoise/SVN gegen den Willen des Chefs eingeführt wurde, /weil/ es nichts kostete.
-
Thread
gcc11 könnte das avr Backend verlieren
AVR-Backends, es ist noch nicht einmal möglich, im AVR-Backend drumrum zu hacken. So ziemlich alle Optimierungen, die halbwegs sinnvoll im AVR-Backend implementierbar sind, sind dort implementiert. Außer http://gcc.gnu.org/PR84211
Frage, bei welcher Optimierungsstufe das auftritt. Veit D. schrieb im Beitrag #6148278: > O3 Optimierung ist erledigt. Ich halte beim GCC eine (globale) Optimierung mit O3 grundsätzlich für fraglich. Das gilt meiner Meinung nach insbesondere für Mikrocontroller, wo eben mal NOP-Schleifen ausgerollt
-
Thread
[Ann/GPL] Compiler für Datenserialisierung
Geschwindigkeit optimiert. Darüber hinaus bietet WFC erweiterte Konzepte zur Target spezifischen Optimierung und Konfiguration an. Der Compiler wird mit einer ausführlichen Testsuite abgesichert und ist bereits seit ein paar Jahren im Einsatz. Die Doku könnte noch etwas Pflege vertragen. Der generierte
ungewöhnlich für den seitens der Toolchain überhaupt einer Lizenz festzulegen? Das wäre als ob mein GCC alle meine mit ihm erzeugten Binaries irgendeiner Lizenz unterlegen würde. Oder Gimp ein von mir mit Gimp erstelltes Bild einer bestimmten Lizenz unterlegen würde. Oder der Hersteller meiner Kamera