-
Thread
Startfragen zu GPU Programmierung C++
OpenCL ist aber sehr C > ähnlich und besser für GPUs und deren Paralellisierung geeignet. In GCC gibt's eine HSA (Heterogeneous System Architecture), hier als Präsentation von 2015: https://gcc.gnu.org/wiki/cauldron2015?action=AttachFile&do=get&target=mjambor-hsa-slides.pdf Inzwischen ist das im Hauptzweig von GCC gelandet.
-
Thread
sei nicht schlauer als der Compiler?
Wilhelm M. schrieb im Beitrag #5059512: > Der avr-gcc machts in diesem Beispiel jedenfalls nicht. In der Sprache ist "int" als ein Basistyp der Zielmaschine definiert, also als Wortbreite dieser Maschine. Allgemeine Optimierungen des Compilers dürfen
A. K. schrieb im Beitrag #5059523: > Wilhelm M. schrieb im Beitrag #5059512: >> Der avr-gcc machts in diesem Beispiel jedenfalls nicht. > > In der Sprache ist "int" als ein Basistyp der Zielmaschine definiert, > also als Wortbreite dieser Maschine. Allgemeine Optimierungen des > Compilers
-
Thread
Nucleo board 401 verliert Programm
nur in den RAM geschrieben wird... Der Haupt-Unterschied zwischen Debug & Release sind die Optimierungen. Man kann auch Relase-Builds debuggen und Debug-Builds ohne Debugger ausführen.
. Release-Mode nicht. Alle mir bekannten IDE's nutzen das als Unterscheidung ob ohne bzw. mit Optimierungen und Debug-Informationen kompiliert wird (also z.B. ob -g -O0 oder -Os -DNDEBUG an den GCC übergeben wird). Was ist denn "Debugger-Freundliches" Flashen? Ich übergebe an den JLink.exe die Option
-
Thread
union mit Struktur und Array gleicher Größe?
Kommunikationsanwendungen dann explodiert einem die Programmgröße. Ich habe vor ein paar Jahren dahingehend eine Optimierung machen müssen, das hat bei uns gut 100 kB Code gespart (bei etwa 500kB Codegröße) ...
liegt ja schon der Haken... was passiert wenn du das Programm mal für > x86, mal für AMD64, mal mit GCC, mal mit MSVC kompilierst? Das passiert definitiv nicht. Warum sollte ich ein solches Programm, das nur ein einziges Mal benötigt wird auf unterschiedlichen Architekturen mit unterschiedlichen Optimierungen
-
Thread
Gleichrichter mit N-Channel MOSFETs bis 250V AC
optimieren willst. Das ist praktisch immer falsch. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung Das gilt auch für Hardware.
-
Thread
Assembler Schleifen Tricks
Optimierung überhaupt lohnend ist...
Als Lektuere, was man so machen kann, wuerd' ich auch mal in die Beschreibung der verschiedenen Optimierungen, die der gcc kann, gucken. Da gibts ja nicht nur -Os, -O[0..n] sondern einzelne Gimmicks. Gruss WK
-
Thread
Pointer in Funktion..
galt das auch bei avr-gcc immer schon (die liegen immer im Flash). Einer Adresse als nackter Zahl kann man nicht ansehen, auf welchen Adressraum sie sich bezieht. Ein Pointer "weiß" das. Weiterhin kann der Compiler Variablen
das obwohl so > eine Variable keine Adresse im herkömmlichen Sinn hat. Das sind aber alles Optimierungen, die hinter den Kulissen ablaufen und damit nicht relevant sind. ISO C definiert eine abstrakte Maschine, auf der der Code exakt so ausgeführt wird, wie es in der Norm definiert ist. (Zitat: "
-
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
Unnütze Registersicherungen in ISR
https://gcc.gnu.org/PR20296
...und Änderungen gibt es durchaus. Die letzte Änderung im GCC ist 3 Tage her und war auch nicht ganz winzig (PR81072): http://gcc.gnu.org/r249124 http://gcc.gnu.org/PR81075 ist im Review, vor 3 Wochen: http://gcc.gnu.org/r248332 In Binutils kamen in den
-
Thread
Variable in Interrupt wird nicht gesetzt
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Datenaustausch_mit_Interrupt-Routinen
ist dies mehr ein Compilerproblem, dass diese Zeile wegoptimiert > wird? Wenn du bei dir die Optimierung im Compiler angeschaltet hast, musst du auch damit rechnen, dass sie aktiv ist.
-
Thread
Welche Programmiersprache auf µC
+ Compiler in Form des g++ frei Haus kommt. http://embeddedgurus.com/stack-overflow/2010/02/is-gcc-a-good-compiler/
return printf("Hello, Word!"); } [/c] ...compiliert und linkt ohne Fehlermeldungen mit VC und GCC.
-
Thread
Daten in Struct langsamer? C++
du keinen einzigen C-Compiler in Existenz finden, bei dem das so > ist. Ich hab einen gefunden: GCC [c]typedef struct { int a [32]; int b; } X; int test1 (X* x) { return x->b; } int test2 (int* b) { return *b; }[/c] kompiliert für ATmega8, ergibt: [code]00000000 <test1>: 0:
char-Arrays und #define für Konstanten... pfui! ;-) Aber ansonsten stimmt es schon. Bevor man solche Optimierungen macht sollte man natürlich schauen ob die überhaupt nötig/sinnvoll sind.
-
Thread
Wie programmierfähigkeiten testen? (Embedded)
blockierenden Egos in einem Team sind oft die, die nie die Bugs bei sich sehen, aber sich weigern, mal 'gcc -S' bei ihrem C++-Konstrukt zu machen um zu schauen, was wirklich dabei herauskommt. Sowas hat schon eine Firma in die Insolvenz getrieben (und ja, ich war dabei :-/ )
ich les mir erst SÄMTLICHE Doku durch, ehe ich anfange? > Andere C-Compiler wie >beispielsweise GCC tun das ebenfalls nicht, weil es nicht der Job des >Compilers ist. Siehe oben. Der avr gcc "mutet" das seinen Anwendern nicht zu. Und die Könner dürfen sich jederzeit eigenen Startup-Code schreiben
-
Thread
Assembler (AVR) Freaks bitte: der schnellste Weg, einen ganzzahligen Wert zu skalieren? Gesperrt
schnell wie in Assembler. Die Frage ist halt immer, wieviel Aufwand man – zusätzlich zu einer C-Optimierung – in eine Assembler-Optimierung stecken möchte, die den Code vielleicht gerade mal um 20% schneller macht.
generieren. Bezüglich Warnungen hingegen ist der Compiler freier in seinen Entscheidungen. >> Der GCC kennt allerdings ein Funktionsattribut (“always_inline”), bei >> dem das Inlining erzwungen wird. > > Mal schauen ob der gcc-avr das auch hat. Der AVR-GCC /ist/ ein GCC. Das Frontend ist grundsätzlich
-
Thread
USB Mass Storage + Virtual COM Port, SD Card als Bibliothek für "Arduino"-Ähnliche?
Tastern, UART basteln/zusammenklicken, d.h. in kürzester Zeit mit niedrigstem Aufwand und keinerlei Optimierung :-) Welche Hardware/IDE-Kombination (Arduino und Konsorten) bietet Bibliotheken zu diesem Zweck?
hab noch einige PIC18Fxx rumliegen, würde dir aber die PIC24/dsPIC empfehlen, da ist die Toolchain GCC basiert und die CPU ist deutlich stärker
-
Thread
AvrStudio 5 Programm zu groß für Attiny 13
Beitrag #5006022: > Die .lss Datei lade ich hoch. Wurde offensichtlich mit abgeschalteter Optimierung übersetzt.
AVR Assembler. Für Windows. Mit AVRASM. Oder AVRASM2. Ohne GNU. Und wieso geht es damm um Optimierungen?
-
Thread
STM32 und Tastenentprellung nach Peter D.
... Und mach doch gleich deine Variablen 32 bittig. Beim ARM bezahlst die Optimierung nach Größe mit Geschwindigkeit. Es werden zusätzliche Befehle eingeschoben. Und bist du dir ganz sicher, dass ct1 hier auch static ist? Ich würde die definition der 3 inneren Variablen in 3
HIDIRT-STM32x1xx/blob/master/src/debounce.c funktioniert auf dem ARM in Zusammenhang mit https://launchpad.net/gcc-arm-embedded. Und das ist 1:1 Peters Code.
-
Thread
Weigu AVR-Assemblerkurs Modul A
: es handelt sich um eine Lehraufgabe für Dummies... Du musst vor allem auch Lernen, dass Optimierung nahezu immer ein Kompromiss zwischen Codegröße und Rechenzeit ist. Doofe Compiler können nur immer in eine Richtung optimieren. Richtige Assemblerprogrammierer hingegen kennen das Gesamtproblem
Loop Unrolling hat ein AVR üblicherweise zuwenig Flash. Dafür kann aber der Compiler nix. Bei AVR-GCC kann man das mit "-O3" mal versuchen. Moderne C-Compiler sind oftmals schneller /und/ effizienter als manueller Assembler, insbesondere bei 32-bittigen Plattformen. Man sollte Effizenz auch nicht
-
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
STM32 - relativ praezises Delay ohne Timer
Compiler erzeugt, dann trage in in das Textfeld unter Properties/C/C++ Build/Settings/Tool Settings/MCU GCC Linker/Miscellaneous/Linker Flags das ein: -Wa,-adhlns="$(@:%.o=%.lst)" Du findest dann für jede Quelll-Datei eine *.lst Datei im Verzeichnis Debug oder Release. > 34 Cycles hört sich ja im
oder her oder evt. auch nicht. Selbst wenn man die Routine selbst in Assembler schreibt oder die Optimierung festnagelt, spielt immer noch die Optimierung des Aufrufs eine Rolle. Wenn du sooo genau werden willst und die Bibliothek sogar auf verschiedenen Chips nutzen willst: nimm einen Timer. Man
-
Thread
'return' with no value, in function returning int
Damit funktioniert es. Daher ist nicht nachvollziehbar, wo dein Problem liegt. Getestet mit x86_64 GCC 5.4.0, arm-none-eabi-gcc 6.3.1, sowie Clang 3.8.0.
options control the interface conventions used in code generation. http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html
-
Thread
memcpy funktioniert nicht
gab's doch mal was... Bug 53016 - memcpy optimization can cause unaligned access on ARM https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53016 Mit dem schönen Status: RESOLVED INVALID
Programmierer geirrt, nicht der Compiler. Wenn man es partout nicht will, dass der Compiler Optimierungen in Funktionen der Standardbibliothek vornimmt, kann man natürlich immer im freestanding mode compilieren (-ffreestanding) – aber damit verliert man dann /alle/ derartigen Optimierungen auf
-
Thread
avr-gcc 6.3 für Windows
Auge des Betrachters. Seit dem neuesten WinAVR gab es zum Beispiel folgende Änderungen: https://gcc.gnu.org/gcc-6/changes.html https://gcc.gnu.org/gcc-5/changes.html https://gcc.gnu.org/gcc-4.9/changes.html https://gcc.gnu.org/gcc-4.8/changes.html https://gcc.gnu.org/gcc-4.7/changes.html https://gcc.gnu.org/gcc-4.6/changes.html https://gcc.gnu.org/gcc-4.5/changes.html https://gcc.gnu.org/gcc-4.4/changes.html
-
Thread
ISR effizient verteilen
Endpoint-spezifischen Handler vermerkt sind und verzweige dann nach Bedarf. Ich arbeite mit C (avr-gcc). Kann ich diese spezifischen Handler in die ISR inlinen, auch über Dateigrenzen hinweg? Was muss ich dem gcc dafür mitteilen? Oder muss ich den Preis eines indirekten Funktionsaufrufs in der
Beitrag #4973380: > automatisch? Denn das kann ich mir nicht vorstellen. Ich weiß nicht, ob der gcc das tut. Aber ich halte es nicht für unmöglich. Es müss(t)en halt mehrere Optimierungen zusammenarbeiten. Ich denke aber, dass eher das switch rausfliegen wird und Arithmetik auf die Tabelle angewendet
-
Thread
CRC Summe von Konstanten zur Kompilierzeit automatisch berechnen
so zaubert man z.B. auf einem AVR mit gcc6.2 eine 1-wire ID ins Flash: [c]template <uint64_t V> struct OwID { uint8_t value[8] = {byte(6), byte(5), byte(4), byte(3), byte(2), byte(1), byte(0), calcCrc() }; /
Was ist denn in der Build-Umgebung? Wir nehmen als externes Tool meist C mit gcc und lassen so quasi den originalen Code auf dem PC-laufen (ggf. mit Präprozessor des µC). Mit geringen Modifikationen und einer anderne "main" wird eine .exe erzeugt, die einen minimalen Header mit
-
Thread
Assembler-Programmieren PIC16F1934/6/7
simpler Programmierung kommt heutzutage kein schlechter Code heraus, weil man die tatsächliche Optimierung dem Compiler überlassen kann. W.S.
Haben sie, deren 16. Die PIC30 waren erkennbar so konzipiert worden, dass heutige C Compiler wie GCC keine Verrenkungen benötigen. Das ist schon aus Faulheit (Sparsamkeit) sinnvoll, denn nur dann kann man effizient auf bestehenden Compilern wie GCC aufbauen. Was Microchip ja auch getan hat. > Erzeugter
-
Thread
C Objekte als Struct effizient kapseln
gemessen, wie viel "Overhead" entsteht? Und im Vergleich zu was? Ein paar Performance-Tipps: - Optimierung des Compilers einschalten (GCC: -Os) - Link Time Optimization einschalten (GCC: -flto bei Compiler und Linker) - Den am häufigsten benutzten Member in der Struktur an die erste Position setzen
helfen, indem man ihm schon zur Compilezeit möglichst viele Informationen liefert, die er zur Optimierung verwenden kann. In deinem Beispiel gibt es mehrere Strukturen, die Konfigurationsdaten wie bspw. Ports, Bitnummern u.ä. enthalten. Diese Daten sind meist unveränderlich, aber der Compiler weiß
-
Thread
Right-shift bei msp430
%#x\n", val1 ^ (val2>>4)); return 0; }[/c] welches so kompiliert wird: [code] msp430-gcc -mmcu=msp430g2553 -O0 -g -W -Wall -std=c99 -c -o main.o main.c msp430-gcc -mmcu=msp430g2553 -O0 -g -o firmware.elf main.o [/code] Wenn ich dieses Programm nun auf http://www.msp430emulator.com
Allerdings wär man hier mit CLRC/RRC/RRA/RRA/RRA besser bedient. Vielleicht denkt der Compiler bei Optimierung daran.
-
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
Strukturierte AVR-Assembler-Programmierung Gesperrt
eine Lösung leisten könnte und was mit der eingebauten Macrosprache definitiv nicht geht, ist die Optimierung von Vorwärtssprüngen, für also bei IF und allen kopfgesteuerten Schleifen. Das allerdings würde dann aus dem Zweipass-Assembler einen Vierpass-Assembler machen müssen, sprich: die Assemblierzeit
Gibt es irgendwelche Benchmarks? Wieviel schneller ist dein Code als der von gcc mit -O2? Ich würde ja fast behaupten, dass der GCC schnelleren und effizienteren Code als deine ASM Geschichte produziert.
-
Thread
STM32 Programm unerwartet groß
Optimierung eingeschaltet? Wenn ja welche?
ffunction-sections und -gc-sections Ist beides schon aktiviert. Diese Optionen kenne ich auch schon vom avr-gcc. Sie können den Code unter Umständen erheblich verkleinern.
-
Thread
ARM-Cortex als Anfänger?
: > Auf jeden Fall keine Fehlentscheidung. Aus dem dspic Artikel hier: > Microchip bietet den GCC-basierten Compiler C30 im 3-4 stelligen $-Bereich > an. Eine Studentenlizenz ist kostenlos erhältlich. Nach der Erprobungszeit > ist lediglich die Art der Optimierung nicht mehr frei wählbar.
Erfolgserlebnis kommt mir der Weg viel zu lang vor. Wenn ich nicht schon lange mit Eclipse und GCC vertraut wäre, hätte ich es noch schwerer. Nur so nebenbei: Mein erster AVR (ATtiny13) blinkte schon am ersten Abend.
-
Thread
Merkwürdige Laufzeitunterschiede bei umgestellten Gleichungen (float + int)
die Division fällt damit komplett raus. Das Gleiche bei Variante 3 "105.6 / 5.6" Welche Optimierung -O hattest du an?
der float-Behandlung nicht erforderlich ist, hilft z.B. -ffast-math oder ähnliche Optionen. Siehe GCC-Doku.
-
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
[STM32] HAL vermeiden?
SystemInit hier: https://github.com/ChristianRinn/bare_metal_stm32f411xe/blob/master/src/STM32F411XE/gcc_startup_system.c
portierbarkeit zwischen den stm32 Controllern. Wenn es zu langsam ist, dann sollte man die Optimierung einschalten, besonders lto.
-
Thread
KiCAD ist im Kommen
Anwendungen eine kommerzielle Alternative und warum diese "professioneller" ist: > Und Apache, Firefox, gcc, PostgreSQL, RasMol, LAMMPS, CP2K zum Spielen > für die "Amateure"? Nur ganz kurz. Es kann ja dann auch nicht so schwer sein.
Deshalb ist eine zeitige Festlegung von Bauteileigenschaften bei der späteren Fehlersuche und Optimierung hilfreich, weil ein Referenzwert existiert.
-
Thread
Atmega8 - Pin Nummer dynamisch?
So, ich habe es mal ausprobiert (gcc 4.7.2, Optimierung -Os) Quellcode siehe Anhang. Mit der oben von mir geposteten Funktion wird wie erwartet für jeden Pin ein sbi erzeugt: [avrasm] void portb_set_pin(uint8_t pin) { switch
-
Thread
STM32: wo endet CMSIS, wo fängt StdLib an?
00000018 0x8361 STRH R1,[R4, #+26] Aber auch beim obigen Code muß man die Optimierungen von 412: 2008 movs r0, #8 414: 2410 movs r4, #16 418: 2120 movs r1, #32 dem eigentlichen set/clear hinzurechnen. Möchte man jedoch mehrere Bits in einem IO-Register
Vorteilern für die verschiedenen Bustakte, das was in der SystemInit()-Funktion passiert (bei mir in der gcc_startup_system.c) wenn man sich das von Null an aus den Fingern saugen will muss man schon ein paar Stunden lang mit dem RefMan meditieren. Je nachdem was Du für einen Quarz dran hast musst Du da schon
-
Thread
leere funktion in c code ändert verhalten (attiny13)
> CFLAGS=-mmcu=attiny13 -Os -c -Os Keine Optimierung. Die leere Funktion wird nicht entfernt.
Kurt schrieb im Beitrag #4926937: >> CFLAGS=-mmcu=attiny13 -Os -c > > -Os Keine Optimierung. -Os steht für Größenoptimierung, nicht für keine Optimierung. > Die leere Funktion wird nicht entfernt. Kann sie auch gar nicht, da der Compiler nicht weiß, ob die Funktion von irgendwo
-
Thread
STM32: Arrays und Performance
Gut, dann kau ich das einmal neu durch. Das liegt sicher nicht am GCC. Ich habe hier nen STM32F411 auf 100MHz. GCC 6.2.1 [pre] signed: | O0 | Os | O1 | O2 | O3 ------|--------|--------|--------|--------|------- 8bit | 88.10s | 28.82s |
Beitrag #4923916: > Irks: IIRC deaktiviert -ffreestanding etliche interne Builtins und > Optimierungen, Laut GCC-Doku ist ffreestanding dafür gedacht: "A freestanding environment is one in which the standard library may not exist, and program startup may not necessarily be at main." Genau deswegen
-
Thread
AVR Simulator mit grafischer Benutzeroberfläche für Linux
Mittlerweile kann das Programm auch die "elf"-Objektdateien, welche avr-gcc 4.9.2 erzeugt, einlesen und die Quelltext-Zeileninformationen aus den debug-daten verarbeiten. Das avr-gcc_sample ist das Testprojekt, welches mir zum Evaluieren dient. Es besteht aus einem "C"-Hauptteil
Hallo Ingo, habe mir gleich mal die "avr-gcc_sample.zip" gezogen. In dem c-Skript werden leider nur *.S-Dateien kompiliert und gelinkt: [code]#!/bin/bash # Assembling: main.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns
-
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.
-
Thread
if condition schöner schreiben?
Zweifelsfall auch besser. Natürlich sollte man sinnvolle Algorithmen verwenden. Wenn man das tut, ist Optimierung auf der Ebene "wie-kodiere-ich-das-am-besten-von-Hand" in sehr vielen Fällen komplett unnötig.
Der GCC erlaubt auch: [c] switch(i){ case 0 ... 3: case 8 ... 11: case 16 ... 19: case 24 ... 27: doSomething(); break; } [/c] Paddy schrieb im Beitrag #4884829:
-
Thread
Programmgeschwindigkeit Arduino
nutzen, das unterscheidet sich exakt NULL von normalem C im Atmelstudio, denn es ist ja der gleiche avr gcc Compiler.
weiter ist, kann die einfach selber hinschreiben > und nutzen, ... denn es ist ja der gleiche avr gcc Compiler. So ist es! Und, ich denke, dass das hier auch Sinn macht.
-
Thread
Absolut Ahnungsloser benötigt Hilfe
Ahh , das krieg ich hin : Meldung : -------- begin -------- sh: avr-gcc: command not found make: *** [gccversion] Error 127
der nötige Compiler, der ist nur nicht im PATH eingetragen. Daher die obige Ausschrift ("avr-gcc: command not found"). Die gute Nachricht dieser Meldung ist aber: ein "make" ist offenbar bereits da. Damit muss man nur noch rausfinden, wo der AVR-GCC genau ist. Vermutlich ist es [pre
-
Thread
Horizon EDA [War: Neues, halbfertiges Elektronik-CAD-Programm]
gcc5 hat bei mir auch nicht funktioniert, mit gcc6-c++-6.2.1+r239768-6.19 geht es. Gruß, Frank
Jetzt baut's wieder mit gcc 6.2.1
-
Thread
STM32Fxxxx: Kurze Frage zu GPIO Bitbanging
befüllen. Mangels freier SPI schiebe ich die Bits einzeln heraus. Frage: Muss man bei eingeschalteter GCC Optimierung -Os beim Toggeln eines Portpins einen Delay einlegen? Ich kenne die interne Schaltung des Cortex nicht, weiss nicht wie Piplines oder Caching da reinfummeln können, denn das physikalische
Christian J. schrieb im Beitrag #4880199: > Frage: Muss man bei eingeschalteter GCC Optimierung -Os beim Toggeln > eines Portpins einen Delay einlegen? [...] 72 MHz Ja, aber nur weil der Pin sonst nicht hinterher kommt. Ich würde einfach ein oder zwei __NOP(); einfügen - und
-
Thread
Arduino - Speicheroptimierung?
> Speicheroptimierung Vor Optimierung erfolgt erst mal Profiling um rauszufinden, wo wann warum wieviel Speicher verbraucht wird. Darauf basierend kann dann u.U. Optimierung erfolgen. Als erstes findest du also heraus, selche Komponenten
Binäre Sketchgröße: 29.376 Bytes 48 Byte im flash verloren und 2 Byte im data verloren, tolle Optimierung.
-
Thread
Optimale Maschinensprache
ARM v5 thumb (4) MIPS16 (5) AVR8 (6) MIPS32 (7) i86-64 Basis ist eine für die versch. Arch. gcc-compilierte bare metal Library ohne float-Gerechne (dann sähe das alles wieder anders aus).
Maschinendefinition. Mit welcher ISA/Maschinensprache sie ausgestattet sein sollte, um dem Ziel der Optimierung (Preis,Leistung,Strom,...) möglichst nahe zu kommen.
-
Thread
Attiny45 Programmierung
>ob ich den attiny auch mit C programmieren kann http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Rest: Google "Attiny 45 Arduino programmieren" Frage zu den Pins steht im Datenblatt oder auch im ersten Link.
triffts schon eher. Im vergleich zu irgendwelchem durchschnittlichen Standardcode wird man nach C-Optimierung sicher keine 3-4 fache "Leistung" durch Assembler bekommen.