Gutes Einsteigerbuch zu ARM [geschlossen]

Ich suche ein gutes Einsteigerbuch für ARM-Mikrocontroller. Es sollte die CPU-Architektur und die Bootreihenfolge und idealerweise 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 mit mehreren Anbietern und mehreren Chipklassen komplexer. 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. Außerdem habe ich ein Kurspaket von meiner Universität für ARMs, aber ich fürchte, es wird nie veröffentlicht ...
@kevin-vermeer Es ist ein deutsches Buch: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie , geschrieben von einem emeritierten Professor. Sie deckt alle Themen ab, die ich in meiner Frage erwähnt habe, einschließlich einiger cooler Dinge wie dem Zählen von Assembler-Anweisungen, um zu bestimmen, wie viel Zeit eine Schleife pro Iteration benötigt.
Ich glaube, ich muss Deutsch lernen...
Das sieht nach einem interessanten Buch aus, schade, dass ich nicht so gut Deutsch kann, um es lesen und verstehen zu können.
@kwo Ich denke, es besteht keine Hoffnung, eine übersetzte Version zu bekommen, oder?

Antworten (5)

Ich schlage vor, Sie gehen zum ARM-Informationszentrum. Das ist ein guter Anfang, soweit es mich betrifft. Es bietet viele Informationen, selbst wenn Sie von einer MCU zu ARM migrieren. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0211a/index.html Auch die ATMEL-Site auf ihren ARM-Chips wird viel Gutes tun. Gute Dokumentationen und viele Anwendungshinweise. Alles Gute.

Danke. Es gibt auch einige empfehlenswerte Bücher auf der Website.

Suchen Sie nach dem Handbuch ARM ARM, ARM Architectural Reference. Deckt den Startvorgang, die Architektur, die Montage (ARM, Daumen und Daumen2) und alles ab. Der ARM ARM ist generisch, für den spezifischen Kern, an dem Sie interessiert sind, wird es auch ein TRM, Technical Reference Manual, geben. Alle diese Dokumente sind kostenlos auf der Website von ARM erhältlich. Das TRM wird sich mit den spezifischen Details für diesen Kern befassen, insbesondere wenn Sie einen der neueren Cortex-M3-basierten Mikrocontroller verwenden möchten, die Boot-Sequenz oder sagen wir mal die Ausnahmetabelle sich vom traditionellen ARM unterscheidet und Sie das TRM dafür benötigen der Cortex-M3, um die Informationen zu finden.

Wenn Sie am Ende einen Arm mit einem Cache oder MMU haben, müssen Sie möglicherweise auch das TRM dafür von der ARM-Website abrufen. Sie müssen den spezifischen Kern kennen, der in den Chip des jeweiligen Anbieters eingebaut ist, zum Beispiel kann/darf der PL310 r2p0 sich vom r3p0 unterscheiden. Der Anbieter sollte über diese Informationen verfügen und möglicherweise Links zu oder vielleicht direkt zu den Armdokumenten bereitstellen. Normalerweise betten sie die Armdokumente nicht in ihre eigene Dokumentation ein. Ich denke, ARM bevorzugt es so.

Soweit C geht, ist es nur C, nichts Besonderes, ARM wird von den Mainstream-Compilern unterstützt, gcc, llvm, Keil (jetzt im Besitz von ARM), IAR, Green Hills usw. Microsoft hat/hatte sogar einen (würde es vermeiden es aber). Nichts Besonderes für den ARM, aber Sie müssen die Nuancen für den spezifischen Compiler und seine Verknüpfung kennen. Code Sourcery ist heutzutage der richtige Weg für einen gebrauchsfertigen gcc-basierten ARM-Compiler, die LITE-Version kann kostenlos heruntergeladen und verwendet werden, und es gibt kostenpflichtige Versionen, wenn Sie Unterstützung wünschen (mehr kostenlose gcc-Arm-Unterstützung auf google.com als Sie haben Zeit zum Lesen). Vor Code Sourcery war Emdebian eine Anlaufstelle, für einige Dinge hatten/haben Yagarto und Devkitarm und Winarm alle gebrauchsfertige Lösungen (für eingebettete und nicht unbedingt Linux, Code Sourcery oder Emdebian, wenn Sie für Linux crosskompilieren möchten).

Ich habe ein paar Blogs, die nicht wirklich Blogs sind, aber Orte, an denen einige Beispielprogramme und Informationen darüber, wie man ein paar verschiedene ARM-basierte Mikrocontroller aufruft, abgelegt werden können. Einige wie einige C, die älteren Blogs, in denen ich zeige, wie Sie Ihren eigenen gcc-basierten Cross-Compiler erstellen. Ich habe vielleicht auch llvm-Informationen (Thumbulator hat ein paar Beispiele, die jedoch nicht dokumentiert sind), llvm kann standardmäßig 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 Codegenerierung von llvm hat zu gcc 4.x aufgeschlossen (gcc 4.x ist nicht unbedingt besser als gcc 3.x und weder gcc noch llvm sind so gut wie andere teure Pay for Compiler 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, die Stellaris-Teile, jetzt im Besitz von ti) sam7 finden. Ich bin nicht so ein Fan der lpc-Familie, mbed2 ist in Ordnung, abgesehen von den schmerzhaften blauen LEDs. Im Moment gibt es ein stm32-basiertes Board für 12 US-Dollar, etwas Entdeckungssache, das sofort einsatzbereit ist. Coridium hat ein Board, das dem Arduino-Fußabdruck entspricht, ebenso wie Ahorn, kann eines oder beides bei Sparkfun bekommen (viele Leckereien bei Sparkfun). Wenn Sie nach etwas Leistungsfähigerem suchen, war das Beagleboard wegen des Mangels an Schnittstellen schmerzhaft, die chinesische Version für den gleichen Preis ist/war besser (erschien in ein oder zwei Wochen, aber keinerlei Tracking-Informationen), hat Ethernet und a nicht verschraubte serielle Schnittstelle. Ich mag das Hawkboard, aber ich denke, sie haben den Designleitfaden nicht befolgt und haben möglicherweise Probleme mit der Omap. Mochte Openrd von den Plug-Computing-Leuten, hasste aber die Plug-Version. Das Openrd hat einen SATA-Strom- und Datenanschluss auf dem Board, schließen Sie einfach eine Festplatte an, andere Boards in dieser Klasse werden Sie zu etwas Flash-basiertem zwingen (sprich: sehr langsam). die marvell cores drehen im moment ohnehin ihre kreise um die ti omaps.

oder versuchen Sie kostenlos meinen Thumbulator (GitHub) Daumen-Befehlssatz-Simulator, aber beschränkt auf Daumen, keinen Arm (Sie können Ihren Code davon jedoch auf die stm32-Boards übertragen, wie das 12-Dollar-Board). Der Armulator, der sich in gdb und anderswo befindet, ist wahrscheinlich schmerzhafter zu verwenden, unterstützt aber Arm und Daumen, und qemu ist einfach zu verwenden, wenn Sie kein Interesse daran haben, zu sehen, was Ihr Code außer der Ausgabe über die serielle Schnittstelle tut. qemu unterstützt Arm, Daumen und Daumen2, ich denke, ein oder zwei Stellaris-Boards sind dort modelliert.

Wenn Sie AVR-Assembler bereits kennen, was kein so toller Befehlssatz ist (besser als einige, schlechter als andere), sollten Sie kein Problem mit ARM oder Daumen haben, ein bisschen sauberer, ein bisschen einfacher. Ebenso, wenn Sie eingebettetes C (außerhalb einer Sandbox) mit dem AVR gemacht haben, dann ist ARM gleich oder einfacher. Sie können mit dem mbed oder Maple gehen, wo sie Sandboxen haben, die den Einstieg erleichtern sollten, und wenn Sie sich dann alleine wagen möchten, können Sie dies ohne große Probleme tun. beim mbed kopierst du einfach die .bin auf das virtuelle Flash-Laufwerk, beim maple verwendest du deren loader oder dfu-util oder ähnliches, an das ich mich nicht erinnere.

Fantastische Antwort.

Gute Bücher zu ARM sind:

„ARM SOC-Architektur“ von Steve Furber

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

„ARM Architecture Reference Manual“ von ARM

Letzteres ist kostenlos auf der Website von ARM erhältlich .

Sloss, Symes und Wright sind hervorragend geeignet, wenn Sie sich von den Bäumen entfernen möchten, um den Wald zu sehen, insbesondere wenn Sie mit eingebetteten Systemen arbeiten müssen.

Furber ist einer der ursprünglichen ARM-Architekten und leistet hervorragende Arbeit, indem er Sie durch die Gründe für das Design von ARM und die Funktionsweise von ARM-Prozessorkernen im Allgemeinen führt.

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

Es wäre nützlich, die Liste der Bücher als Liste zu formatieren, auch das Einschließen von Links für diese Bücher ist nützlich.

Hitex hat diese Bücher, die Sie herunterladen können:

http://www.hitex.com/index.php?id=download-insiders-guides

Es gibt ein gutes Serien-Tutorial unter dem Namen: "Building Bare-Metal ARM Systems with GNU"

http://www.embedded.com/design/mcus-processors-and-socs/4007119/Building-Bare-Metal-ARM-Systems-with-GNU-Part-1--Getting-Started