-
Thread
Neuer ATtiny104?
ok, der "Support" ist ja von Atmel... Die werden schon wissen, warum sie den nicht offiziell bei GCC eingekippt haben. Das war wohl mal ein /checklist item/ des zuständigen Menschen im Marketing, dass mit dem Auftauchen der ATtiny10 der GCC-Support dafür vorliegen solle, hatte ich den Eindruck
der "Support" ist ja von Atmel... > > Die werden schon wissen, warum sie den nicht offiziell bei GCC > eingekippt haben. Oder hab ich das falsch verstanden? http://gcc.gnu.org/gcc-5/changes.html > On AVR, support has been added for the devices ATtiny4/5/9/10/20/40. > This requires Binutils
-
Thread
ARM Cortex M4 Assembler
chris_ schrieb im Beitrag #6586996: > Weiß jemand, wie man aus dem GCC einen Assembler Abschnitt aufruft und > wie die Parameterübergabe aussieht? Mit Inline Assembler kannst du alles so aufrufen, wie es dir beliebt. https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html
Der gcc arbeitet auch mit Assembler Files .s Ich benutze das bei einem Bare-Metal Projekt für den Startup-Code. https://stackoverflow.com/questions/7190050/how-do-i-compile-the-asm-generated-by-gcc gcc
-
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
"extern" bei unterschiedlichen .c macht Probleme
Variablen hinterlegt. Normalerweise hat er aber bei derart einfachen Konstanten und aktivierter Optimierung keinen Grund dazu.
> Normalerweise hat er aber bei derart einfachen Konstanten > und aktivierter Optimierung keinen Grund dazu. Darauf verlasse ich mich dabei natürlich, dürfte bei einem anständigen Compiler auch keine so abwegige Annahme sein.
-
Thread
AVR-Studio 4.19 und JTAG ICE MK2 unter Windows 11 64 Bit installieren
Harald K. schrieb im Beitrag #7856793: > Zum Microchip Studio gehört eine freie gcc-Version, die man einfach so > nutzen kann Falls du die XC8 Toolchain meinst: Darin hat Microchip einige Optimierungen entfernt, um sie als "pro" Version gegen extra Geld zu verkaufen: -O2, -O3,
man wird nicht gezwungen, XC8 zu verwenden. Der gcc kennt natürlich all' die Optimierungsoptionen.
-
Thread
Programmabsturz eines Consolenprogramms unter Windows - wie Fehler finden?
aus der Textdatei die Audiodatei in 3 neue Dateien im Waveformat. Unter Linux kompiliere ich mit gcc 4.7.3 bzw. cross-kompiliere für Windows mit dem i686-w64-mingw32-gcc 4.6.3. Das Programm läuft anstandslos unter Linux und in der VirtualBox unter Windows 7. Es stürzt ab auf mehreren anderen Windows
Gerhard Z. schrieb im Beitrag #4059353: > habt ihr parat, wie ich dem gcc mitteile, dass er den Stack vergrößern > soll? das sollte keine Option vom Compiler sein. Beim starten eine threads kann man die Stackgröße mitgeben. Aber wie es beim Hauptprogramm geht kann ich
-
Thread
Möchte jemand für mich ein PIC-Assemblerprogramm schreiben?
Gibt es für PIC24 keine richtige freie Entwicklungslösung. MPLABx kommt mit irgendwie kastriertem gcc daher (da geht dann nach einer gewissen Zeit die Optimierung aus oder so). Zeig mir wie ich mit ähnlichem Komfort wie bei AVRs für den PIC optimierten C Code programmieren kann und ich geb ihnen
Gibt es für PIC24 keine richtige freie Entwicklungslösung. MPLABx > kommt mit irgendwie kastriertem gcc daher (da geht dann nach einer > gewissen Zeit die Optimierung aus oder so). Korrekt. Der Freeware-Compiler disabled die höchste Optimierungsstufe bzgl. Size Optimisation, soweit icht weiss. Und
-
Thread
Schnelle Arithmetik
> Wenn man es dem Compiler nicht sagt (das inlinen) wird er es nicht > machen. Der GCC schon. Wenn er meint, inlinen ist kürzer/schneller macht er das, auch ohne inline Keyword. Mit Keyword, zwingt man ihn dazu.
Eine weitere Optimierung waere die Sinutabelle auf 128 Phasen Werte zu reduzieren. Und die Sinustabelle auf eine Wertbreite von 256. Das waere dann ein Wert fuer alle 3 Grad, und eine Amplitudenaufloesung von 1%.
-
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?
-
Artikel
AVR-GCC-Tutorial/Exkurs Makefiles
werden alle temporären Dateien gelöscht (="aufgeräumt"). Sonstige Einstellungen. Optimierungsgrad. Der gcc-Compiler kennt verschiedene Stufen der Optimierung. Nur zu Testzwecken sollte die Optimierung ganz deaktiviert werden (OPT = 0). Die weiteren möglichen Optionen weisen den Compiler an, möglichst kompakten
der Compiler diese "Variablen" direkt Registern zuweist. Dies kann vermieden werden, indem die Optimierung abgeschaltet wird (im makefile). Man simuliert dann jedoch ein vom optimierten Code stark abweichendes Programm. Das Abschalten der Optimierung wird nicht empfohlen. Statt des Software-Simulators
-
Thread
#ifndef geht nicht
schreibe, wird blub(); nicht compiliert und der Code wird entsprechend kleiner. Wenn ich das gleiche mit gcc mache sehe ich aber keine Größenänderung. Muß ich noch etwas voreinstellen?
Vielleicht mal Optimierung einschalten ( mit -Os ) ?
-
Thread
Wann ist bei einem AVR der Flash-Speicher genau voll?
enthalten, oder muß ich bei kompilierten 32768-256=32512 Byte aufhören zu programmieren? (oder Optimierungen suchen, hab schon vieles in's EEPROM ausgelagert)
sparen kann und zum generellen verständnis wo was gespeichert wird empfehl ich dir mal das AVR GCC Tutorial - da steht einiges drin wo wann was gespeichert wird. gruß, auch sven
-
Thread
Linux GCC 4.0.1 AVR Toolchain
Hmm, GCC 4.x, du meinst, den sollte man wirklich schon ernsthaft für den AVR benutzen? Alles, was ich darüber bislang weiß ist, dass das Beta-Qualität ist. Interessant für Tests (manche Optimierung soll
Hmm, keine Ahnung, ich hab jedenfalls keinen aktuellen AVR-GCC für Linux gefunden und kurzerhand selber kompiliert. (bin auch AVR Newbie) Die GCC Release Notes sagen nichts von Beta Status, ausser ich habs nicht gesehen?
-
Thread
Download Code MSP430
Hallo, ich benutze den GCC+MSP-GCC-Downloader zum programmieren des Codes im MSP430. Der MSP ist mit 60 kByte Flash ausgestattet (MSP430F169). Wird der Code größer als 0x9000 löscht zwar der Downloader den Chip hängt aber bei
Sinn. Mein Eclipse schmiert auch gerne mal ab, wenn ich die Optimierung anhabe, und irgendwo in einer 3. Subroutine einen Breakpoint setze. Ist halt Open Source, das ist nicht unfehlbar sondern in vielen Sachen weit hinter richtig teuren kommerziellen Sachen wie
-
Thread
Komplexes Problem: C++ xml Server und Tomcat Java (forwarding SOAP xml Requests)
mit CppCheck und PVS-Studio - Quelltext einfach unter Windows/Linux prüfen -AdressSanitizer aus dem gcc/clang (ab gcc 4.8 unklar ob für AIX verfügbar) und/oder Valgrind für Runtime-Analyse -direkte manuelle Analyse des Codes also mal Fakten auf den Tisch: 1. Welche C/C++, AIX/Linux Erfahrung hast
PVS-Studio - Quelltext einfach unter > Windows/Linux prüfen haben wir > -AdressSanitizer aus dem gcc/clang (ab gcc 4.8 unklar ob für AIX > verfügbar) > und/oder Valgrind für Runtime-Analyse > -direkte manuelle Analyse des Codes Analysiere gerade den Java Teil, inkl. statischer Code Analyse, manuelle
-
Thread
Funktion mit gleichbleibender Ausführungszeit
hohem Aufwand mit einem Timer machbar. Moegliche Alternative: Funktion in eigene Datei und ohne Optimierung nur diese Datei kompilieren.
Beitrag #4177562: > Linker optimieren nicht. Tun sie sehr wohl. Und nicht erst seit gestern. Die gcc Toolchain kann's seit 2005: http://hubicka.blogspot.de/2014/04/linktime-optimization-in-gcc-1-brief.html Aber auch das dürfte bei diesem Beispiel keine Rolle spielen, da gibt's nach dem Compilieren
-
Thread
"undefined reference" arm-elf-ld
"-Funktionen aus der "lib_AT91SAM7S64.h" betroffen sind. Ich vermute, dass der Compiler (gcc 4.10) ohne Optimierungen den Code einfach nicht entsprechend ersetzt. Gibts da ne Lösung (außer die inlines entfernen)? Vielen Dank
Jetzt geht es. Ich verwende übrigens den gcc 4.1 aus GNUARM unter Ubuntu Linux. Selbst kompiliert.
-
Thread
sun-tracking mit mikrocontroller
da es nur ein Anfängerkurs war und die Zeit wie immer sehr knapp). Die Vermutung war, das die Optimierung irgendwo die Timings für die Displayansteuerung verhaut. Gruß Kai PS: Wir haben das AVR Studio 5 verwendet.
Kai S. schrieb im Beitrag #2869493: > Vermutung war, das die Optimierung irgendwo die Timings für die > Displayansteuerung verhaut. Die Vermutung ist eher, dass euer C derart mies war. Nichts für ungut.
-
Thread
Lästern -> Ratespiel!!! Gesperrt
einzelstehend (also auch nach schliessender } oder z.B. i++;;;; ) eine leere Anweisung erzeugt, wenn Optimierung ausgeschaltet war. Nicht, dass das falsch ist, oder irgendjemand Compiler ohne Optimierung nutzt oder irgendetwas, dies nur zu den "leeren" Semikolons als Denkanstoss. ich "persönlich (!!!)" würde
Gerade mal nachgeschaut: dem GCC, um dem es hier ja geht, erzeugt auch ohne einegschaltete Optimierung KEINE leeren Anweisungen. Also ist mein Einwurf zumindest bei diesem Compiler hinfällig. Gruss, XtSI
-
Thread
Umgang mit Volatile Variablen im Code, beispiel "atoi"
Frage: Die beiden Variablen Volatile oder ist es nicht notwendig? Theoretische Frage: Wenn die Optimierung ausgeschaltet ist, hat das Volatile auch keinen Sinn mehr oder?
> Mit der Optimierung hat das nichts zu tun. Mmmh. Naja. So richtig korrekt ist auch nicht. Natürlich geht es darum, ob man dem Compiler erlaubt davon auszugehen, dass sich ein Wert nicht geändert haben kann oder
-
Thread
MMC/SD/SDHC card library von R.Riegel "verkleinern"
Die Lib ist denke ich vielen hier bekannt. Hast Du die Optimierung eingeschaltet?
Jetzt komm ich mir blöd vor... welche Optimierung meinst du?
-
Thread
mega8 Flash Verwirrung
beim überfliegen des Codes kann ich keine entsprechenden entdecken. Auf was steht die Code optimierung?
hohe Speicherdarf nicht nachvollziehbar In den lcd-routinen wird _delay_ms() benutzt, ohne Optimierung zieht das die float-libs mit rein. Oliver
-
Thread
PWM mit dem ATTINY26
eine Standardbibliothek, auf die man zurückgreifen möchte. Im hosted mode (der der Default ist beim GCC) kann der Compiler bestimmte Optimierungen vornehmen basierend auf impliziten Annahmen über das Verhalten von Standardfunktionen. Das ist manchmal gar nicht so schlecht. Man kann simpel einen Sack
Der avr-gcc will ein "int main(void)", sonst kommt eine Warnung.
-
Thread
GCC -> ASM
@echo off set mcu=90s2313 set main=test set ac=c:\avr\winavr path %ac%\bin;%path% avr-gcc.exe -xc -Os -mmcu=at%mcu% -Wall -g -o main.out *.c avr-objdump.exe -t -h -S main.out >%main%.lst avr-objcopy.exe -O ihex main.out %main%.hex avr-size.exe -B main.out ----------------------------
keinerlei Symbole dranhängen, damit sieht der Disassembler sie nicht mehr. Bei bestimmten Optimierungen kann die Ausgabe auch ziemlich konfus aussehen, weil ein Compiler, je ,,RISCiger'' ein Prozessor ist, um so mehr Verbiegungen am generierten Code vornimmt, um ihn optimal auf den Prozessor anzupassen
-
Thread
delay Funktion arbeitet falsch??
ausgeben. Dafür empfiehlt sich die CTC-Betriebsart des Timers (falls vorhanden). s. a.: [[AVR-GCC-Tutorial]]
was meint ihr mit Optimierung?
-
Thread
C komisches Verhalten
setzte ich mich auch gerade mit diesem Problem auseinander. Mir ist dabei aufgefallen, dass der AVR-GCC teilweise wenig nachvollziehbare Optimierungen macht. z.B. wird für unterschiedliche AVRs ohne verständliche Gründe ganz anderer Code erzeugt, der mehr oder weniger Taktzyklen benötigt.
Compare) > auswerten kann. Len muss vorher um eins korrigiert werden. > Probiere das 'mal mit AVR-GCC aus. Du wirst Dich wundern..
-
Thread
dev-c++ konfigurieren (WinAVR)
Beim Code::Blocks-Team ist anscheinend auch der ein oder andere Entwickler von dev-C++ mit dabei. AVR-GCC wird von Code::Blocks auch direkt unterstützt.
du dir irgendwo über ein Array hinausschreibst oder ähnliches. Unter Code::Blocks wird wohl ne Optimierung eingeschaltet sein (O1, O2, O3, Os), während bisher nicht. Ohne Optimierung kann es sein, dass an beliebiger Stelle PaddingBytes eingefügt werden, was dazu führt, dass du ohne Optimierung in diese
-
Thread
Gibt es Zählerbausteine mit seriellem Ausgang?
Olaf schrieb: > Dann gibt es jetzt also einen gcc fuer Pics? Das ist naemlich meine > erste Forderung an einen neuen Controller. Microchip verwendet sowohl für die 16-Bit Schiene (PIC24/30/33) als auch für die PIC32 höchstselbst GCC als Basis ihres
Optimierung aus.
-
Thread
Kein Atmega 324A mehr in AVRDUDE?!
Hallo, genau da punktet Arduino und räumt mit ihren hochaktuellen avr-gcc 7.3.0 gnadenlos alles ab. Mal ernsthaft. Wenn damals Atmel und jetzt Microchip an der avr-gcc Entwicklung mitmachen würde, dann hätte auch jeder wie bei ARM aktuelle Toolchains zur Verfügung. Da
die eine oder andere Überraschung erleben. Und was die Codeoptimierung betrifft, wurden hier für gcc ja schon ein paar Beispiele aufgeführt, auch wenn sich die Diskussion dann etwas zerfasert hat.
-
Thread
Byte über UART auswerten.
wenn man auf den HW-Multiplier verzichtet und sie durch Schiebeoperationen ersetzt, wie es der AVR-GCC-C-Compiler je nach eingestellter Optimierung auch macht. Welcher Weg im Einzelnen günstiger ist, entscheidet der Compiler). Bei anderen Prozessoren kann man dann z.B. über eine sukzessive Addition
.... Also nochmals vielen Dank an die Wahnsinnigen :D die beim AVR-GCC-Kompiler mitgewirkt haben.
-
Thread
GCC und LDS/STS auf Attiny10
Ich kämpfa gerade mit avr-gcc 4.7.2 und einem Attiny 10. Der Compiler weigert sich, die kurzen 8-bit LDS und STS für den Speicherzugriff zu nutzen, sondern erzeugt stattdessen einen indirekten Zugriff über das Z-Register. Das ist
ganze Reduced-Core-Kram liegt derzeit einzig und allein bei denen. Den patchen sie selbst in den GCC rein, und meines Wissens ist er nach wie vor in einem reichlich halbbackenen Zustand.
-
Thread
8 Bit aus 32-Bit-Variable auswählen
Fragestellung nicht deine Umsetzung. Vielleicht kennst Du schon das Schlüsselwort UNION ? https://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html
Der Compiler versteht was ich will wenn die Optimierung eingeschaltet ist. Dann ist der Code kompakter als Assembler!
-
Thread
Atmel Studio: uralter AVR-GCC?
#5999150: > Habe mir das "aktuelle" Atmel Studio von Microchip geladen. Was mir > auffiel, der GCC ist uralt. Das Studio meldet: "AVR/GNU C Compiler : > 5.4.0". > > Hier ist man bereits bei Version 9: https://gcc.gnu.org/ Die v8+ willst du verwenden wegen http://gcc.gnu.org/PR81268 Die v9 willst du nicht verwenden wegen http://gcc.gnu.org/PR91189
-
Thread
ATTINY 433MHz Fuchssender mit akustischem Grillen-Sound
kleiner > geht es nicht So ist es! Welche Compiler version hast du verwendet? Setzt das Optimierung Os voraus, oder macht gcc das bei dir immer? Ich bin echt überrascht ...
version hast du verwendet? Alt. WinAVR20100110. (Never change a running system). > Setzt das Optimierung Os > voraus, oder macht gcc das bei dir immer? Ich bin echt überrascht ... Ob Voraussetzung dafür weiß ich nicht, ich nutze immer Os. Gerade ausprobiert: mit O0 und O1 macht er's umständlich.
-
Thread
ARM - Probleme mit sprintf (Linkerfehler)
umgeht. Warum das Problem bei sprintf(test, "Hallo Welt"); nicht auftritt, liegt daran, dass der gcc hier schon mit der Optimierung zuschlägt. Der parst das "Hallo Welt" schon und stellt fest: ups, hier ist ja gar kein sprintf nötig, ein strcpy hätte auch gereicht. Und genau das baut er dann ein. Kannst
Der AVR-GCC liefert schlicht und ergreifend eine andere C-Library mit als der ARM-GCC, die kein malloc () und damit kein sbrk braucht. Solche libraries gibt es natürlich auch für ARM, die muss man "nur" dem GCC
-
Thread
Attiny mit komischem verhalten
vergessen raus zunehnem :-) Die LEDs sind per 1k Widerstand angeschlossen wie im AVR TUT. An der Optimierung sollte es nicht liegen die is aus ;-D
Hannes wrote: > _delay_ms(1000) kannst Du vergessen. Dem geht nicht. Das muß dann schon aber ein GCC ganz tief aus der Mottenkiste sein. Ab WINAVR 20071221 und neuer geht das. Peter
-
Thread
Günstiger Anfang mit ARM Gesperrt
noch etwas? Wie sieht es da im Linux-Umfeld aus? (habe irgendwo hier gelesen, dass man den Standard gcc mit entsprechenden Parametern wohl auch Binaries für Cortex M0 erzeugen lassen kann) Danke auch noch für weitere Tipps. Michael
Beitrag #4057548: > Langsam ist es genug mit dem Getrolle... Yep, dann hör doch auf damit. GCC gibt's auf jeden Fall schon länger als Openoffice, und auch OpenOCD gibt es schon so lange, wie Keil beispielsweise zu ARM gehört.
-
Thread
[AVR][GCC]: Ansteuerung für Funkschalterset
Hallo! Ich habe in den letzten Tagen endlich mal ein Projekt fertiggestellt. Bei (unserem) "Bauhaus" gibt es momentan für EUR 9,95 ein Funkschalterset mit 3 Funksteckdosen und einer Fernbedienung. Ich habe diese Fernbedienung analysiert, auseinander gelötet, die nötigen Teile auf eine Lochrasterplatine gebaut und das Ganze mit einem ATMega16 angesteuert. Falls jemand Lust hat das Ganze nachzubauen, dann gibt es hier meine Projektbeschreibung inklusive Schaltplänen und Source Code: http://www.thomaskropf.at/funkset.php Ich hoffe es ist für jemanden von Nutzen. MfG, Thomas
-
Thread
Hilfe nötig für vereinfachung einer c Funktion
Ich wäre dankbar wenn jdm erfahrenes einfach Tipps geben kann oder eine Optimierung meiner Lösung durchführt? Programm soll Macher auf einem esp laufen
Beitrag #6797532: > Ich wäre dankbar wenn jdm erfahrenes einfach Tipps geben kann oder eine > Optimierung meiner Lösung durchführt? Immer noch? Tipp und Optimierung hab ich doch schon gegeben! Aber gut, etwa so: [code] #include <stdio.h> #include <string.h> void convert (char* from, char*
-
Thread
Computed Goto's in C/C++
Assemblerprogrammierer mit Sicherheit keinen besseren Code programmieren kannst. Der wichtigste Ansatzpunkt für Optimierungen ist natürlich immer noch der Algorithmus.
Code zu debuggen, der anders ist als der Release-Code, darüber kann man streiten. Vor allem bei Optimierungen, die oft noch so manchen vorher unbemerkten Fehler zutage fördern.
-
Thread
Was heißt __IO beim GCC
dein GCC so läuft.
Also ich verwende einen Cortex-Me von ST mit GCC als Compiler. Mit IO verbinde ich eigentlich aus der 8-Bit Zeit, daß es um den IO Bereich geht, aber das kann hier nicht stimmen. So sieht der Codeteil aus : [c] __IO uint32_t NbrOfPage = 0x00
-
Thread
Probleme mit MISRA C
0x12345678 << 36 = 0x23456780 0x12345678 << 36 = 0 0x12345678 << 36 = 0 [/pre] Compiler ist der GCC für x86 mit -O2.
36&0x1f) = A<<4 führt. Da kann es natürlich je nach Compilerversion Unterschiede geben, ich habe GCC 4.5.1.
-
Thread
Optimizer Unterschiede mit GCC - Codevision - IAR
Der AVR-GCC optimiert gnadenlos mehrfache Einlesungen derselben Variable weg, wenn diese nicht volatile definiert ist. Z.B. wenn Dein if/else in einer Schleife erfolgt. Peter
(hier avr-gcc) legt Dinge fest, die im Standard "Implementation defined" sind, wie etwa die Größe des Typs int.
-
Thread
PDF im Vorwort von [[AVR-GCC-Tutorial]]
Hi, im Vorwort von [[AVR-GCC-Tutorial]] zeigen die Links im pdf http://www.mikrocontroller.net/wikifiles/1/1b/AVR-GCC-Tutorial.pdf ins wiki, nicht ins pdf. Gehört das so? Das Inhaltsverzeichnis eines pdf-Dokumentes sollte
Erstmal danke für die Optimierung und Verbesserung der Darstellung vor Beginn der Aufstückelei. Falls man sich nicht in Zukunft auch für die Pflege das GCC Tutorial zuständig fühlen will (ich tue es bis dato), bitte ich die grade
-
Thread
SPIEN disable
mcucsr = MCUCSR; mcucsr |= (1 << JTD); MCUCSR = mcucsr; MCUCSR = mcucsr; Bei abgeschalteter Optimierung tat sich auf allen vier JTAG-Pins nichts. Bei optimaler Optimierung (-0s) hatte ich das gleiche Resultat wie bei der ersten Variante, nämlich dass der TCK-Pin funktioniert hat, die übrigen drei
ATmega32 schrieb im Beitrag #3206119: > Bei abgeschalteter Optimierung tat sich auf allen vier JTAG-Pins nichts. Das ist nicht verwunderlich, weil dann die zeitlichen Randbedingungen für JTD nicht eingehalten werden. > Bei optimaler Optimierung (-0s) hatte
-
Thread
Frage an W.S. wegen USB CDC Implementierung STM32F103
eingesetzt, um zu prüfen, dass der µC wirklich in UsbCharOut() hängt. jetzt kommt der Witz: Mit der Optimierung -O0 tritt der Fehler nicht mehr auf! Dafür meldet Windows jetzt bei -O1 und -O2 grundsätzlich bei jedem Anstecken, dass das Gerät nicht ordnungsgemäß funktioniert. Mein eigentliches Problem
aus core_cm3.h hat den Vorteil, dass es je nach Compiler die richtige Implementierung macht. Beim gcc ist das dann: [C] static __INLINE void __NOP() { __ASM volatile ("nop"); } [/C] Damit ist der Code dann auch unter Keil übersetzbar, der mit der gcc Syntax "asm volatile
-
Thread
Bibliotheken nur teilweise Linken
in ein > eigenes Modul zu packen. Sowas in "virtuell" ohne Sourcecodemodifikation macht beim gcc das -ffunction-sections :-) Das Problem beim gcc ist ja, dass der Linker an sich recht dumm ist und keine Optimierungen/Auslassungen im Code mehr machen kann. Das würde ja zB. relative Addressierung
http://www.mikrocontroller.net/articles/GCC:_unbenutzte_Funktionen_entfernen
-
Thread
STM32F4: Umstieg auf Eclipse + GNU Arm Embedded Plugin
leider die Optimierungen flach, die in der Funktion verwendet werden. Gibt es bei 2. einen technischen Grund oder eine Abhilfe?
Hrmmm, in den Optimierungseinstellungen sehe ich, dass man noch den gcc als Treiber für den Linker einstellen muss und dass es auch Möglichkeiten gibt, der Maschinerie zu sagen, dass ein Objekt außerhalb der Projekt-Übersetzungseinheit nicht sichtbar ist... Vielleicht sind
-
Thread
AVR-GCC Tutorial Taster entprellen
Rückschlusse auf die eingestellte Taktquelle und deine Compiler-Eistellungen beim Übersetzen (Optimierung an/aus) ziehen. Bei falscher Einstellung müsstesr du den Taster statt 75ms im Extremfall 1,2s und länger halten! 2/ Nach dem Blinken ohne Tastendruck: Ist die LED AN oder AUS? Damit kann man
Ich bevorzuge eine ordentliche critical section, die mit Compiler-Barriers markiert wird, beim GCC mit asm volatile ("" : : : "memory"); Warum sollte ich innerhalb der CS auf Optimierungen verzichten? Statt *sei* und *cei* ruft man einfach ein Makro enter_critical_section und leave_critical_section
-
Thread
delay.h defekt
- Compiler optimierung geändet/ausgeschaltet Nicht ausschalten, einschalten.
Also Optimierungen hab ich alle ausprobiert -O0 bis -O3 und -Os Variablen sind jetzt alle volatile. Christian H. schrieb im Beitrag #1739309: > anzeige_7seg_zahl(startcounter); > _delay_ms(1000); > startcounter