Gutes Einsteigerbuch über ARM [geschlossen]


26

Ich suche ein gutes Einsteigerbuch für ARM-Mikrocontroller. Es sollte die CPU-Architektur und die Bootsequenz sowie im Idealfall auch Assembler, C und Peripherie abdecken.

Ich habe ein Buch wie dieses für AVRs und es scheint mehrere gute Möglichkeiten für Atmel-Chips zu geben. Die ARM-Landschaft ist komplexer mit mehreren Anbietern und mehreren Chipklassen. Ein Blick auf Amazon ergab keinen klaren Favoriten. Würde mich über ein paar Empfehlungen freuen.


Was ist Ihr Buch für AVRs? Ich bin neugierig. Ich habe auch ein Kurspaket von meiner Universität für Waffen, aber ich fürchte, es wird nie veröffentlicht ...
Kevin Vermeer

1
@ kevin-vermeer Es ist ein deutsches Buch: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie, geschrieben von einem pensionierten Professor. Sie behandelt alle Themen, die ich in meiner Frage angesprochen habe, einschließlich einiger cooler Dinge, wie man Assembler-Anweisungen zählt, um zu bestimmen, wie viel Zeit eine Schleife pro Iteration benötigt.
Kwo

Ich denke, ich muss Deutsch lernen ...
Kevin Vermeer

Das sieht nach einem interessanten Buch aus, schade, dass ich Deutsch nicht so gut kann, um es lesen und verstehen zu können.
Dean

@kwo Ich glaube, es gibt keine Hoffnung, eine übersetzte Version zu bekommen, oder?
NickHalden

Antworten:



13

Suchen Sie nach dem Handbuch ARM ARM, ARM Architectural Reference. Deckt den Startvorgang, die Architektur, die Assembly (ARM, Thumb und Thumb2) und alles ab. Das ARM ARM ist generisch, für den speziellen Kern, den Sie interessieren, wird es auch ein TRM, Technical Reference Manual geben. Alle diese Dokumente sind kostenlos auf der ARM-Website verfügbar. Der TRM geht auf die spezifischen Details für diesen Kern ein, insbesondere wenn Sie einen der neueren Cortex-M3-basierten Mikrocontroller verwenden möchten, die Startsequenz oder sagen wir, die Ausnahmetabelle sich von der traditionellen ARM unterscheidet und Sie den TRM für benötigen der Cortex-M3, um die Informationen zu finden.

Wenn Sie am Ende einen Arm mit Cache oder MMU haben, müssen Sie möglicherweise auch die TRM dafür von der ARM-Website herunterladen. Sie müssen den spezifischen Kern kennen, der in den jeweiligen Hersteller-Chip eingebaut ist, z. B. kann / kann der PL310 r2p0 vom r3p0 abweichen. Der Anbieter sollte über diese Informationen verfügen und möglicherweise Links zu oder direkt zu den Arm Docs bereitstellen. Normalerweise werden die Arm Docs nicht in die eigene Dokumentation eingebettet. Ich denke, ARM bevorzugt es so.

Was C betrifft, ist es nur C, nichts Besonderes. ARM wird von den Mainstream-Compilern gcc, llvm, Keil (jetzt im Besitz von ARM), IAR, Green Hills usw. unterstützt. Microsoft hat / hatte sogar eines (würde es vermeiden) es aber). Für den ARM nichts Besonderes, aber Sie müssen die Nuancen für den jeweiligen Compiler und dessen Verknüpfung kennen. Code Sourcery ist heutzutage der richtige Weg für einen einsatzbereiten gcc-basierten ARM-Compiler. Die LITE-Version kann kostenlos heruntergeladen und verwendet werden. Für Versionen, die Support benötigen, wird eine Gebühr erhoben (mehr kostenloser gcc arm-Support bei google.com als bei google.com) Sie haben Zeit zum Lesen). Vor der Entwicklung von Code Sourcery war Emdebian ein Muss, da Yagarto, Devkitarm und Winarm bereits einsatzbereite Lösungen hatten / hatten (für eingebettetes und nicht notwendigerweise Linux, Code Sourcery oder Emdebian, wenn Sie für Linux kompilieren möchten).

Ich habe ein paar Blogs, die nicht wirklich Blogs sind, aber Orte, an denen einige Beispielprogramme und Informationen zum Aufrufen einiger verschiedener ARM-basierter Mikrocontroller abgelegt werden können. Einige sind C, die älteren Blogs, die ich zeige, wie man einen eigenen GCC-basierten Cross-Compiler erstellt. Möglicherweise habe ich auch llvm-Informationen (der Thumbulator hat ein paar Beispiele, die jedoch nicht dokumentiert sind). Llvm kann sofort als Cross-Compiler für eine Reihe von Plattformen verwendet werden. Sie müssen es nicht für ein Ziel wie gcc erstellen. Und die Code-Generierung von llvm hat bis zu gcc 4.x aufgeholt (gcc 4.x ist nicht unbedingt besser als gcc 3.x, und weder gcc noch llvm sind so gut wie andere teure Bezahlungen für solche wie ARMs eigene Compiler).

