- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 15

Thema: Optimierung Arduino-IDE - Assembler

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    AVRStudio4.18 Build 700, WinAVR-20100110: machen dann ja zumindest das, was man erwarten würde bzw. selber auch in ASM schreiben würde.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Eine interessante Stelle ist die Verwendung von Interruptroutinen. Der Compiler rettet beim Aufruf meist mehr Register auf dem Stack als nötig.
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    HaWe
    Gast
    Zitat Zitat von Searcher Beitrag anzeigen
    Eine interessante Stelle ist die Verwendung von Interruptroutinen. Der Compiler rettet beim Aufruf meist mehr Register auf dem Stack als nötig.
    das stimmt, das ist auch der Grund, weshalb manche Intr nicht mehr korrekt funktionieren, wenn man direkt die GPIOs manipuliert:
    Code:
    direct port manipulation compiles to 1 or 2 instructions, calling digitalRead is dozens.
    One issue to be aware of is interrupts - some of the native direct-port manipulation code will not be
    interrupt-safe, where as digitalRead/digitalWrite/pinMode() are carefully coded to work when used
    both in an ISR and the main program.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Searcher Beitrag anzeigen
    Eine interessante Stelle ist die Verwendung von Interruptroutinen. Der Compiler rettet beim Aufruf meist mehr Register auf dem Stack als nötig.
    Da wäre ich sehr vorsichtig. C ist eine Sprache, die eigentlich für einen Prozessor mit mindestens 16 Bit gedacht ist. Nun können die 16 Bit Funktionen durch Inline-Code nachgebildet werden. Manche werden aber auch durch Code in der Compiler Library erledigt. Das kann sogar bei sehr änlichem Code unterschiedlich gehandhabt werden. Mal kann man im Assemblerlisting sehen, welche Register benutzt werden, mal wird eine eingebaute Funktion aufgerufen, deren Registerbenutzung man nicht kennt. Das gilt ebenso für die Funktionen der C-Library. Und selbst wenn man das genau untersucht und verfiziert hat, kann einem schon eine neue Version des Compilers oder der Libc ins Bier spucken. Wenn man dabei ist, sein eigenes Programm zu debuggen, möchte man eigentlich nicht, daß noch Fehler durch zerstörte Register dazu kommen.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  5. #5
    HaWe
    Gast
    nicht zu vergessen, dass nur wenige Funktionen für die Cores in C programmiert sind, während der überwiegende Code auf C++ (!) Libs beruht, die durch Java-Programme und deren erzeugte makefiles von gpp zu executables zusammengesetzt werden.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von HaWe Beitrag anzeigen
    die durch Java-Programme und deren erzeugte makefiles
    Kleine Ergänzung: Seit ein paar Jahren (Arduino 1.6.6.) ist der Arduino Builder in Go statt in Java geschrieben.

  7. #7
    HaWe
    Gast
    Zitat Zitat von Mxt Beitrag anzeigen
    Kleine Ergänzung: Seit ein paar Jahren (Arduino 1.6.6.) ist der Arduino Builder in Go statt in Java geschrieben.
    aber Java werkelt doch auch noch mit rum, oder ist das auch ersetzt?

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    In der IDE schon, die ist ja in Processing geschrieben. Im eigentlichen Buildprozess, den man auch auf der Kommandozeile benutzen kann, meines Wissens nach nicht mehr.

    Es steht auf der Github Seite ja auch nur
    Building from source:

    You need a recent version of Go (>=1.8.0).

Ähnliche Themen

  1. PROGMEM und Optimierung
    Von Ceos im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 09.10.2013, 07:15
  2. Optimierung von Funktion
    Von shedepe im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 05.11.2010, 16:32
  3. Code Optimierung
    Von Siro im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 19.08.2010, 22:45
  4. Zusammenbau Optimierung (Spule)
    Von Ichiban im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 11.12.2008, 19:11
  5. Optimierung von Verfahrwegen
    Von N8Surfer im Forum Software, Algorithmen und KI
    Antworten: 1
    Letzter Beitrag: 16.01.2007, 11:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests