Ich möchte mit der Verwendung von ARM-Prozessoren beginnen und von PICs migrieren, die ich zu lange verwendet habe. 8-Bit-Modelle waren für unter 1 $ erhältlich, Programmierer für unter 10 $, und ich war verwöhnt von der Leichtigkeit und den niedrigen Kosten für den Einstieg. Aber da ihre Leistung von einigen ARM-Chips zum gleichen Preis in den Schatten gestellt wird und ich die Nase voll von Closed-Source-Software habe, möchte ich umsteigen.
Ich würde es lieber vermeiden, Entwicklungsboards zu bekommen, und stattdessen direkt mit einer billigen generischen Breakout-Leiterplatte (1 US-Dollar) und auf einem Steckbrett mit allen externen Komponenten beginnen, die für den Start unerlässlich sind.
Welche Möglichkeiten habe ich, ARM-Chips auf diese Weise zu programmieren? Gibt es Programmierer wie das PICKit2, die USB verwenden, um eine Verbindung zu einem PC herzustellen und über eine einfache serielle Verbindung (wie ICSP) mit dem Chip zu programmieren? Wie viel Unterschied in den Setups ist für verschiedene ARM-Hersteller, ARM-Versionen und einzelne Chips erforderlich? (ST, Atmel...) Braucht zB jeder Hersteller seine eigenen Compiler, Programmierer, IDE etc? Oder gibt es gemeinsame Tools für alle?
BEARBEITEN: In Ordnung, nach mehr Recherche glaube ich, dass ich eine relativ billige Lösung gefunden habe, ein stm32-Entwicklungsboard kann mit DAPLINK-Firmware geflasht werden, aber ich glaube nicht, dass die offizielle Github-Firmware nativ funktionieren wird (all dies ist Spekulation, bis ich erhalten Sie mein stm32-Entwicklungsboard per Post). Aber ich habe festgestellt, dass auf dem daplink_usb-Board, das im readbear mk20 enthalten ist, ein stm32-Chip läuft, sie haben die Firmware veröffentlicht, die eine Zeile ändern muss, um sie mit dem 8-MHz-Kristall kompatibel zu machen (detailliert im unten verlinkten Forumsbeitrag). Ansonsten den Quarz gegen einen 16 MHz tauschen. Ich werde aktualisieren, sobald ich dies bestätigt habe, wenn mein Entwicklungskit ankommt.
Die stm32F0- und stm32L0-Linien haben Discovery-Boards, die etwa 10 US-Dollar kosten, und Keil wird eine voll funktionsfähige IDE für diese Linie zum Nulltarif bereitstellen.
Die Installationsanweisungen für Keil Free Pro MDK finden Sie HIER
Außerdem hat ARM ein weißes Blatt zur Migration von PIC zu Cortex M3, das Sie möglicherweise hilfreich finden
Der einfachste Weg: Geben Sie > 10.000 USD für einen voll funktionsfähigen Keil Pro-Compiler aus und kaufen Sie den JLINK-Debugger (weitere 1.000 USD vielleicht - es gibt billigere mit einigen Einschränkungen). IAR ist eine weitere teure Möglichkeit (Beispiele werden für den STM32F7 Cortex M7-Prozessor bereitgestellt, der in der 30-tägigen IAR-Demo funktioniert).
Günstigster Weg - Laden Sie eine (kostenlose) GCC-ARM + Eclipse-Toolchain mit JLINK-Debugger-Plugins herunter und installieren Sie sie. Holen Sie sich einen JLINK-Klon für etwa 20 US-Dollar, der meiner Meinung nach in Ordnung sein wird - noch nicht getestet - zum Debuggen.
Für letztere gibt es im Netz ausführliche Anleitungen, die allerdings von gewissen Annahmen ausgehen. Erwarten Sie, dass Sie einen Tag oder länger damit verbringen, es zum Laufen zu bringen, insbesondere unter Windows. Erwarten Sie nicht, dass Sie viele der bereitgestellten Beispiele für andere IDEs ohne etwas Arbeit verwenden können. Beeindruckend ist, dass die kostenlose Toolchain „Packs“ verwenden kann (derzeit „experimentell“).
Es gibt andere Systeme wie Rowley Crossworks (das gcc verwendet, glaube ich), die finanziell weniger schmerzhaft sind. Atmel Studio ist ein anderes, aber ich hatte bittere Beschwerden von meinem sehr erfahrenen Firmware-Entwickler darüber (habe selbst nur kurz damit gespielt).
Wenn Ihr Code weniger als 32 KB benötigt, können Sie dasselbe Keil-System kostenlos verwenden (codebeschränkte Version), aber seien Sie sich bewusst, dass der Upgrade-Pfad einfach, aber ziemlich teuer ist. Beispielsweise werden die einfachen Ethernet-Beispiele für den SAME70 nicht kompiliert. Gut, wenn Sie PICs oder AVRs durch Low-End-ARMs ersetzen, aber nicht so toll, wenn Sie ARM verwenden, weil Sie tatsächlich mit LCD-Displays sprechen und komplexe Kommunikationsprotokolle ausführen müssen (möglicherweise können vorkompilierte Module enthalten sein, ohne die 32K-Grenze, ich habe diesen speziellen Winkel nicht untersucht).
Folgendes verwende ich:
Der einfachste Anfang ist wahrscheinlich eines der Clone-Boards von Drittanbietern. Zufälliges Beispiel von ST . Das erfordert einen Programmierer, der das 'SWD'-Protokoll verwendet. ST stellt 'ST-LINK'-Marken her, ich bin mir nicht sicher, ob Sie ST-LINK-Geräte mit ST-Geräten verwenden müssen oder ob es wirklich generisch ist.
Eine Kombination aus SWD und JTAG spielt die Rolle von ICSP auf ARM-Systemen und bietet Ihnen Programmier- und Debug-Funktionen.
Softwaretechnisch ist es normalerweise möglich, mit GCC und OpenOCD auf den meisten Chips zu arbeiten. Die Details sind bei jedem Gerät etwas anders. Profis nutzen oft die recht teure Toolchain von Keil.
Einige Geräte (z. B. der Kinetis-Serie) haben USB-Bootloader: Das Gerät erscheint als Massenspeicher, man lädt eine BIN-Datei darauf herunter und drückt einen Knopf. Einfachste Lösung, kein Programmierer erforderlich. Atmel AT91 verfügt über einen USB-Bootloader, der mit einem proprietären Protokoll namens SAM-BA arbeitet.
An der IDE-Front stellt Silicon Labs Simplicity Studio bereit , das auf Eclipse basiert . Es wird standardmäßig mit GCC geliefert.
Es gibt eine integrierte Unterstützung für alle Starter-Kits, die sie verkaufen, was den Einstieg relativ schmerzlos macht.
Die Programmierung verwendet einen Segger J-Link-Treiber für die Starterkits (kostenlos). Schließen Sie das Kit einfach an USB an und los geht's.
Atmel hat sein Studio , das auf der Visual Studio IDE basiert und sich mit jedem der Atmel-Debugger verbinden kann. Dies wird auch mit GCC geliefert.
Beide Anbieter haben zahlreiche (sehr zahlreiche) Beispiele, um ihre Geräte anzutreiben.
Ich habe beide benutzt und obwohl die Dokumentation nicht perfekt ist (sie ist es nie), war sie sicherlich ausreichend, um mich relativ schmerzlos zum Laufen zu bringen.
Viele der ST-Kits (und andere) sind mbed- fähig.
Cypress stellt PSOC-4200-basierte (ARM Cortex M0) Breakout-Boards mit einem DIP-40-Formfaktor her, die einen USB-basierten Programmieradapter in einem Break-off-Teil enthalten. Der Preis für das Breakout-Board und den angeschlossenen (abnehmbaren) Programmieradapter beträgt satte 3,99 US-Dollar von Digi-Key.
Ich würde CooCox empfehlen - es ist die gleiche GCC + Eclipse-Kombination, aber Sie müssen die Toolchain nicht manuell konfigurieren, installieren Sie sie einfach und beginnen Sie mit dem Codieren.
Meiner Meinung nach spielen TI, NXP (bestehend aus NXP + Freescale) und ST eine wichtige Rolle in der Welt von Cortex M, insbesondere ST und NXP bieten wirklich wettbewerbsfähige Tools für Neueinsteiger. Ein weiterer wichtiger Parameter ist die Popularität in der Open-Source-Community, die eine Menge verursacht Tutorials, Bibliotheken, Gerätetreiber, Tools & etc.
dann :
Nummer 2 & 3 sind eine bessere Wahl für die Oberstufe als für Hobby. Denken Sie auch daran, dass Sie mit der Verwendung einer kostenlosen Lizenz für professionelle Tools wie IAR, Keil oder sogar LPCXPRESSO weniger Schmerzen haben, wenn Sie in den professionellen Bereich wechseln.
mbed
- siehe [ developer.mbed.org][developer.mbed.org]
MSalter
Bence Kaulics
CL22
Ignacio Vazquez-Abrams
Scott Seidmann
CL22
Sean Houlihane
pjc50
Spannungsspitze
CL22
Bence Kaulics
CL22
Ignacio Vazquez-Abrams