-
Thread
makefile, hexfile funktioniert nicht
Hi, habe über Mfile http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Exkurs_Makefiles ein Makefile generieren lassen. Hab es an meine Bedürfnisse angepasst. Die SW baut auch (siehe Anhang build.txt) Allerdings, wenn ich das Hex File über das "AVRISP"
Debug Sachen raus gemacht usw. Die Speicherausgabe beider Compilermeldungen sind gleich. Als Optimierung hab ich einmal "s" und das andere mal ohne optimierung eingestellt, beides mal ohne Erfolg Gruß
-
Thread
Compilieren der Waspmote Library mit AtmelStudio (ähnlich arduino)
Christian Anders schrieb im Beitrag #3191199: > "region text overflowed by 119306 bytes" Optimierung eingeschaltet? Den richtigen µP gewählt?
Ja, das hab ich... Das Problem liegt irgendwie daran, dass diese IDE von Waspmote eine ältere GCC version verwendet und Atmel Studio die aktuelle.
-
Thread
Pointer auf Struct -> align problem
zum x-ten mal über das Problem mit den aligned Speicherzugriffen vom ARM7 und deren Behandlung in GCC. Ich versuche mal zu erklären was genau passiert: Es gibt einen Buffer von 128 Bytes länge in den ein Gerät von ausserhalb seine Datenstrukturen ablegt. Auf das "wieviel aufeinmal" und wo habe
etwa buffer[9]. Das sieht mir nach Compilerfehler aus... Wenn die Struktur nicht aligned ist (bzw. gcc nix über das Alignment weiß), dann sollte er 8-Bit-Zugriffe machen, auch wenn das sehr ineffizienten Code gibt. Evtl. ist eine Option aktiviert, die solche Transformationen als Optimierung nach sich
-
Thread
C - Char array löschen
for Schleife reinspringen. Ganz ehrlich. Machs erst mal richtig und kümmere dich dann um Optimierungen. So oft wie du strlen aufrufst, ... da ist erst mal jegliche sogenannte Optimierung vollkommen für die Würscht. > Ob ich die Abfragen verschachtele oder alles in Funktionen auslagere, > spielt
gibt's doch auch bestimmt bei Linux - dieses Poll gibt's bei mir gar nicht, zumindestens meckert mein GCc wenn ich versuche die einzubinden. - was ist das überhaupt? Klingt für mich frei übersetzt wie Umfrage ;) Ich benutze codeblocks als Editor und als linker und Compiler aber das GCc von devcpp, fragt
-
Thread
Problem mit AVR-Studio Attiny13 und GCC Optimierer
ich habe gerade bei der Programmierung eines Attiny13 mit Hilfe von AVR-Studio 4.15 B623 und WINAVR GCC 20081205 ein Problem: Bei der Verwendung des Optimierers (im AVR-Studio Configuration Settings=>Optimization) scheint mir der Compiler die simpelsten Zuweisungen Wegzuoptimieren. Zum Beispiel etwa
ausgeführt werden - die anderen werden einfach übersprungen. Dieser Effekt tritt bei allen Optimierungs-Einstellungen auf, außer bei -O0... Hat jemand einen Tip? Danke! Gruß Manfred
-
Thread
DTMF decoder
Durchgang) >Die Kernroutine ("int32_t = int32_t * uint16_t / 65535") war in >Assembler, der Rest in GCC. Ich kam auf rund 6 Millionen Takte pro >Sekunde. Also Kinderkram für einen ATMega. :-) Heißt das 37%@16Mhz Auslastung? Klingt gut. Vielleicht könnte man auch auf Assembler verzichten.
Deinem vorigen Post habe ich entnommen, dass die Multiplikation in Assembler geschrieben ist. Macht der GCC die Optimierung automatisch? Würde es etwas bringen, "inline" davor zu schreiben? >Der Code funktionierte zwar 1a auch mit realen Telefonatmitschnitten, >aber der Spezialbaustein MT8870 ist perfekt
-
Thread
undefined reference
: main.elf avr-gcc -mmcu=at90s8535 -I. -g -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 main.o --output main.elf -Wl,-Map=main.map,--cref
Btw., -O0 ist keine sonderlich sinnvolle Angabe. AVR ist ein wenig RISC-like, da lohnt die Optimierung des Compilers schon. Werbung: http://www.sax.de/~joerg/mfile/
-
Thread
Veränderbare Spannung per PWM @ Atmega16 und dazugehöriges.
Studio 4.15, build 623 mit installiertem WinAVR (1.0.0.10). Hab halt beim Projekt erstellen "AVR GCC" ausgewählt, dann "AVR Simulator" und den ATmega16. Auf 2 Computern probiert, das Ergebnis is immer das Selbe und stimmt mit dem Post von Jörg nicht überein.
du bzw. AVR Studio ihm nicht mitgeteilt). Kann aber auch sein, dass es simpel nur eine andere Optimierung war (bei mir -Os). Anyway: dein Hexfile läuft bei mir genauso. Warum auch nicht, der tatsächlich ausgeführte Code ist der gleiche.
-
Thread
Diskussion: Pi möglichst schnell berechnen
sich mit Mathematik und den eventuellen Vereinfachungen zu beschäftigen. Sich mit möglichen Optimierungen oder Stolpperfallen bei uCs auseinanderzusetzen. Natürlich möchte ich dann auch einen Algorithmus als "Beweis" implementieren. Dies aber mehr als spielerei. Natürlich würde ich bei etwas
und ausführich kommentiert: [[4000_Stellen_von_Pi_mit_ATtiny2313]] Übersetzbar mit einem avr-gcc für ATtiny2313 und Ausgabe via USART, und das Programm lässt sich auch ganz normal für einem Host übersetzen und ausführen :-) Eben mal mit avrtest durchlaufen lassen. Für 100 Nachkommastellen (
-
Thread
Typvereinbahrungen, array von Zeigern auf Flash
Da trete ich momentan auf der Stelle. So wie hier http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Array_aus_Strings_im_Flash-Speicher
gemeckert wenn ich <xchar's> und <xint's> gemischt habe. Das dürfte aber eher für die Qualität des gcc sprechen. Gruß Christian
-
Thread
Fehler bei volatile-variable und ISR
... mal bei K&R nachlesen was das Attribut "volatile" bedeuted. Es wird lediglich die Optimierung der Sequenz unterbunden, aber nicht automatisch eine Interrupt-Sperre gesetzt. Wenn du also weiterhin mit globalen Variablen in verschiedenen Kontexten arbeiten möchtest, dann kommst du nicht umhin
Begrüssungstext raus oder kürze. Das spart heftig. Wenn du den Text so brauchst, verlagere den ins ROM (im AVR-GCC-Tutorial steht wie das mit PROGMEM geht).
-
Thread
ARM: kompliziert?
der CoIDE ist ein link der es beschreibt. Download: Note: This version has not integrated GCC compiler. Before using CoIDE, you need to set GCC Toolchain first. Click here to see how to set. http://www.coocox.org/CoIDE/Compiler_Settings.html Wenn man denn gar nichts tun will sollte man
anders wie beim SDCC. Die Toolchain beim 32F4 ist im einfachsten Fall so simpel wie beim SDCC. GCC .. kompiliert .c Datei in Objectfile .o GCC .. linked ein oder mehrere .o Dateien in ein .bin Dazu gibt es ein Tool von ST mit dem man die Datei flashen kann. Das mit dem Makefile ist kein
-
Thread
Compiler und dessen Bekanntheitsgrade, speziell CCS
einigermaßen portabel), beim CCS muß man per #include <xy.c> selbst Hand anlegen. Die Code-Optimierung ist ebenfalls eher einfach. Ausdrücke wie: int a; a = 3 + 2; a += 5; a = a - 1; werden zur Laufzeit berechnet. 'Große' Compiler (wie auch der GCC) setzen einfach a = 9; Oder bei
Danke für die Antworten! Die Frage sollte sich auch allgemein, auf sämtliche Compiler (GCC, CodeVision, Keil, CCS, etc.) beziehen. Und die Frage klären, welche Compiler überwiegend in der Industrie eingesetzt werden. Soweit man das Pauschal sagen kann! Die spezielle Frage nach dem CCS-Compiler
-
Thread
AVR ATMega16 Timer Interrupt funktioniert, scheint aber den uC zu reseten
<OCIE1A); [/c] geht es jetzt frag ich mich was daran der unterschied ist, laut Tabelle im AVR-GCC Tutorial ist OCIE1A doch bit 6 ??? Bit 7 6 5 4 3 2 1 0 Name TOIE1 OCIE1A - - TICIE - TOIE0 -
Sebastian N. wrote: > laut Tabelle im AVR-GCC Tutorial ist OCIE1A doch bit 6 ??? > > Bit 7 6 5 4 3 2 1 0 > Name TOIE1 OCIE1A - - TICIE - TOIE0 - Diese Tabelle aus dem [[AVR-GCC-Tutorial]]
-
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
ARM-Prozessor mit SRAM+Flash extern, ISP möglich?
empfehlendes das OpenSource / Freeware ist (Betriebssystem WinXP oder Linux)? Ich wollte eher mit GCC (entsprechende Tool-Chain fürs ARM crosscompilen natürlich) entwickeln... > 5: OKI stellt ARM7-Derivate mit externem Speicherinterface her; die > Typbezeichnung kannst Du herausfinden, indem Du
Man kann im übrigen beim GCC die option "-s" benutzen, die dann das selbe wie ein "strip" bewirkt. Und man kann die Infos die der Compiler über sich hinterlasst wie folgt entfernen: strip -R .comment <executablename> Ersparnis
-
Thread
4/8-Hamming-Code nach Integer konvertieren
Meine Lösung hatte ich ja schon im Eröffnungspost geschrieben. Ich wollte eigentlich nur Tipps zur Optimierung haben, naja, Pustekuchen! Ich kann aber durchaus mit meiner Lösung leben. Vielen Dank und schönen Gruß, Thomas
Makefile einzubauen ist auch keine Quantenphsik... alles was du brauchst ist ein Host-Compiler wie z.B. GCC.
-
Thread
Welche Programmiersprache?
höhere Performanz von Assemblerprogrammen ausnutzen können: meistens erzielt die automatische Optimierung guter Compiler bessere Ergebnisse als die händische Assembler-Optimierung. Assembler ist im Übrigen starken Beschränkungen unterworfen, was die Portierbarkeit angeht: wenn Du Programme für Mikrocontroller
daß Du für verschiedene Zielplattformen dieselben Werkzeuge benutzen kannst, nämlich den C-Compiler gcc aus der GNU Compiler Collection (GCC). Das hat mehr Vorteile, als es auf den ersten Blick ausschaut: Du kannst Dir kleine Kommandozeilenprogramme für Windows oder Linux schreiben, um bestimmte Features
-
Thread
ARM Development Tools (IAR, Keil, GCC, GNU usw.)
Ich kann nur zum Vergleich IAR-gcc etwas aus Erfahrung mit Atmel AVR sagen. pro IAR: - schneller, kompakter Code - nützliche Target-spezifische intrinsics kontra IAR: - häufig inkompatible Änderungen in der Syntax für Linker
Versionskontrolle arbeitet - integrierter Debugger war nicht wirklich nutzbar (mit AVR JTAGice mkII) pro gcc: - gute Kompatibilität bzw. Standardkonformität - Hilfe im Netz wenn es mal klemmt kontra gcc: - Code größer als bei IAR Vieles ist wohl dann einfach eine Gewohnheitssache, aber insbesondere
-
Thread
MISRA C / ISO 62262 in der Praxis?
ist das durchaus drin. Zumal sich kommerzielle Anbieter ja mit irgendwas auch von der kostenlosen GCC-Konkurrenz abheben müssen.
hinter PC-Lint. Das ist in etwa so, wie (non safety) Keil- oder IAR-Kompiler dort wo es gute gcc-Backends gibt. Oder wie bei uns seinerzeit Tortoise/SVN gegen den Willen des Chefs eingeführt wurde, /weil/ es nichts kostete.
-
Thread
Demo-Programm von STK500
du könntest ja mal das gcc-tutorial lesen .... http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial da ist alles für den anfänger beschrieben ... lg
per einfachem Operator verfügbar sind, sind vor allem der Übersichtlichkeit halber da. Mit Optimierung werden die alle inline generiert, da sie ja nur ein einziges Mal benutzt sind.
-
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
Kleine Byte-Buffer Lib
inline" zu verwenden. Dazu zwinge ich den Compiler noch gern zu inlinen, weil er das (wegen Os Optimierung beispielsweise) nicht selbst tun will: __attribute__((always_inline)) für bspw. GCC Das ganze noch in ein Makro #define BYTE_BUFFER_INLINE static inline __attribute__((always_inline)) ;-) Übrigens, wenn sich nicht großartig was geändert hat am GCC (vorausgesetzt, der wird hier benutzt), dann ist Inlining NICHT möglich, wenn der Quellcode NICHT in der Header Datei steht.
-
Thread
Parameter an Funktion
Terminal nur Müll angezeigt bekomme (sendstring abgerollt in Main geht aber wunderbar!). Im AVR-GCC-Tutorial habe ich einen Hinweis auf die Harvard-Architektur gefunden, werde aber daraus nicht schlau. Die Zeichenkette ist ja statisch und wird vom Compiler WO hingepackt? Muß ich sendString einen
STK500 Testboard, der standardmässig 3.6864MHz liefert. Als Umgebung nutze ich den "vi" mit dem "avr-gcc", "make" und "uisp". Zu meiner Schande muß ich zugeben, mich nie mit dem GNU-Debugger beschäftigt zu haben. Saluti! Ludwig
-
Thread
Projekt Fußtreter
Weinmann schrieb im Beitrag #2616457: > wie kann ich denn "checken" ob ein pin 1 oder 0 führt? [[AVR-GCC-Tutorial#Zugriff_auf_IO-Ports]] Gruß Oliver
was schon ne menge > platz schluckt Vor allem wenn man es falsch benutzt, also wenn man die Optimierung beim Kompilieren ausgeschaltet hat oder keine Konstanten als Funktionsargumente übergibt! Prüfe mal, ob das bei deinem Programm der Fall ist.
-
Thread
Long in char Array umwandeln
sich aus irgendwelchen anderen Umständen ergibt, auch wenn das sich je nach Compiler-Parametern, Optimierung oder anderen Dingen unterschiedlich verhält. Der Compiler-Bauer muß sich schlicht überhaupt nicht drum kümmern und nicht mal drüber nachdenken, was denn in dem Fall passiert. Johann L. schrieb
memcpy(b, a, sizeof a); [/C] Das dürfte aus ISO-C-Sicht die sauberste Variante sein und beim gcc auch nicht langsamer oder umständlicher als irgendwelche union-Verrenkungen oder Pointer-Castereien.
-
Thread
Java auf AVR Gesperrt
Sicher mit 3.4.3? das kommt bei mir: <username>@<host> ~ > avr-gcc --version avr-gcc (GCC) 3.4.4 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY
erst dann wirklich zu einem Problem, wenn z.B. der Mega8-Code so gross wird, dass er nur mit den Optimierungen des gcc-4 in den Mega8 passt. Aber das ist noch nicht der Fall. Die avr-libc wird aber eher kritisch, das hat sich einiges geändert. Ggf. lässt sich das mit ein paar ifdefs regeln. Z.B. soll
-
Thread
Assembler Code in WinAVR einbetten mit Hilfe asm volatile
Errm, wenn du natürlich ohne Optimierung baust, brauchst du dich über nichts zu wundern... Das hatte ich stillschweigend vorausgesetzt.
findet sich bei den Robotern: http://www.roboternetz.de/wissen/index.php/Inline-Assembler_in_avr-gcc
-
Thread
mit µC Sinus erzeugen + Amplitudenmodulation
Programmiert, leider bekomme ich nur eine sehr geringe Frequenz hin (maximal 315Hz ohne Compiler-Optimierung, mit höchster Optimierung 1,1kHz).. glaub mein Porgramm ist nicht das effektivste (siehe unten).. Jetz schlagt ihr sicher die Hände überm Kopf zusammen ^^ Ich frage mit einer if-Anweisung jedes
Kanonen auf Spatzen schießen - imho ;) Die letzten Controller-Projekte hab ich nur noch mit dem GCC gemacht und fand eigentlich ganz gut, was da an kompilierten Code herausgekommen ist ...
-
Thread
BITs Bytes struct
zum Glück sagt die AVR-Gcc Doku, dass dieses unerlaubte Verfahren funktioniert. Andere Kompiler können sich anders verhalten. [c] struct I2CData{ uint8_t RS:1; uint8_t RW:1; uint8_t ENABLE
Arduino Fanboy D. schrieb im Beitrag #5763628: > zum Glück sagt die AVR-Gcc Doku, dass dieses unerlaubte Verfahren > funktioniert. Ich weiß. Aber man sollte sich sowas erst gar nicht angewöhnen.
-
Thread
For schleife in c ausprogrammieren
habe ich genung, jedoch soll die Ausführung möglichst schnell von statten gehen. Die Compiler Optimierung habe ich schon auf höchster stufe, jedoch sehe ich im Disassamble, dass die Schleife nich ausprogrammiert wurde. Bsp: for(int i = 0; i < 10; i++){ a[1][i] = b[1][i] + c[1][i]; } soll
Stichwort: Loop unrolling Google: "Loop unrolling gcc" Ergebnis: https://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/Optimize-Options.html
-
Thread
ATMEGA 8515 -- SREG nicht definiert -- AVR Studio 7
Hier fand ich dann folgendes Programmierbeispiel: https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Interrupts_mit_avr-gcc [c]#include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> //... void NichtUnterbrechenBitte(void) { uint8_t tmp_sreg; // temporaerer
kleines Testprogramm[c]#include <avr/io.h> uint8_t sreg (void) { return SREG; }[/c] Mit avr-gcc-5.2.1 (.s File mit -save-temps):[avrasm]... __SREG__ = 0x3f ... sreg: in r24,__SREG__ ret[/avrasm]
-
Artikel
AVR-GCC
aus dem svn kommen (svn co svn://gcc.gnu.org/svn/gcc/branches/branchname gcc ,mit branchname gcc-version-branch, aktuell ist gcc-6-branch) oder aus dem aktuellen trunk (svn co svn://gcc.gnu.org/svn/gcc/trunk). Die AVR-LibC: Download. Achtung
Einstieg in die Nutzung des avr-gcc unter MS-Windows mit WinAVR (englisch) AVR-GCC und Linux GCC-Forum auf mikrocontroller.net
-
Thread
Problem mit LTC1290
auch wenn ich es nicht (richtig) ausprobieren kann (Hab weder den ltc noch einen mega32) - Fuer AVR-GCC/AVR-Studio (Optimierung und F_CPU notwendig) - Atmega32 - alles in einer Datei, einfach an den entsprechenden Kommentaren trennen hth. Jörg (sieht AFAIK besser aus als das, was du oben gepostet
*Wow*... - wirf ruhig noch mal einen Blick ins [[AVR-GCC-Tutorial]], bitte! - itoa () ist beim GCC in der <stdlib.h> definiert - _Eigentlich_ gehört KEIN C-Code in die .h-Dateien (nur bei "__attribute__((inline))" -Funktionen lässt es sich nicht vermeiden
-
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
Gibt es einen Trick um "volatile"-Variablen zu "normalisieren"
Programms ist also kein Problem... Und für das vergessene Rückschreiben gibt's sogar Warnings vom GCC wie "value is set but not used". > Nunja mal sehn vielleicht kommt ja noch DIE LÖSUNG zu tage, auch wenn > ich mit den bisherigen definitiv Leben kann... Ich bin halt ein kleiner > Perfektionist
22; } std::cout << x; }[/c] Das sieht zwar furchtbar ineffizient aus, aber mit Optimierungen an (-O2 bei GCC) wird daraus genau der Code, den man haben will: Lade den Wert aus x, multipliziere ihn mit 924, schreibe ihn zurück nach x. Die geschweiften Klammern sorgen dafür, dass xb nur
-
Thread
Eine weitere Bitumrechnung
aber der TO muss erst mal einen Fuß auf den Boden bekommen. Sonst hätte ich auch schon eine Optimierung vorgestellt.
Tausche deinen GCC mal durch GCC8 aus und mach -Wall -Werror an. Dann lässt er dich das nicht kompilieren, weil du sprintf deinen Buffer überlaufen kann.
-
Thread
Alles Rund um den MEDION LIFE P89626 NAS
Dhrystones mit anderen Prozessoren: [pre] 25642 MS-C 5.0 80486 @ 33 MHz 507443 gcc 4.5.1 ARM926EJ-S rev 5 @ 180 MHz 931676 gcc 2.95.3 AMD-K6 @ 375 MHz 985222 gcc 4.1.1 iMX31 @ 512 MHz (phyCORE-i.MX31) 1353913 gcc 4.0.2 MPC 5200 B (G2_
gcc 4.6.0 Intel Pentium M (760) 2.00GHz, 533 MHz FSB 16491754 gcc 4.4.1 AMD Phenom(tm) 9350e Quad-Core @ 2GHz 39782406 gcc 4.5.1 Intel Pentium Dual-Core E6300 @ 2.80GHz
-
Thread
[AVR] _delay_ms() funktioniert nicht mehr (vom Compiler ignoriert?)
nicht richtig funktionieren wird. :( Von STK500-Besitzer abgesehen, sagt ja niemand, das Du die Optimierung _ausschalten_ sollst. Das ist doch mal ein "RTFM" wert. http://www.groupes.polymtl.ca/inf1995/logiciel/progAvr/avr-libc-user-manual-1.8.0.pdf ;-)
Bei mir kommt mit [code]avr-gcc (GCC) 4.8.2-2[/code] [code]avr-binutils 2.24-1[/code] [code]avr-libc 1.8.0-5[/code] [code]avr-gcc -Os -g3 -o main.elf -mmcu=attiny2313 main.c[/code] unter ArchLinux folgendes heraus: [avrasm
-
Thread
Frage zum ODM100 OLED Bausatz von ELV
von Anfang an ging, aber egal, jetzt gehts ja. Hat schon jemand den ODM100 Displaytreiber auf AVR-GCC portiert? Bin schon gespannt auf erste Projekte. So long Remo
ODM100.c Source Code für das Display gibt es doch eh bei ELV zum Download. Der Müsste doch mit dem AVR-GCC laufen. Wennst die RTC ansprechen willst hätte ich noch Code dafür... http://www.mikrocontroller.net/topic/183980#new
-
Thread
Arduino - bringt's das ? Gesperrt
draufsteht? Was genau ist denn jetzt an einem C-Programm, dass mit einem soundso IDE durch den avr-gcc gejagt wird so viel toller, lehrreicher oder sonstwas, als an einem, dass vom Arduino-IDE durch den avr-gcc gejagt wird? erstaunte Grüße Timm
Den AVR GCC gibts auch einfach installierbar für Linux, also das kann ja nun kein Argument sein ;)
-
Thread
_delay_ms(..) abhängig von ATTiny Taktung?
wird ein F_CPU benötigt wenn Du die delay.h einbindest ? http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29
F_CPU *vor* include delay.h angegeben wurde (idealerweise im Makefile / Projektoptionen) *und* Optimierung aktiviert wurde.
-
Thread
Hattet ihr in eurem PC mit < 80486DX Prozessor einen separaten Co-Prozessor?
CPU-Takt (also 6,25 MHz) geliefert > wurde. Wie groß war der Geschwindigkeitsvorteil deiner Optimierung? Und was hat ein Quarzoszillator damals gekostet? Bzw. wenn das so einfach war, wieso wurde dann so eine Lösung nicht von Haus aus, also kommerziell, verkauft?
war eine mit dem Wacom Compiler compilierte > povray.exe ca 40% schneller als Borland und Co., von gcc ganz zu > schweigen. Du hadt mit einem Grafiltablett kompiliert? Faszinierend! Andere haben den Compiler von Watcom benutzt.
-
Thread
STM32 Locking in C
Umsetzung ineffizient. W.S. schrieb im Beitrag #5604389: > da macht man so etwas per SVC. Ach ja, GCC-Leute kennen das ja nicht Gerade heute habe ich einen syscall-Mechanismus per SVC mit dem GCC implementiert. Nur weil du das nicht hinbekommst heißt das nicht dass das nicht geht. Wie das geht findet
32-Bit Zugriffe Atomar. Das _Atomic ersetzt aber auch auf 32-Bittern das Assembler-Speicher-Optimierungs-Barrier.
-
Thread
MPLAB C18 Compiler Codeoptimierung??
Compilers. Du könntest auch die "Standard-Eval Version" Version des Compilers nehmen, da sind alle Optimierungen aktiviert, zumindest 60 Tage lang. Und selbst danach findet sich auch ein Weg den Zeitraum zu verlängern (BackUp, Date, VM, Patch)...
Ziffern, nicht gut. Da wird sehr viel gemacht was so einfach unnötig ist, da gibt es _erheblichen_ Optimierungs-Spielraum. So kann man die Berechnung einer einzelnen Ziffer der Zahl erheblich optimieren. Zuerstmal definiert man sich zwei int oder long int, je nach gewünschtem Zahlenbereich, plus einen
-
Thread
Mikrocontroller Rechenleistung reicht für aktuelles Projekt nicht?
math-Aufrufen. Innerhalb von 10 Sekunden wurden 73501 Berechnungen durchgeführt. Mit einigen Optimierungen ist da wohl noch einiges mehr drin.
erwähnten SAM3X @84Mhz messe ich 6120 Durchläufe/s vom orginalen Code ohne besondere ARM-spezifische Optimierungen.
-
Thread
Retro Fieber: Z80 oder 68000 ?
zutreffenden Teile werden NICHT compiliert, sondern komplett ignoriert. > Vom system her oder dem GCC? Der gcc (aber auch jeder andere C-Compiler) setzt das, wenn das Zielsystem ein Unix ist. Das ist schon seit 1969 so, da gab es noch keinen gcc. Wenn das Zielsystem aber ein AVR ist, ist unix
Christian J. schrieb im Beitrag #3926160: > Optimierung ist aus, die hat mir nur Murks mal erzeugt. Hältst du das nicht für ziemlich frech? Optimierung abschalten und dann über unoptimierten Code meckern?
-
Thread
welche Datentypen soll ich nehmen?
ja, aber wenn ich nach dieser Tabelle gehe https://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC/_Datentypen, dann ist char mit uint8_t ersetzt worden. Das beides das selbe ist, ist mir bewusst. Aber es ist mir trotzdem schon öfters aufgefallen, dass für variablen uint8_t, uint16_t usw. genommen
funktionierender Code plötzlich kaputt, weil der neue Compiler eine zulässige, standardkonforme Optimierung macht.
-
Thread
Suche Empfehlung für Mikrocontroller
klassischen PWM in Hardware und DANN kann man weiterreden. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung Das gilt auch für Hardware! >Die PWM ist ja nur ein Aspekt. Auf der anderen Seite der Todo-Liste >steht noch die Kommunikation via Ethernet aus ...
werden), mach erstmal eine einfache Umsetzung deines Konzepts und miss nach. Dann kann man über Optimierungen reden.
-
Thread
Übertrag bei 32-Bit Addition
Ich addiere zwei 32-Bit Zahlen. [c] VA = VB + VC; [/c] Wie bekomme ich in C (GCC WinAVR) mit ob ein Übertrag erfolgt ist? Wie kann ich das Carry-flag anzapfen?
4 Befehle für die Addition zuzüglich Carry-Extraktion. Sieht mir aber verdächtig nach Angst-Optimierung™ aus...