Arduino mit Versammlung?

12

Da ich mich für die Mikroverarbeitung entschieden habe, entschied ich mich aufgrund der enormen verfügbaren Ressourcen für Atmel AVR. Und Arduino scheint auch eine Menge zu haben, ganz zu schweigen davon, dass ihre Starter-Kits eher "auf meinem Niveau" zu sein scheinen.

Das Problem ist, dass ich es zuerst in Assembly lernen möchte und dann zu C / C ++ gehe oder Arduino verwendet, aber ich habe gehört, dass Arduino keine AVR-Assemblierung übernimmt? Ist das wahr? geht das anders?

Vielen Dank

edit: Ich würde mit der ATMEL STK500 gehen aber..für einen ersten Timer sieht es SEHR kompliziert aus? Gibt es einen Grund, warum ich nicht einfach einen 8-Bit-AVR bekommen und auf ein Steckbrett legen und auf diese Weise experimentieren kann? (Ich denke, ich müsste herausfinden, wie man sie als solche verbindet ...)

edit2: Das habe ich mir gedacht

http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193


quelle
Wie geht's? Also, welche Lösung haben Sie in Betracht gezogen? Ich kaufte Arduino Uo und suchte nach einer Möglichkeit,
mich auch

Antworten:

5

Die Arduino-Karten können in der Baugruppe programmiert werden. Sie benötigen lediglich ein ICSP-Kabel (In Circuit Serial Programmer) und die AVR-Toolchain (frei von ATMEL), um auf die Karte zu schreiben. Sie erhalten dann den Vorteil des Debuggens an Bord.

Wie Sie vorgeschlagen haben, können Sie einfach einen ATMEL-Chip auf ein Steckbrett schlagen und in die Stadt gehen.

Das Kit, auf das Sie verwiesen haben, scheint ein guter Ausgangspunkt zu sein. Sie können den Chip direkt vom Brett nehmen und auf Ihr eigenes Steckbrett kleben (solange er die Leistung korrekt regelt und Sie die Uhr berücksichtigen).

RQDQ
quelle
Ja, ich würde gerne dabei bleiben, wenn ich es gerade nicht auf mein eigenes Steckbrett lege.
@ Sauron - hah - so oder so ist gut. Was auch immer Sie süchtig macht! Das Gute ist, dass die einzelnen Chips ziemlich billig sind (ein paar Dollar oder so).
RQDQ
2

Soweit ich weiß , es soll nichts Konkretes über den Arduino Bootloader sein , die eine Verwendung Montag anstelle von C. Der Arduino IDE verhindern könnten , kann es Sie besitzen .hex Dateien schwierig machen , zu laden , aber es sieht aus wie der Arduino Bootloader STK500 kompatibel ist so Sie sollten es mit avrdude verwenden können.

jpc
quelle
Ja, tatsächlich verwendet die Arduino IDE selbst avrdude, um den Upload durchzuführen.
Chris Stratton
1

Arduino-Boards (jedenfalls Uno und Duemilanove) verfügen über einen Standard-AVR-Programmieranschluss, der von Atmel-Programmierern und -Debuggern über AVR Studio unterstützt wird. Studio unterstützt Assembler und C. Ein geeigneter Programmierer ist der AVRISP MkII, und der AVR Dragon bietet sowohl Programmierung als auch Debugging. Ich würde letzteres bekommen, es ist teurer bei 50 $, aber die Debugging-Funktion ist von unschätzbarem Wert. Sie können diese Tools auch mit einem Standard-AVR-Chip (nicht Arduino) verwenden, der in ein Steckbrett oder eine Leiterplatte eingesteckt ist.

Leon Heller
quelle
1

Das Arduino besteht aus zwei Teilen: der Hardware und der IDE. Die IDE beschränkt Sie hauptsächlich (wenn nicht sogar vollständig) auf C und C ++ (mit etwas syntaktischem Zucker, den die Entwickler hinzugefügt haben, um es ein bisschen mehr wie Processing / Java zu machen). Es besteht die Möglichkeit, dass die IDE .s- oder .S-Dateien im selben Verzeichnis wie eine Standardskizze (.pde) erkennt, aber ich würde meinen Hut nicht daran hängen.

An der Hardware ist nichts Besonderes. Es ist ein nettes, freundliches Board mit vielen nützlichen Funktionen, die µC-Neulinge zu schätzen wissen, aber wenn Sie den AVR nur über den ISP-Header programmieren möchten, können Sie dies auch tun. Sie benötigen so etwas wie den Atmel AVRISP mkII oder einen anderen Programmierer, der mit dem 2x3-Zeilen-Anschluss auf der Arduino-Platine arbeitet. Suchen Sie nach Programmen, die mit dem avrdude-Programm kompatibel sind, mit dem Sie Ihre Anwendungen hochladen. Halten Sie sich von Adafruits USBtinyISP fern. Ich hatte schreckliches Glück und kaufte mir die Atmel, die ich verlinkt hatte, für weniger als 40 US-Dollar bei Mouser.

Blalor
quelle
1
Seltsam, ich habe nichts , aber gute Erfahrungen mit der Atmel IDE und der usbtiny hatte, auch als Internet - Provider für viele verschiedene Plattformen, großes kleines Werkzeug buspirate verdoppelt
crasic
1

Gar nicht so schwer.

http://www.dwelch.com/arduino/

Sie müssen auf meiner Seite unter Ich denke, Ser.C nachsehen, um die Karte auszuwählen. Einige verwenden standardmäßig unterschiedliche Geschwindigkeiten der seriellen Schnittstelle und unterschiedliche Rücksetzschemata, um in den Programmiermodus zu gelangen. Wenn Sie sich die Arduino-Firmware ansehen, stellen Sie fest, dass kaum ein AVR-Programmierbefehl wirklich unterstützt wird. Brauchen sie sowieso nicht wirklich.

Oldtimer
quelle
1

Der Aruduino kann in der Montage absolut programmiert werden. Dazu benötigen Sie nicht einmal ein ICSP-Kabel!

Okay, fairerweise ist dies nicht dasselbe wie das Programmieren in reiner Montage von Grund auf.

Sie können jedoch eine Inline-Assembly in C einbinden. Dies bedeutet, dass Sie Code auf Ihr Arduino laden können, das über eine Inline-Assembly verfügt, die dann ausgeführt wird. Betrachten Sie die TVOut-Bibliothek , die es dem Arduino ermöglicht, NTSC / PAL auf einem Fernseher auszugeben.

Diese Bibliothek ist sehr zeitkritisch (da sie auf einem Fernseher ausgegeben wird, muss jede Scanzeile zum richtigen Zeitpunkt geschrieben werden.) Daher wird die Inline-Assembly verwendet, um den Prozess zu beschleunigen. Mit Blick auf Zeile 89 dieser Datei aus der Bibliothek verwendet der Autor einige der von ihm geschriebenen Assembly-Makros .

Jetzt. Ich vermute, dass er sie nicht mit der Standard-Arduino-IDE geschrieben hat. Diese Bibliothek ruft jedoch seinen Inline-ASM-Code auf, den jeder über seine Schnittstelle importieren, kompilieren und ausführen kann.

Viel Glück!

rascher
quelle
2
Tatsächlich können Sie auch Assembly-Quelldateien erstellen. Sie müssen lediglich die Arduino-IDE überspringen und mit den Back-End-Tools wie avr-gcc (oder was auch immer Sie als Assembler verwenden) interagieren und direkt avrdude.
Chris Stratton