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
Antworten:
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).
quelle
Die Arduino-IDE kann "repariert" werden, um Assembly-Code aufzunehmen. Hier ist das Wiki: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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!
quelle
Das Arduino kann mit Assembler mithilfe von GCC-AVR Inline Assembler programmiert werden. Aktivieren Sie diesen Link für das GCC-AVR Inline Assembler-Kochbuch
http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf
quelle