Go Down

Topic: Arduino IDE avr-gcc ersetzen (Read 1 time) previous topic - next topic

Addi

Hallo,
ist es möglich die IDE so einzustellen, das sie nicht avr-gcc sondern andere Programme
mit anderen Parameter aufruft, ohne die IDE neu zu kompilieren?

Addi
/ \    _|  _| o
 /--\ (_| (_| |

pylon

Unter Linux und MacOS X sollte das relativ einfach möglich sein (Script an die Stelle von avr-gcc installieren), aber wozu sollte das gut sein?

Addi

Ich will avr-gcc duch einen Assembler ersetzen, da die IDE ohne Programm mit
dem Bootloader programmieren kann, muss ich kleinen Programm nicht mehr
im Atmel Studio simulieren. Wie würde es unter Windows gehen? Gibt es eine Datei
in welcher der Pfad zu den Compillern/Linker steht? In der preferences.txt habe ich
nichts gefunden.

Addi
/ \    _|  _| o
 /--\ (_| (_| |

uwefed

Ich bin irritiert?
Wie soll das funktionieren, einen C-Compiler durch einen Assembler zu ersetzen?

Grüße Uwe

jurs


Ich will avr-gcc duch einen Assembler ersetzen, da die IDE ohne Programm mit
dem Bootloader programmieren kann, muss ich kleinen Programm nicht mehr
im Atmel Studio simulieren. Wie würde es unter Windows gehen?


So würde es unter Windows gehen:

Besorge Dir einen "Texteditor für Programmierer", der auf Druck irgendeiner Funktionstaste ein von Dir vorgegebenes Programm starten kann.

Und als dieses von Dir vorgegebene Programm machst Du Dir eine Batch-Datei oder ein Script, das den Vorgang aus Assemblieren - Linken der Dateien - Hochladen auf den Arduino ausführt.

Die Arduino-IDE kannst Du vergessen. Denn die Arduino-Software führt vor dem Kompilieren mit dem Quelltext immer noch ein paar magische Arduino-Tricks aus, so dass der Quelltext, den der GCC-Compiler zu sehen bekommt gar nicht identisch ist mit dem Quelltext, den Du im Arduino-Editor siehst. So wird z.B. immer noch eine Zeile #include "Arduino.h" eingefügt (falls Du sie nicht selbst geschrieben hast), bevor der Kompiler den Text zu sehen bekommt. Was würde wohl Dein Assembler zu der Zeile #include "Arduino.h" im Quelltext sagen? Vermutlich irgendwas mit Error.

Udo Klein

#5
Jan 29, 2013, 10:28 pm Last Edit: Jan 29, 2013, 10:30 pm by Udo Klein Reason: 1
Warum lernst Du nicht einfach wie man avrdude aus der Kommandozeile aus aufruft? Wenn Du die IDE auf "geschwätzig" stellst, dann sagt sie Dir auch wie man avrdude rufen muss.

Wenn Du eh Assembler lernst, dann solltest Du auch vor make und/oder scons nicht zurückschrecken. Ich persönlich bevorzuge scons.

Sobald Du eins von beiden auf der Pfanne hast kannst Du die IDE in die Tonne treten. Du wirst sie nicht vermissen ;)
Check out my experiments http://blog.blinkenlight.net

Addi


Wie soll das funktionieren, einen C-Compiler durch einen Assembler zu ersetzen?

Ich möchte nur die IDE behalten und statt C++-Code Assembler eingeben.

Denn die Arduino-Software führt vor dem Kompilieren mit dem Quelltext immer noch ein paar magische Arduino-Tricks aus (…)

Wird der Code durch die IDE berarbeitet, oder wird der eigene Code nur in die Cores/main.cpp eingefügt?

Sobald Du eins von beiden auf der Pfanne hast kannst Du die IDE in die Tonne treten. Du wirst sie nicht vermissen ;)

Ist nur umständlich, immer make zu benutzen, vorallem weil ich nur Windoofs batch( :( ) zur Verfügung habe. Die IDE würde dann alles
automatsch aufrufen. Hat evtl. jemand sich den Quellcode der IDE angesehen, ob dort alle Befehle zum aufrufen von arv-gcc/avrdude
zusammen stehen oder zerstückelt in dem Code herumstehen?

Addi
/ \    _|  _| o
 /--\ (_| (_| |

pylon

Quote
Wird der Code durch die IDE berarbeitet, oder wird der eigene Code nur in die Cores/main.cpp eingefügt?


Da wird noch Glue-Code rundherum eingefügt und der Compiler für die Includeten Bibliotheken aufgerufen. Du müsstest also relativ viel umprogrammieren in der IDE, damit sie von C++ auf Assembler umgestellt werden kann. Deine Idee bringst Du mit einer allgemeinen IDE wie Eclipse einfacher hin, obwohl Du Dich auch dort mit avrdude und Makefiles wirst befassen müssen.

vieledinge

Ich möchte nur die IDE behalten und statt C++-Code Assembler eingeben.


Warum?

Das ist ne ernst gemeinte Frage. Die Arduino-IDE finde ich ziemlich grottig, das wäre das Letzte was ich da behalten wollte. Wenn Du primär Assembler machen willst und damit auch am Bootloader vorbei arbeiten, dann macht die Arduino-IDE einfach keinen Sinn. Ich würde da auch auf die ganzen Features einer echten, leistungsfähigen IDE nicht verzichten wollen, schon um da auch mal debuggen zu können.

Wenn Du Windows benutzt: Atmel AVR Studio.

Addi


Wenn Du Windows benutzt: Atmel AVR Studio.

Für das Atmel Studio brauche ich einen ISP, denn ich nocht nicht habe.

Addi
/ \    _|  _| o
 /--\ (_| (_| |

michael_x

avrdude kann auch mit dem Arduino BootLoader reden.

Eclipse ist sicher flexibler als die Arduino-IDE wenn es drum geht, die Umgebung einzurichten und den atmel Assembler in die "toolchain" zu integrieren.

Ein Einführungs-Tutorial: http://horrorcoding.altervista.org/arduino-development-with-eclipse-a-step-by-step-tutorial-to-the-basic-setup/

Ich verstehe aber nicht, was du mit Assembler willst, bevor du dich mit nacktem avr-gcc beschäftigst.
(direkte port- und timer-Manipulation braucht noch keinen Assembler)

Assembler ohne Debugger stelle ich mir noch erheblich frustrierender vor als wenigstens mit Debugger, und das ist schon nur für Masochisten.

Go Up
 

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.
Name:
Email:

shortcuts: alt+s submit/post or alt+p preview