-
Thread
AVR als EPROM benutzen (C-Optimierung)
[/c] Nur eigentlich wollte ich es ohne asm machen. Jemand eine Idee wie ich den C-Compiler (gcc) dazu bekomme es ohne die unnötigen OR zu machen? Mit nem Union wirds noch 3 Takt länger...
Man kann sich im Compiler-Explorer den generierten Code sofort ansehen: http://gcc.godbolt.org/ Leider unterstützt der Compiler-Explorer nur gcc-4.5.3 für den AVR, für die IA32/IA64 bis zur aktuellen Version 6.2. Ich kann eigentlich jedem nur empfehlen, sich das mal anzusehen
-
Thread
for(;;) bedeutung?
Geschwindigkeitsvorteil in manchen Fällen keinen Unterschied zum Bibliotheks-printf merkt. 2. Der GCC macht zwar kleinere Optimierungen, indem er, wo dies möglich ist, den printf durch einen putchar- oder puts-Aufruf ersetzt, eine Optimierung in Anbhängigkeit von den Argumenttypen ist aber (
Compiler muß das selber handhaben - SELBER! verstehst du das? Du weißt aber, dass er das im Falle von GCC auch tut? Hier eine Liste der im Compiler eingebauten Standardfunktionen: https://gcc.gnu.org/onlinedocs/gcc-6.2.0/gcc/Other-Builtins.html#Other-Builtins Soviel dazu, sich erstmal zu informieren.
-
Thread
C code UART Atmega und Optimierung
Hallo Leute, habe für einen ATMega folgenden Code erstellt, kann ich da noch was optimieren? ich bin leider Anfänger in Sachen C Programmierung und wollte jetzt etwas Hilfe. Vielleicht lässt sich da noch was verbessern... [c] #define FOSC 16000000 #define F_CPU FOSC #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <string.h> #define UART_MAXSTRLEN 32 volatile uint8_t uart_str_complete = 0; volatile uint8_t uart_str_count = 0; volatile char uart_string[UART_MAXSTRLEN + 1]
-
Thread
STM32F7 GCC Speicherzugriff Optimierung
Hallo, Ich spiele grade an einem einfachen Ringbuffer auf einem STM32F7 rum. Hierbei habe ich festgestellt das der Mikrocontroller ein enorm hohen Teil (ca 50%) meiner "Rechenzeit" mit dem auslesen aus dem Buffer beschäftigt ist. Die aufzurufende Funktion gibt einen wert aus mit einem delay zurück und sieht folgendermaßen aus: #define BUFFER_SIZE 11499 float RingBufferDelay(int delay) { int offset = 0; if (delay< 0) offset = buffer.write + delay- 1; else offset = buffer.write - delay- 1; while (offset < 0) offset += BUFFER_SIZE; return data[channel][offset]
-
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