-
Thread
Raspberry Pi 3 ARM v7 oder v8?
einen ARMv7 erstellt worden. Ich habe nun mal ein Hello World Programm geschrieben und es mit [code]gcc helloworld.c -o helloworld-raspi8 -march=armv8-a[/code] kompiliert. Das Ergebnis ist ein 32Bit Programm für ARMv8 welches auch auf dem Raspi läuft. [code]file helloworld-raspi8 helloworld-raspi8:
TrustZone and Virtualization Extensions [/code] Ich habe das Hello World auch mal auf einem PC mit ARMv8-gcc kompiliert. Das Programm läuft auch auf dem Raspi. Das sind noch ein paar andere Optimierungen vom Compiler her. [code]readelf -A helloworld-crossarmv8 Attribute Section: aeabi File Attributes
-
Thread
stm32F103 USB total absturz problem
das ich nicht irgendwo in Speicher schreibe wo ich nicht darf. Kann das eventuell durch Code optimierung hervorgerufen werden? Ich habe eigentlich -O0 als gcc Flag gesetzt. Habe auch schon versucht die NVIC Prioritäten zu ändern um auszuschließen das die ISR irgendwie unterbrochen wird. Die USB
-
Thread
Cmsis RTOS RTX: Stack Kontrolle
. Ich konnte es naemlich nicht. Ja, den konnte ich ändern, funktioniert einwandfrei. Umgebung: gcc auf Konsole :) >Wenn Du aus dem osKernelStart() nicht mehr zurückkehrtst ... hast Du >möglicherweise Tasks mit höherer Prioritaeten? Die Tasks haben alle osPriorityNormal. main() selbst ist
ähnliches beim alten RTX gemacht. Mich interessierte aber nur die maximale Stack Auslastung zwecks Optimierung. Dazu einfach die Stacks (User defined Stacks bei mir) vor der OS Initialisierung (im CMSIS RTOS in der SystemInit() bzw. pre-main) per memset auf 0xcc setzen und dann zur Laufzeit mit einen
-
Thread
FT800 / FT810 Library
PIC gab, für den AVR aber schon GCC. Wenn Du für den eine Konfiguration in der EVE_config.h geschrieben hast, gerne posten, das baue ich dann mit ein. Für den STM32 habe ich zum Beispiel auch noch nichts. So mal in den Raum geworfen
Und natürlich sind die Defines für die Ports und die Pins frei erfunden. :-) Edit: okay, die Optimierung für den PowerDown Pin ist eher überflüssig, das wird ja kaum mal verwendet. Edit2: das Define für DELAY_MS war falsch..
-
Thread
GCC für ARM Probleme mit "new" ?
Timerobjekte außerhalb des Konstruktors natürlich erhalten bleiben. Als Compiler verwende ich einen GCC für ARM. Kennt der vielleicht kein "new" ? Kann mir da Jemand weiterhelfen? Vielen Dank!!!
Hier gibt es ein Beispiel, wie man dem GCC "malloc" beibringt, und dadurch auch "new" : [[STM32_Eclipse_JLink_Linux/Windows#Optional:_Syscalls_implementieren]] Was auch manchmal hilft ist #include <new>
-
Thread
ATMega328, komisches Verhalten bei fast vollem Speicher
der Minimum-Code von hier: http://rn-wissen.de/wiki/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc#Dynamischer_RAM-Verbrauch
könntest dir auch die ersten Zeilen des Assemblercodes angucken bzw. mit dem Ergebnis des neuen avr-gcc vergleichen.
-
Thread
STM32F4 mit gcc-arm-none-eabi
Zusammen, ich versuche ein STM32-E407 Development Board von Olimex mit STM32F407ZGT6 CPU mit der GCC ARM Embedded toolchain (gcc-arm-none-eabi-4_9-2015q4) zu programmieren. Compiler und Linker (beides gcc) rufe ich mittels Makefile auf. Debugging mittels GNU gdb (GNU Tools for ARM Embedded Processors
welches sich ebenfalls in dieser Struktur unter /Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/ befindet (Danke an Steffen Rose). Die CFLAGS habe ich aus dem Artikel ARM GCC hier im Forum (https://www.mikrocontroller.net/articles/ARM_GCC) aus dem Kapitel Compiler & Linker Flags --> "Ohne Optimierungen
-
Thread
Optimierung Soft-PWM
Global Global = tmp;[/c] Also temporäre Variablen verwenden. Datentyp natürlich anpassen. avr-gcc optimiert Operationen mit globalen Variablen meist nicht wirklich oder zumindest sehr unzuverlässig.
volatile sind dem Compiler auch die Hände gebunden. Das darf er gar nicht anders. Trotzdem optimiert avr-gcc auch normale nicht-volatile globale und auch static(!) Variablen nur sehr unzuverlässig. Da kommt man oft nicht um temporäre Variablen herum. Einfach mal in größeren Projekten testen.
-
Thread
Projekthilfe gesucht - Parallela Cluster (Supercomputing :))
nicht programmieren. Es gibt genuegend Solver (glpk, lpsolve, cplex ...). Da durch solche Optimierungen viel Geld verdient werden kann, wurde schon eine Menge Hirnschmalz investiert.
inkl. Start des Programm sowie Beendigung, gemessen durch unix Time programm. Diesmals mit gnu optimierung, gcc t4.c -std=gnu99 -mtune=pentium-m -mfpmath=sse -Ofast -funroll-loops -march=native -flto Der Grund für iron<60 ist, dass am Ende noch Berichtigungen gemacht werden, und eigentlich die
-
Thread
STM32: Ich finde einfach keinen Fehler in meinem Code
Mit abgeschalteter Optimierung.
welchen compiler nehmt ihr denn? gcc linux?
-
Thread
delay Funktion
vorhandenen? Die sind getestet und funktionieren. https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29 >Ich hab das gefühl, dass die Funktion gar nicht angesprungen wird, hat >das vielleicht irgendwas mit der Optimierung zu tun Richtig. Der Optimizer schmeißt
Optimierung ausschalten -O0 (OH NULL) Trotz dem nimm die fertigen Funktionen. Da ist das Zeitverhalten sicher, vor allem wenn du Optimierung eingeschaltet lässt. Hopix
-
Thread
IIR Implementation: C-Code verschnellern
nicht die Stärke des AVR und auch nicht im Zusammenhang mit dem avr gcc, das ist etwas stiefmütterlich umgesetzt. static int32_t wnHP = 0; static int32_t wn1HP = 0; static int32_t wn2HP = 0; static int32_t HPout = 0; > TIFR1 |= 0xFF
ADCwert + ((3746 * wn1TP - 1726 * wn2TP)/2048); Hier würde ich im .lss File prüfen, ob der avr gcc schlau genug war, das als Bitschiebung umzusetzen. Mit etwas Pech ist das eine echte Division. > TPout = (wnTP + (wn1TP*2) + wn2TP); > TPout = TPout/1024; Hier das Gleiche.
-
Thread
Atmel ARM SAMD10 Bootloader, start app problem
den code :) aber leider wieder nix :/ Wo kann ich denn in den Atmel Studio Einstellungen die Optimierung einstellen? Ich denke ich bin aber wieder mal ein Schrittchen weiter.. Wenn ich app_start_adress so initiiere: uint32_t *app_start_address = (uint32_t *)(APP_START_ADDRESS+4); statt uint32
ldr r2, [r3] 000001DE msr msp, r2 --- c:\users\felix\Documents\Atmel Studio\7.0\GccApplication8\GccApplication8\Debug/.././main.c SCB->VTOR = (APP_START_ADDRESS & SCB_VTOR_TBLOFF_Msk); 000001E2 ldr r2, [pc, #8] 000001E4 str r3, [r2, #8] asm("bx %0"::"r"(app_start_address
-
Thread
LPC1768 OpenOCD arm-none-eabi-gcc 5.3.0
irgendwie machst du es dir aber auch schwer. Lade doch mal dieses Paket: https://github.com/adamgreen/gcc4mbed Das ist, wie der Name schon sagt, die mbed lib für gcc. Die gcc toolchain wird beim Start des OS-install scripts heruntergeladen. Dann wird ein BuildShell.cmd erzeugt das man startet und darin
loszulegen. Die Lib ist quelloffen und auf github gehostet, das ist die mbed-master. Wenn man mit dem gcc arbeiten möchte gibt es die Variante gcc4mbed, die installiert eben die gcc toolchain und man hat mit Null Aufwand die Möglichkeit Projekte in der Kommandozeile mit make zu bauen. Das MiniDK2 ist dem
-
Thread
GCC Compiler + ATXMEGA E = Schrott?
ATXMEGA8E5 mit dem AVR GNU C Compiler in Atmel Studio 7. Nehme eine nacktes (neues) Projekt (file>new: GCC Executable C project). Compiler-Optimierungen schalte ich ab. Dann hacke ich folgenden simplen Code ein: [c] #include <avr/io.h> uint8_t a=1; int main(void) { while (1) { if (
Das ist kein Bug, sondern Optimierung. Benutze volatile für a, dann sieht Dein Ergebnis anders aus.
-
Thread
dspic ausreichend für Audio Effekte ?
verarbeiten möchte. Und, warum soll der Compiler Geld kosten, es gibt doch Freeware, dann halt ohne Optimierung. Soll nach allem was ich gelesen habe aber noch ganz adäquat sein. Grüße Axel
Wer? Ich arbeite unter Linux mit arm-gcc und Makefiles + Editor nach Wahl.
-
Thread
Digilent Nexys3 (Spartan6), Microblaze und die Interrupts
mikroblaze gcc-kompilerschalter -s (Optimierung auf size) aktivieren
Bit Wurschtler schrieb im Beitrag #4500639: > mikroblaze gcc-kompilerschalter -s (Optimierung auf size) aktivieren Mit Optimierung auf size sind es leider noch 2984 byte.
-
Thread
goto verpönt - was dann nehmen?
im Beitrag #4532523: > in ASM umsetzen. Damit gewinnt man > (angesichts der idiotisch miesen Optimierung des AVR-Compilers) mehr. ist das so? hier meinen aber einige assembler Spezis anderes, so schlecht soll der gcc nicht mehr sein! Ich selber staune immer wie gut der gcc optimiert mit -0s
>Heinz L. schrieb: >> in ASM umsetzen. Damit gewinnt man >> (angesichts der idiotisch miesen Optimierung des AVR-Compilers) mehr. >ist das so? Nein. Das ist nur die Meinung eines gesicht, namens- und ahnungslosen Heinz. Das ist modern . . . >Ich selber staune immer wie gut der gcc optimiert
-
Thread
Compilerfehler?
Compilerfehler" sitzen vor der Tastatur ;-) Der hier scheint echt zu sein. Mit eingeschalteter Optimierung (-O1 oder -Os) wird die Berechnung von bandwidth in sdram_speed_test() nicht ausgeführt, ohne Optimierung geht es. [c] time = TCD0.CNT; PRINT("DMA transfer time is %u timer clocks.\
Falk B. schrieb im Beitrag #4493858: > Mit eingeschalteter Optimierung (-O1 oder -Os) wird die Berechnung von > bandwidth in sdram_speed_test() nicht ausgeführt, ohne Optimierung geht > es. Die 0 sollte auch bei abgeschalteter Optimierung ausgegeben werden, nur
-
Thread
Warum brauchen Android Apps so viel Speicher
um code size. Und da könnte man eine Menge rausholen, wenn der java Compiler so gut wäre wie der GCC. Sieht man ja schon, wieviel proguard rausholen kann. Von der Optimierung her ist das aber ein Witz ggü. GCC. Übrigens kann dies auch Obfuscation Versuche zu nichte machen; selber schon erlebt
natürlich nicht so optimal wie wenn man das zur Laufzeit macht, aber dafür kostet die Analyse und Optimierung auch keine Laufzeit.
-
Thread
STM32F4: Anfängerfrage: nach NVIC_Init lande ich in hardfault handler
dir gleich mal meinen Code an,. schau bitte selbst ob Du alles hast, meiner läuft. Prüfe auch die GCC Optimizer Einstellungen, Linker, LTO usw. Bei mir lag es daran. Es stürzte nämlich nur bei -O2 ab und nicht, wenn ich die Optimierung ausgeschaltet hatte. Moment... ich suche ..... In dem Code
extrem arrogant ist und sich für Gott hält. Die Libs sind für den Keil und lässt man sie durch den GCC laufen mit Optimierung erzeugen sie Hard Fault etc. da er volatile und static so gut wie nicht benutzt hat. Ich habe alle fremden Libs rausgeschmissen bei mir, alles selbst geschrieben. Die von Uwe
-
Thread
String besteht nur aus 0xFF - Linkerproblem? AVR Studio 7
nicht) in uint8_t. Schalte in der Compiler-Konfiguration die Warnings auf -Wall und die Optimierung auf -O0 (keine Optimierung). Jetzt solltest Du das Programm noch einmal compilieren und testen. Sollte funktionieren.
\ATmega_DFP\1.0.90\gcc\dev\atmega2560" Finished building target: UART-Test.elf "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock
-
Thread
Arduino Code Frage - Variablenzuweisung?
den der Prozessor vorgelegt bekommt, und der wiederum stammt aus dem Compiler, in diesem Fall der GCC. Und was der GCC alles macht (deine Frage im speziellen) um den Prozessor anzuweisen kann man in seiner (GCC) Dokumentation nachlesen ... da alles ziemlich streng nach Vorschrieft "gehandhabt"
Du kannst doch dafür die Optimierungen selber einstellen, ob es weg geht beim compilieren oder ob er den leeren Schrott behalten soll. Gruss
-
Thread
3,3V LDO 1A gesucht
leichter wird . . . Auch für Hardware gilt sinngemäß: https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
-
Thread
STM32F4xx: Kann mal jemand die SPI testen?
Ich habe gestern 1h damit verbracht. Es geht hier um taktgenaue Abfragen der Flags . Und ohne Optimierung werden die Zeiten eingehalten, mit Optimierung aber nicht mehr. Setze ich zb 5 "volatile" NOPs zwischen die befehle geht es auch mit Opmtierung.
Unterschiede in der Initialisierung oder de F469 verhält sich anders. Compiler im Atollic ist der gcc 4.8.3.
-
Thread
ideale STM32 Entwicklung unter Win/Linux für lau !
sind für die meisten Bastelprojekte völlig ausreichend - und sie sind deutlich ne Klasse besser als GCC. Tja, und viele sachlich und preislich für kleinere Projekte in Frage kommende µC haben sowieso nicht mehr als 32K an Flash. Reicht aus. Also was soll's? Tut hier jeder blutige Anfänger so,
ganz neu einsteigt. Erst wenn man ein fundierten Einstieg geschafft hat kann man sich auf die Optimierung der Werkzeuge einlassen. Am Anfang ist es wichtig, das die Werkzeuge nicht die Hauptaufgabe darstellen, sondern das Programmieren und die uC Hardware. Damit eben genug Zeit für das Einlesen in
-
Thread
Counter im ISR
Softwareerweiterungen bedenklich nahe an die Programmspeichergrösse kam... Was macht eigentlich der gcc mit R2-R15? Werden die tatsächlich für irgendwas benutzt oder liegen die eh brach?
die Register 0,1 (rund um die >Division) und 2 (für Null). Du erinnerst dich falsch: https://gcc.gnu.org/wiki/avr-gcc MfG Spess
-
Thread
Interpreter mit LLVM IR oder C als Zwischensprache?
Zwischensprache? Natürlich. Direkt LLVM-IR einzusetzen ist nur dann sinnvoll, wenn du damit Optimierungen ausdrücken kannst, die in C nicht (oder nicht so einfach) möglich wären. Bei deinem Kenntnisstand ist das wahrscheinlich nicht der Fall. Und C ist portabler als LLVM. (Was dir wahrscheinlich
generierten Codes alles im RAM passieren kann. Bei C muss ich erst eine C-Datei schreiben, diese mit gcc (z.B.) in eine Objektdatei übersetzen, die übersetzte Datei als dll/so-library linken und dann ausführen. Das sind viele Dateisystemzugriffe. Oder geht das Kompilieren und Ausführen auch in C komplett
-
Thread
.dll ohne Code/Header nutzbar?
Grundgerüst des verwendeten Quelltextes schließen kann, aber auch nur dann, wenn die DLL ohne Optimierung übersetzt worden sein sollte.
Hängt das name mangeling vom Code (main.c vs main.cpp) ab, oder vom Compiler (als Beispiel mal den gcc: gcc vs g++)? Man kann den C++-Compiler ja auch mit der C-Datei füttern.
-
Thread
Array Anfängerfrage
klingt plausibel und lesbarer ist es in Variante 1 allemal. Da >gebe ich euch recht. Eben. Um Optimierungen macht man sich eher später Gedanken, als Anfänger schon gar nicht. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
-
Thread
Mikrocontroller Auswahl C++ Unterstützung, CAN, I2C, Open Source Compiler
diese einfach aus dem Quelltext entfernt: https://github.com/chipKIT32/chipKIT-cxx/blob/master/src48x/gcc/gcc/config/pic32/mchp.c
Compiler ohne > Einschränkungen gibt. Copy and Paste von oben... Der PIC32-Compiler ist der gcc. http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html Quelltext downloaden, patchen, übersetzen. https://github.com/chipKIT32/chipKIT-cxx/blob/master/src48x/gcc/gcc/config/pic32
-
Thread
Checksumme Berechnen C++
ge-XOR-t wird. Ansonsten braucht man auch keine LUT, wenn man genug Zeit hat. LUT ist nur eine Optimierung. Ohne LUT muss man halt Bits einzeln herausshiften.
Manche Compiler haben schon eine crc16.h, z.B. der AVR-GCC. Einfach den C-Code kopieren. Bei 1GBit/s könnte sich ein LUT schon lohnen.
-
Thread
STM32F303 welche PErformance für DSP
die Rechenleistung ausreicht und bei Engpässen auf den STM32F4xx wechseln. Bei de Verwendung des gcc ganz wichtig: optimierung und Floatingpoint einschalten. Gruß, Stefan
-
Thread
Erfahrungen mit Micropython?
= false; } }[/c] Auf dem STM32F407VG Discovery Board ausgeführt, bei 168MHz Taktfrequenz, mit GCC und -Os kompiliert. Mit dem Debugger "result" ausgelesen: 21000001
Mehr sollten doch wohl die zwei "Store"-Instruktionen nicht brauchen! Hast du vielleicht ohne Optimierung kompiliert, den ART nicht eingeschaltet, nicht alle Takte auf Maximum gestellt?
-
Thread
GCC Optimierung killt Funktion
Hallo, ich werde noch wahnsinnig mit dem GCC :-( Jedesmal wenn ich Hardwarefunktionen codieren, die einwandfrei laufen OHNE OPTIMIERUNG und die dann einschalte kommt es zu seltsamen Dingen, meist einfach "funktioniert nicht mehr" bis "Hard Fault
langsamen Code erfreuen, weil die Optimierung da ja scheinbar schlechter ist, als diejenige des GCC.
-
Thread
c++ Zwischcode c anzeigen
google-Suche) > sieht man doch dass du dich auf einem Niveau bewegst auf dem absehbar > ist dass du den gcc-Optimierer nicht toppen kannst. > Unabhängig vom konkreten Problem. Ich glaube nicht, dass er versucht die Optimierungen vom gcc zu toppen. Es geht eher um langsamen C++ Code, den der gcc nicht
#4435184: > Und ein aktueller C++ Compiler optimiert auch entsprechend selber so das > eigene Optimierungen nicht wirklich besser sein dürften. Das ist stimmt zum Teil, aber: - GCC ist kein moderner Compiler. - Compiler werden überlicherweise besseren Maschinencode erzeugen wenn man das Gesamtergebnis
-
Thread
Suche Assembler für 32-bit ARM
Da der GCC keinen Binärcode erzeugt, sondern Assembler-Quellcode, wirst du im Gefolge eines auf GCC basierenden Entwicklungsssystems immer auch den passenden Assembler finden.
Einfach die Quelltext-Datei *.S nennen und dem GCC übergeben.
-
Thread
CooCox parasitär?
erinnert. Deren 16- und 32-Bit Umgebungen basieren auf GCC, dem sie zusätzliche Optimierungen beigebracht haben, ohne diese als Quellcode zu veröffentlichen. Das haben sie dadurch legal erreicht, indem sie den Compiler zwischendurch quasi aufbrechen, die Optimierungen
16- und 32-Bit > Umgebungen basieren auf GCC, dem sie zusätzliche Optimierungen > beigebracht haben, ohne diese als Quellcode zu veröffentlichen. Quelltexte gibt es schon http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html
-
Thread
Ist Usbasp gut?
zugegeben, ich verwende keine PICs, insofern bin ich da sicher nicht auf dem letzten Stand. > die Optimierungen braucht man meist auch > nicht wirklich vor alledem nicht als Anfänger Err, Nein. Falsch. Ganz falsch. Gerade als Anfänger will man einen guten Compiler, der alle Optimierungen macht. Weil
Bei den Cortexen kann ich z.B. meine Entwicklungsumgeben gleich lassen, ich verwende arm-none-eabi-gcc mit Makefiles. Damit kann ich sehr schön Code für LPC und STM32 generieren.
-
Thread
Frage: AVR-GCC
Bernd schrieb im Beitrag #4427074: > Keine Variablen in _delay_us mehr erlaubt? Seit welcher AVR-GCC Version > ist das so? M.W.n. war das schon immer so. D.h., erlaubt sind sie schon, aber es kommt nicht das dabei heraus, was du erwartest mangels Gleitkomma-Optimierung... Mach ne Schleife und
Guckst Doku: http://gcc.gnu.org/onlinedocs/gcc/AVR-Built-in-Functions.html
-
Thread
User Sections GCC
das bisher soweit, aber letztens musste ich weil ich keinen Platz mehr im Bootloader hatte, die Optimierung einschalten. Also Wechsel von -O0 auf -O1 das war alles. Jetzt habe ich das Problem, dass dieser Shared- Memory nicht mehr so funktioniert wie er ohne Optimierung funktioniert. Umsetzung:
tutgccadding-crc-and-app-length-hex-files http://mcuoneclipse.com/2012/11/01/defining-variables-at-absolute-addresses-with-gcc/ sg
-
Thread
Delay mit Timer
[[AVR-GCC-Tutorial/Die_Timer_und_Zähler_des_AVR]]
lucas schrieb im Beitrag #4423589: > Die Delay Routinen die in der Lib vom Gcc mit dabei sind. > Das haut bei mir irgendwie nicht hin. Dann benutzt du sie entweder falsch (z.B. keine Konstante übergeben), du hast F_CPU falsch oder gar nicht definiert oder du hast die Kompiler-Optimierungen
-
Thread
Windows 10 ist hässlich. Ich mag es nicht.
es noch komischer, er lud sie runtern und nach der Installation guckte mich Version 1.0.6. an zum gcc installieren bin ich dann auch nicht mehr gekommen. Wine lief nicht übel, Irfanview 64-bit, aber keine plugins dafür. DPP 1.0 lief auch nicht, der Patch der REG brachte auch nix weil die DPP 3.xx nicht
denen Windows kaum noch benutzbar ist. BTW, Kernel hab ich noch nie selbst gebaut, aber meine AVR-GCC's regelmäßig. Das geht auf einem RICHTIGEN Betriebssystem nämlich ganz einfach. So muß ich nicht warten, bis sich jemand erbarmt einen Nachfolger für den 2010er WinAvrGcc zu bauen. Von diversen anderen
-
Thread
PC kann -1 + 1 nicht rechnen.
im Beitrag #4420487: > Vielleicht -ffast-math oder -funsafe-math-optimizations aktiviert? Optimierungen sind ganz aus.
ne winzige Abweichung von null. Aber halt > nicht null..... Ich schreib übrigens in CodeBlocks mit GCC Dafür hab ich einen Text: > Floating point arithmethic is like moving a pile of sand. Every time > you do it, you loose a little sand and pick up a litte dirt. MfG Klaus
-
Thread
in_addr_t - Datentypen Umwandlung Sinnfrage
Kenntnis des auftretenden Wertebereichs ausschliessen kann, nach OR jedoch nicht unbedingt. Mindestens GCC 4.7 scheint in ähnlichem Zusammenhang bei amd64 Schwächen zu haben, denn die implizite zero extension aller 32 Bit Operationen wird nicht konsequent genutzt.
Rolf M. schrieb im Beitrag #4419693: > Vor allem im Zusammenhang mit Optimierung stelle ich es mir nicht so > einfach vor, das so umzusetzen, dass in jeder Situation das richtige > rauskommt, ohne dabei unnötige Operationen einzubauen. Nicht nur das. Bei Maschinen mit
-
Thread
automatischer Vorschub für Drehbank
ja entsprechendes finden. Chris D. schrieb im Beitrag #4888387: > Ok - aber Tipps und Code-Optimierungen sollten drin sein. Gern - wobei ich auch nicht so der Optimierer vor dem Herrn bin. Viele Grüße Nicolas Edit/Nachtrag: Sehr schön, da hat sich ja schon alles gefunden.
mit anderen Dingen :-) > - Welche Entwicklungs-/Build-Umgebung hast Du genutzt? Den freien GCC-Port arm-none-eabi-gcc mit einem einfachen Makefile unter Geany und dem alten Texane St-Link. Im Moment verwende ich noch die alte SStandard Peripherals Library. Wer nur testen möchte, für den werde
-
Thread
Suffix für uint8_t
dem mit & vergleichen. Oder, wenn es so zeitkritisch ist, Assembler nehmen. Hast du die Optimierung an? Welche?
A. K. schrieb im Beitrag #4414555: > lässt GCC deshalb 2 Indizes parallel laufen, einer mit 32 fürs Zählen > und einer mit 64 Bits fürs Adressieren, weil i negativ sein kann: Das war Unsinn. Komplizierter als mit 64-Bit Variablen ist der Code
-
Thread
WordClock mit WS2812
Hangup-Problem bei Aktivieren des LDRs beseitigt - Neu: Nachtschaltzeiten in der Weboberfläche - Optimierung des HTML-Code-Generators
Also ich könnte den ARM GCC vermutlich in der default.conf händisch eintragen. [c] <armgcc> <NAME> <str> <![CDATA[ARM GCC Compiler (generic)]]> </str> </NAME>
-
Thread
ATmega 328 - fehlerhaftes Rechenergebnis
überhaupt noch Funk-Radio hört oder ob überhaupt noch jemand da ist, der Radio hören kann. Kleine Optimierung: Geht man davon aus, dass wir das Jahr 2000 hinter uns haben, dann kann man die globale Variable year als uint8_t nutzen und rechnet year = (uint8_t)(year_x + k - 100); Dann nutzt man printf
ab lediglich mal flott auf der Kommandozeile meines Linux ausprobiert und nicht auf einem AVR. > gcc rds.c -o rds > ./rds Viel Spaß damit.
-
Thread
Assembler aus Hex-Dump
hex_dump.hex > hex_converted.asm (http://rn-wissen.de/wiki/index.php/Assembler-Dump_erstellen_mit_avr-gcc) Dazu hätte ich ein paar Fragen. Ist als Architektur "avr" richtig?? Ich habe auch schon Beispiele gesehen bei dehnen avr4 oder avr2 standen? Gibt es eine vergleichsweise bequeme Möglichkeit
herauszufinden, aus wo welche Sections beginnen? http://rn-wissen.de/wiki/index.php?title=Avr-gcc/Interna#Speicherverwaltung