-
Thread
EEPROM - Atmega stürzt ab
Sag doch einfach mal, welche AVR-GCC Version Du benutzt. Und benutze die Optimierung -Os.
-
Thread
STM32 komisches Verhalten bei include und leerer Funktion
coocox 1.7.7 mit gcc 4.9 hat keine Probleme mit dem Projekt.
demselben Evalboard nicht. Zwischenzeitlich habe ich avon Win7 auf Win10 umgestellt und CoIDE/gcc neu installiert.. Ob das was damit zutun hast? Mich kotzt das hier an..
-
Thread
Gleiche Funktion. 23 cycles anstelle von 6?
Ein exzellent optimierender Compiler ... ist das in diesem Fall jedenfalls nicht - oder die Optimierung war abgeschaltet. Denn der ASM2 Code ist für optimierten Code wirklich unter aller Sau. Ich meine mich zu erinnern, dass Microchips freie Compiler-Version bei Optimierung eingeschränkt ist. Intern ist der Compiler von Microchip der GCC plus etwas proprietärem Kram. Und der GCC sollte sich nicht so doof anstellen. Wenn man ihn lässt.
-
Thread
Frage zu einer Codezeile in C
Timmo H. schrieb im Beitrag #4731155: > Tatsache... mein gcc schmeisst mit -Wall zwar kein Fehler aber das > Programm schmiert ab liegt aber mehr oder weniger an deinem System. Der Absturz kommt, weil der String in einer Read-Only-Page im Speicher liegt
Timmo H. schrieb im Beitrag #4731155: > Tatsache... mein gcc schmeisst mit -Wall zwar kein Fehler aber das > Programm schmiert ab Peter II schrieb im Beitrag #4731156: > liegt aber mehr oder weniger an deinem System. > > Der Absturz kommt, weil der String
-
Thread
Befehlssatz der bo8-CPU - was ist gut, was ist schlecht
CPU und einen Emulator geschrieben, weißt aber nicht, wie man das macht? Sehr seltsam... [code] gcc -c function.c gcc -c emul.c gcc -o emul emul.o function.o [/code]
nt: %x\n", zeit); ~^ %lx [/code] Mit eingeschalteter Optimierung zeigen sich aber noch weitere sehr interessante Warnings: [code] gcc -O2 -o emul -Wall -lX11 emul-indent.c emul-indent.c: In function ‘main’: emul-indent.c:966:18: warning: format ‘%x’ expects
-
Thread
strlen(.) oder sizeof(.)-1
Für den "Hallo, Welt"-Benchmark gibt es natürlich auch etwas: http://www.ciselant.de/projects/gcc_printf/gcc_printf.html
Thread model: single gcc version 4.7.2 (AVR_8_bit_GNU_Toolchain_3.4.2_939)
-
Thread
AVR und der Umgang mit C++
weiters alle > globalen Variablen mit 'static', damit sie auch wegoptimiert werden > können. der GCC hat schon eine weile die LTO Funktionalität, damit muss man nicht alles in eine Datei schreiben, nur wegen der Optimierung.
So, jetzt hab ich dem GCC mal die Chance gegeben, sich zu rehabilitieren. AVR-GCC 6.2 mit Optimierung -Os, was Size bedeutet'und weshalb die diversen Pinwackler nicht inlined werden. Gebraucht hat er dafür 410ms. Nur so als
-
Thread
ATMega2560 - was kommt danach ?
takten und haben neue Peripherie. Innendrin werkelt aber der AVR8 Kern und z.B. der gute alte AVR-GCC baut die Programme. Zu teuer sind sie m.E. aber wirklich.
WIRKLICH gefunden? Oder ist das alles nur Bauchgefühl? https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung > Manchmal >ist es auch bequemlichkeit, z.B. ganzes Display und zeichnen lassen, >anstatt Teilbereiche zu löschen. Da geht es schon los. >CPU
-
Thread
AVR Problem mit uint32_t
sein könnte... habe bereits 3 verschieden AT Tiny Chips getestet, alle das selbe. Die Compiler (avr-gcc 4.3.3) Optimierung habe ich bereits deaktiviert. Und noch lustiger, das Problem verschwindet, wenn ich die Zeile "adcintch += 1;" auskommentiere! Im Disassemly Code sind das gerade mal diese 3 Zeilen
-
Thread
AVR Interrupt Processing - was ist besser ?
Der Funktionsaufruf in der ISR ist wie gesagt keine so gute Idee, vor allem nicht beim AVR mit GCC. Aber auch andere µC / Compiler können da leicht schlechten Code erzeugen. Selbst wenn die HW die Register rettet brauchen zusätzliche Register Platz auf dem Stack und ggf. Rechenzeit. Bei dem einfachen
ist. 5) Möglichst keine Funktionsaufrufe in der ISR wegen Register-Rettungs-Overhead. 6) Code-Optimierungen durch AVR Register-Checks in main() bzgl. Interrupt Stati sind schön und gut, aber führen nicht zwangsläufig zu einem übersichtlichen Code, der in 5 Jahren noch auf Anhieb verstanden wird. 7)
-
Thread
Studio 6.0 einzelschritt debuger
Stefan U. schrieb im Beitrag #4716970: > Deaktiviere Optimierungen mit -O0 Ok, aber unter debug--Options und settings kann ich es nicht finden. wo ist denn das dann drinnen
nächsten namen und wert in zeile 2 anzeigen usw... wie oben schon gsagt wurde. Wird das an der Optimierungs Einstellung liegen die sollte ich auf low setzen. Aber ich habe immer noch nicht raus gefunden wie ich dort hin komme. könnte mir bitte jemand weiter helfen? [c]/* * GccApplication21.c
-
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
* C++ == C++ *
Daniel A. schrieb im Beitrag #4721644: > Ja und ich mit gcc (Gentoo 4.9.3 p1.4, pie-0.6.4) 4.9.3: > [...] > A is not A gcc 4.6.1: A is A gcc 4.7.4: A is A gcc 4.9.2: A is not A Wir können ja eine Strichliste machen, wer rechter hat ;-)
Frank M. schrieb im Beitrag #4721662: > gcc 4.6.1: A is A > gcc 4.7.4: A is A > gcc 4.9.2: A is not A und jetzt bitte noch jerweils mit unterschiedlichen optimierungs optionen. Und selbst wenn: Das Verhalten ist undefined! sprich, wenn
-
Thread
Installationsprobleme Atmel Studio 7 unter Windows 10
Hi, Hast du die Optimierung in Projekteinstellungen aktiviert? Das ist ein Compilerflag. Ich kann leider auf dem Bild nicht sehen, ob du den simulator als Tool ausgewählt hast. Ist die Option direkt neben deinem Mikrocontroller
Hallo, danke erstmal für deine Antwort. Folgendes zu deinen Fragen: Die Optimierung ist deaktiviert (zu Testzwecken)! Ich erreiche auch wirklich die einzelnen Codezeilen jedoch werden diese nicht in gelb hervorgehoben!!! Ich habe als Debugger den Simulator verwendet! Bei
-
Thread
codeblocks meckert bei _delay_ms()
Vergessen, die Optimierung einzuschalten?
Optimierung ist an , verschieden schon probiert auch aus...alles dasselbe Desaster... Will mir einfach nicht in den Kopf.... aber es ist nun mal so... ;) Gruss und Dank Gerhard
-
Thread
C Programmieren unter Ubuntu anfänger
normalen Texteditor. Dein "Hello World" kompilierst du dann auf der Kommandozeile unter Ubuntu mit dem gcc und führst es aus. Dann schreibst du dafür ein kleines Makefile. Sobald das klappt, kannst du versuchen ein Projekt in Eclipse anzulegen, und es dort zu kompilieren.
einfacher zu nutzen. Ich finde, das sind gute Argumente für "besser". Zudem ist es so, dass die Optimierung einzelner Takte meistens eher irrelevant ist. Stattdessen ist es viel wichtiger, die Algorithmen & Datenstrukturen zu verbessern, um so Größenordnungen an Effizienz gewinnen zu können. Dies ist
-
Thread
Schnellere Division
Ich würde halt gerne wissen, ob es im Bezug auf die Optimierung sinnvoller ist, nur durch Zweierpotenzen zu dividieren.
man den ganzen Salat mal irgendwann auf einen anderen Prozessor, dann kann einem solcherart Optimierung ganz schnell auf die Füße fallen, weil sie sich dort dann plötzlich als Pessimierung entpuppt, ganz davon abgesehen, dass sie eine bestimmte Byteorder benötigt. Bei ARM und GCC hat man übrigens
-
Thread
Komplizierte Konstrukte auflösen ohne Tempoeinbußen
worauf muss geachtet werden? Vielen lieben Dank schonmal :) Grüße Reggie Edit: achso, gcc 5.3.0 und läuft auf einem stm32
Torsten R. schrieb im Beitrag #4691647: > Die Mikro-Optimierungen, über die Du Dir hier Gedanken machst, bekommen > die Compiler alle von alleine hin. Muss in eine Funktion nicht erst "reingesprungen" werden? also kommt da nicht eine zusätzliche Instruktion
-
Thread
[anfängerfrage] wo finde ich die includedateien und wie ordne ich neue zu
sqlite3 (habe ich bereits installiert), > wie kann ich die NEUE hinzufügen, dass ich eben nicht > gcc readFomDb.c ?!sqlite3.h!? -o neuesTool > gesondert aufführen muss reicht das diese in richtigen Ordner abzulegen!? Vielen Dank
okay,... der richtige befehl war: gcc write2db.c -o write2db -lsqlite3
-
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
2.2'TFT ILI9340 und Arduino
überhaupt nicht vorschlagen. Der Thread ist eine Hilfestellung für die Inbetriebnahme und die Optimierung des Displays. Wenn Du genau hinschaust, findest Du einige Ergebnisse: 1. beschleunigtes Kurvenzeichnen für Analogsignal 2. Hinweise zur Optimierung der SPI am Arduino DUE 3. Link auf das schwer
nur mit Kanonen auf... Nein halt, anders rum... Mit Spatzen auf Kanonen geschossen. Nimm normales GCC, das können dann die Laien in ihrer ArduinoDingens kompilieren und man hat auch was fürs GCC.
-
Thread
ROM-Auslastung von C++-Programm reduzieren
/articles/ARM_GCC#Code-Gr.C3.B6.C3.9Fe_optimieren befolgen Disassembly posten, dann kann man schauen was da viel frisst
Referenzen der Grund dafür sind: [code]c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/lib/armv7-m\libstdc++_n.a(eh_arm.o) obj\release\src\main.o (__cxa_end_cleanup)[/code] Ein Diff macht klar, dass bei der
-
Thread
STM32 volatile statusvariable in while loop nicht aktualisiert
andere Werte als SPI_BLOCK_FREE haben. Diese Konstruktion mit dem kopieren nach i, sollte eine Optimierung an sich nicht austricksen, denn wenn der Compiler - von Dir unbeabsichtigt - davon ausgehen sollte, dass sich die Variable nicht ändern kann, dann kann er auch schliessen, dass i immer den Wert
Es ist ein gcc arm-none-eabi version 4.8
-
Thread
Strukt mit Pointer auf Array wird um ein byte verschoben
Anhang ersichtlich ist, sind die Daten vorhanden. Was mache ich falsch? Controller STM32, ARM GCC Danke schonmal
GCC wird auf ARM per dfault immer Alignment machen. Manche STM32 können mit unaligned access umgehen, kostet dann aber zwei Buszugriffe (halbe Geschwindigkeit) und ist nicht atomar. Andere schmeißen einen
-
Thread
Sinusberechnung auf Controller STM32F030
meisten > Compilern Code Größe und Performance. Tut es leider nicht, scheinbar ist der arm-none-eabi-gcc so gut in der Optimierung, dass es keinen Unterschied macht... auch etwas in der Art: p3= degree * degree * degree; anstelle von tiny_pow bringt nichts (abgesehen davon , dass ich das tiny_pow
nearly equal printf("%f : %f\n", s/MUL, sin(p)); } return 0; } [/c] gcc main.c cordic-32bit.c -o CordicTest
-
Thread
Calloc() bei eingebetteten Systemen
Muß man nur drauf achten, daß der Compiler die entsprechenden Funktionen nicht inlined. Gerade bei GCC sollte man das mit entsprechenden Funktionsattributen erzwingen. Im Übrigen halte ich es ohnehin für Wahnsinn, den Heap auf den Stack zuwachsen zu lassen. Oder den Stack auf den Heap, bzw. bei Abwesenheit
Fehlerverhalten kriegen kann. Zumal der Compiler einem auch noch dazwischenhauen kann, wenn der bei Optimierung auf Größe mit GCSE arbeitet und man dann abenteuerliche Verschachtelungen kriegen kann.
-
Thread
Wie auf Union mit Bitfeldern direkt zugreifen?
deren Einstellung zu nicht-standardkonformem Code kennt, dann ist es eine wirklich schlechte Idee, GCC für solche Zwecke einzusetzen. Denkbar wäre es z.B., daß man auf ARM bei Optimierung auf Geschwindigkeit immer 32bit-Ints zugrundelegt, weil das schneller geht als etwa 8 bit. Bei Optimierung auf
Erstens: nein, nicht grundlos. Es ist gerade der Spielraum des undefined, der so aggressive Optimierungen überhaupt erst ermöglicht, wie heutige C-Compiler sie beherrschen. Das sind zwei Seiten derselben Medaille. Mal ein Beispiel, WIE aggressiv GCC das kann: Neulich hatte ich das Problem, in einer
-
Thread
ARM, GCC, Linker-Skripts
nur dann, wenn Du damit im Betrieb das Flash beschreiben willst. Readonly-Phänomen: Wenn man beim GCC Variablen deklariert, die man aber nur lesend verwendet, dann schnallt GCC das und setzt die automatisch als read-only, auch ohne const. Das ist lästig, wenn man sie ganz bewußt nicht als const markiert
nicht nutzt (oder nicht sichtbar nutzt), die aber nicht wegoptimiert werden sollen. Da hilft beim gcc dann das __attribute "used".
-
Thread
fragezeichen operator may be undefined
; printf("%u\n", x); return 0; }[/c] Ausgabe: [code]5 6[/code] Kompiliert mit GCC 4.9.3 mit -O3
@ Be Stucki (bestucki) >Kompiliert mit GCC 4.9.3 mit -O3 Gab es Warnungen?
-
Thread
Berechnung CTC Timer
blinken. Ich dachte ich muss den Aufrauf (500mal/s) selbst programmieren gemäß des Teilcodes aus dem AVR-GCC-Tutorial, wobei ich bis jetzt nicht ganz verstehe was in der Routine passiert und wozu die If-Abfragen dienen. ISR (TIMER0_COMPA_vect) { millisekunden++; if(millisekunden == 1000) {
dachte ich muss den Aufrauf > (500mal/s) selbst programmieren gemäß des Teilcodes aus dem > AVR-GCC-Tutorial, wobei ich bis jetzt nicht ganz verstehe was in der > Routine passiert und wozu die If-Abfragen dienen. > > ISR (TIMER0_COMPA_vect) > { > millisekunden++; > if(millisekunden ==
-
Thread
Compiler verhält sich seltsam
Es muss ja nicht immer ein Fehler sein, den man verbessert. Ich sehe sowas eher als eine Art Optimierung.
nur Plan B: gcc-Sourcen besorgen, verstehen, selber verbessern... Oliver
-
Thread
Jitter in ISR von Atmega
Ich habe GCC 4.7.2, ebenfalls mit -Os
Der Meister Joda des avr gcc ;-) https://www.mikrocontroller.net/user/show/gjlayde
-
Thread
Umstieg auf C
Adresse nicht verwendet wird irgendwo in einem einzelnen Bit speichern. Wie verbreitet solche Optimierungen sind, weiß ich allerdings nicht. Philipp
Stückzahlen >100M eines billigen Gerätes produziert. Dann kann es Sinn machen, 1 Mannjahr in die Optimierungen der Firmware eines winzigen 8-Bit-Controllers zu stecken. Hier wird man vielleicht mit Assembler anfangen, um das letzt Bit herauszuquetschen.
-
Thread
Code optimieren, switch case ersetzen
> Super kompakt und übersichtlich Und ziemlich sinnlos. Es ist der Versuch einer manuellen Optimierung die man (A) schöner machen könnte, und (B) der Compiler bekommt sie von alleine vermutlich genauso gut hin. (A) Wenn man ganz fest an die manuelle Optimierung glauben möchte: [c] switch
Wer sehen möchte was der GCC mach: https://github.com/gcc-mirror/gcc/blob/edd716b6b1caa1a5cb320a8cd7f626f30198e098/gcc/stmt.c#L1114 die expand_case und emit_case_... Funktionen.
-
Thread
Code zu groß für AtTiny45
Keine Ahnung, was du als Compiler benutzt. Ich bekomme mit einem GCC 4.7.2 schon Code, der in den ATtiny45 passt: [pre] $ avr-gcc -DF_CPU=8000000 -mmcu=attiny45 -Os -o test.elf -I includes *.c -lm main.c:14:9: warning: built-in function ‘index’ declared as non-function
[/pre] GCC 5.3.0 spart noch ein paar Bytes ein: [pre] $ avr-gcc -DF_CPU=8000000 -Dasm=__asm -std=c99 -mmcu=attiny45 -Os -o test.elf -I includes *.c -lm $ avr-size *.elf text data bss dec
-
Thread
Layout überprüfen bitte (8051)
Masse unten rum legst, sparst du noch 4. In der Endphase, wenn alle Leitungen liegen, darf man zur Optimierung durchaus gegen die Vorzugsrichtung verstoßen.
Ich habe die Schaltung überprüft und es stimmt alles mit dem Schaltplan überein. Und ein paar Optimierungen des Layouts waren auch noch drin.
-
Thread
Atmega88P, Blinklicht in AtmelStudio 7 simulieren
nicht so lange warten zu müssen. Gruß Dennis [1] http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
kannst Du? Dieter F. schrieb im Beitrag #4622157: > In solchen Fällen schalte ich die Compiler-Optimierung komplett aus und > das Debug-Level auf Maximum. Dennis S. schrieb im Beitrag #4622425: > OHNE die > herablassende Art. Die kennst Du noch nicht :-) gute Nacht
-
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.
-
Thread
Mikrocontroller Einstieg (AVR,PIC)
PICs keine freien C-Compiler, die nicht in irgendeiner Form (Codegrößenlimitierung, schlechte Optimierung) verkrüppelt wären – nur, falls das für dich eine Rolle spielen sollte.
keine 2.Chance mehr für die PICs. David P. schrieb im Beitrag #4612201: > dass > AVR "nur" eine GCC abwandlung anbietet Der ggc kist mittlerweile für den AVR sehr gut optimiert: Übrigens benutzt auch Arduino den gcc unter der Haube (warum Arduino als eigene Sprache gilt, ist mir eh nicht ganz klar
-
Thread
C - Array Zugriff außerhalb Definition, keine Speicherverletzung?!
Indices fast nie zur Compilezeit bekannt sind und durch Optimierung mehr potentielle Stellen gefunden werden können. Warum im Beispiel keine Warnung ausgegeben wird, da musst du nen GCC-Entwickler fragen... Ohne Optimierung wird jedenfalls auch keine Warnung
schrieb im Beitrag #4610656: > Warum im Beispiel keine Warnung ausgegeben wird, da musst du nen > GCC-Entwickler fragen... Ohne Optimierung wird jedenfalls auch keine > Warnung ausgegeben obwohl außerhalb von array[] zugegriffen wird. Interessanterweise wird gewarnt, wenn man das Array global macht
-
Thread
Bits aus Byte-Array extrahieren Alg.
Quellposition und Zielposition bei der Division durch 8 mit Rest im Rest übereinstimmen. Anstelle über Optimierungen zu sinnen, solltest Du einfach den naiven Kopieralorithmus, bzw. die primitive Bitkopierschleife realisieren. Die Experten hier haben dann bestimmt noch Ideen, wie sich der Kopiervorgang des
von Mycro-Supra-Nenno-Prozessoren, die nur 64 Bytes zur Verfügung haben. Nicht umsonst übersetzt die GCC in der Regel bool in int.
-
Artikel
AVR-Bootloader mit Verschlüsselung von Hagen Re
zusätzliche Funktionen und eine Sprungtabelle eingebunden. im Ordner \test\ ein Test-Projekt in WinAVR GCC zur Demonstration der Bootloader Funktionalität. Im Headerfile AVRootloader.h eine universelle Schnitstelle zum Bootloader. durch einige Optimierungen im Code konnte der benötigte FLASH reduziert werden
war nicht ganz korrekt. Ist gefixt. PC-Software: die Kommunikationsgeschwindigkeit wurde durch Optimierungen beschleunigt. PC-Software: einige Fehler in der Bedienung etc.pp. beseitigt PC-Software: neue Einstellungen in der AVRootloader.ini [System]-AppCmd, [System]-AppCmdResponse, [Timeouts]-AppCmd.
-
Thread
Reihenfolge der Structs im Speicher durcheinander
würfelt der Compiler mir die Stukturen beim optimieren durcheinander. Ich habe versucht die Optimierung für den Bereich auszuschalten. #pragma GCC optimize ("O0") (ARM GCC Compiler) Leider funktioniert das nicht. (Weiß nicht warum.) Ich habe auch versucht die Strukturen in eine weitere zu verpacken
ich dem Linker für einen Codeabschnitt sagen kann, das er die Variablen nicht optimieren soll? (ARM GCC)
-
Thread
SDCC 3.6.0 RC1
bisher keine Files hinterlegt. https://sourceforge.net/projects/z80gcc/
Christian J. schrieb im Beitrag #4974581: > Hier steht was davon, dass der GCC für Z80 portiert werden soll, Die Chance, dass der gcc jemals ein Z80-Backend bekommen wird, schätze ich als äußerst gering ein. Für den LLVM stehen die Chancen ein wenig besser, siehe z.B. https
-
Thread
ATMEL (Microchip) erhöht die Preise
N. K. schrieb im Beitrag #4590971: > dass mein GCC für die .init > Sequenz länger braucht, als der Watchdog zum auslösen Aua, deswegen schaltet man den Watchdog - wenn es nicht wirklich zwingend anders sein muß - erst am Ende einer Initsequenz an
Axel S. schrieb im Beitrag #4666805: > Nur den gcc vermisse ich etwas. GCC setzt eine Register-Architektur voraus. Ihn mit einer Akku-Architektur zu quälen ist zwar nicht unmöglich, wie irgendein 68xx zeigt (via Pseudo-Register im RAM), aber wirklich
-
Thread
gcc c++ 3d Vektoren Standard?
Schreiben ist es in der Regel nicht getan, da fehlt dann auch noch die Validieren, Dokumentation, Optimierung etc.), oder Du setzt Dich mal einen halben Tag hin und ließt die Dokumentation einer Library, die so etwas kann und dann hat Dein Werkzeugkasten wieder ein wertvolles Werkzeug mehr.
Compiler. Dann noch ein include, und fertig. In einer Woche kann man alle 9000 Compiler Flags vom GCC lernen, Gott weiß warum du so lange brauchst um das einzige benötigte Flag -I zu finden, bzw. die Doku in der der pkg-config Aufruf steht. Die Installation von eigen ist sogar noch einfacher als die
-
Thread
Suche 16 bit CPU mit externem Buszugriff
Allerdings ist der als 6502-Nachfahre doch schon etwas angestaubt. Dafuer kann man fuer Performance-Optimierungen seine Assembler-Kenntnisse aus C64-Zeiten vervorkramen (oder einem anderen 6502-Rechner nach Wahl) :-).
bekannt sind, in Japan werden sie aber auch gerne von Bastlern genutzt. Deshalb haben sie eine gute gcc Unterstuetzung. (und die SH2 auch) Olaf
-
Thread
Blöder Compiler - Optimieren in C?
sie als 2 getrennte 8-Bit Variablen. Allerdings ist trotzdem recht viel Raum für Verbesserungen. Optimierung von Operationen auf Teilworte ist nicht die stärkste Seite von GCC. Ist zwar wesentlich besser geworden (da hat wohl Johann einigen Anteil), aber perfekt ist das nicht. Der Compiler weiss möglicherweise
avr schrieb im Beitrag #4566271: > Das Problem scheint zu sein, dass der GCC ungern/nie Variablen im Ram > manipuliert ohne sie komplett in die Register zu lesen. Im Zwischencode und in weiten Teilen der Optimierung sind das Wortoperationen, keine Byteoperationen. Zu Bytebefehlen
-
Thread
UART RX Interrupt Problem
sonst benutzt wird, dann darf das weg. Nicht aber die Schleife selbst. Zum Glück kennt sich der XYZ-GCC aber besser mit C* und Optimierung aus, als so manscher Poster hier.
hoffen. Ich bin mir sicher, ich hätte sonst auch einige Probleme mehr. Ein Glück weis der gcc es besser als ich, deshalb überlasse auch ich ihm die Optimierungen.
-
Thread
Entwicklungsumgebung für MSP430
des alten MSPGCC wurde zugunsten dieser unified Architektur aufgegeben. Es gab dann einen "normalen" GCC der durch uniarch auch MSP kann (den man jetzt auch in CCS runterladen kann). Aber selbst mit dem Code Composer Essentials Compiler verglichen ist das der totale Frickelmurks. Bedingt durch die gcc
Frickelmurks. Alleine aus einem Byte Zugriff auf ein 16 > Bit Register macht der 8 Rotier Befehle. Optimierung Fehlanzeige. Vielen Dank Chris für die Einschätzung.