http://stm32stuff.blogspot.com/

Von dort aus können Sie auf mein Profil klicken und ähnliche Informationen für lpc, lmi (luminary micro, stellaris parts, jetzt im Besitz von ti) sam7 finden. Ich bin nicht so sehr ein Fan der LPC-Familie, außer den schmerzhaften blauen LEDs ist mbed2 in Ordnung. Im Moment gibt es ein 12-Dollar-stm32-basiertes Board, das sofort spielbereit ist. Coridium hat ein Brett, das dem Arduino-Fußabdruck entspricht, wie Ahorn, kann eines oder beides bei Sparkfun bekommen (viele Goodies bei Sparkfun). wenn du nach etwas leistungsfähigerem suchst, war das beagleboard wegen der fehlenden schnittstellen schmerzhaft, die chinesische version für den gleichen preis ist / war besser (tauchte in ein oder zwei wochen auf, hat aber keine tracking info jeglicher art), ethernet und a nicht verschraubte serielle Schnittstelle. Ich mag das Hawkboard, aber ich denke, sie haben die Designanleitung nicht befolgt und sie haben möglicherweise Probleme mit dem Omap. Mochte die Openrd von den Plug-Computing-Leuten, hasste aber die Plug-Version. Das openrd verfügt über einen SATA-Strom- und Datenanschluss auf der Platine. Schließen Sie einfach eine Festplatte an. Andere Platinen dieser Klasse werden Sie zu etwas Flash-basiertem zwingen (sprich: sehr langsam). die marvell-kerne laufen im moment sowieso kreisförmig um die ti omaps.

Oder probieren Sie meinen Thumbulator (Github) aus, einen kostenlosen Thumb-Befehlssatz-Simulator, der sich jedoch nur auf den Thumb und keinen Arm beschränkt. der armulator in gdb und anderswo ist wahrscheinlich schmerzhafter in der verwendung, unterstützt aber arm und daumen, und qemu ist einfach zu verwenden, wenn Sie kein interesse daran haben zu sehen, was ihr code tut, außer der seriellen ausgabe. qemu unterstützt arm, daumen und daumen2, ich denke ein stellaris board oder zwei ist dort modelliert.

Wenn Sie AVR Assembler bereits kennen, was nicht so toll ist wie ein Befehlssatz (besser als einige, schlechter als andere), sollten Sie kein Problem mit ARM oder Daumen haben, ein bisschen sauberer, ein bisschen einfacher. Wenn Sie mit dem AVR Embedded C (außerhalb einer Sandbox) durchgeführt haben, ist ARM genauso oder einfacher. Sie können mit dem Bett oder Ahorn gehen, wo es Sandkästen gibt, die den Einstieg erleichtern sollen, und wenn Sie sich auf eigene Faust auf den Weg machen möchten, können Sie dies ohne große Schwierigkeiten tun. das mbed du kopierst einfach die .bin auf den virtuellen flash drive, den maple du benutzt deren loader oder dfu-util oder sowas erinnere ich mich nicht.


Fantastische Antwort.
NickHalden

3

Gute Bücher über ARM sind:

"ARM SOC Architecure" von Steve Furber

"ARM System Developers Guide" von Andrew Sloss, Dominic Symes und Chris Wright

"ARM Architecture Reference Manual" von ARM

Der letzte ist kostenlos auf der Website von ARM erhältlich .

Sloss, Symes und Wright eignen sich hervorragend, wenn Sie sich von den Bäumen entfernen möchten, um den Wald zu sehen, insbesondere, wenn eingebettete Systeme funktionieren.

Furber ist einer der ursprünglichen ARM-Architekten und leistet hervorragende Arbeit. Er führt Sie durch die Grundlagen des ARM-Designs und die Funktionsweise von ARM-Prozessorkernen im Allgemeinen.

Natürlich ist all das nur eine Empfehlung, die auf meiner persönlichen / subjektiven Meinung basiert und nicht als Plug für ein bestimmtes Produkt oder einen bestimmten Autor anzusehen ist.


Das Formatieren der Bücherliste als Liste ist hilfreich, auch das Einschließen von Links für diese Bücher ist hilfreich.
Trygve Laugstøl


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.