Ich möchte ARM-Prozessoren verwenden und von PICs migrieren, die ich zu lange verwendet habe. Es gab 8-Bit-Modelle für unter 1 US-Dollar, Programmierer für unter 10 US-Dollar, und ich war von der Einfachheit und den geringen Kosten des Einstiegs verwöhnt. Aber da ihre Leistung von einigen ARM-Chips zum gleichen Preis in den Schatten gestellt wird und die Closed-Source-Software satt ist, möchte ich den Wechsel vornehmen.
Ich würde es vorziehen, keine Entwicklungsplatinen zu kaufen und stattdessen mit einer billigen, generischen Breakout-Platine (1 US-Dollar) und einem Steckbrett zu arbeiten, bei dem alle externen Komponenten verwendet werden, die für den Start erforderlich sind.
Welche Möglichkeiten habe ich, um ARM-Chips auf diese Weise zu programmieren? Gibt es Programmierer wie den PICKit2, die über USB eine Verbindung zu einem PC herstellen und über eine einfache serielle Verbindung (wie ICSP) mit dem Chip programmieren? Wie groß sind die Unterschiede bei den Setups für verschiedene ARM-Hersteller, ARM-Versionen und einzelne Chips? (ST, Atmel ...) Braucht zB jeder Hersteller seine eigenen Compiler, Programmierer, IDE usw.? Oder gibt es gemeinsame Werkzeuge für alle?
EDIT: Okay, nach weiteren Recherchen, glaube ich, dass ich eine relativ billige Lösung gefunden habe, kann ein stm32-Entwicklungsboard mit DAPLINK-Firmware geflasht werden, aber ich glaube nicht, dass die offizielle Github-Firmware nativ funktionieren wird (all dies sind Spekulationen, bis ich bekomme mein stm32 dev board in der mail). Aber ich habe festgestellt, dass auf der im readbear mk20 enthaltenen daplink_usb-Platine ein stm32-Chip ausgeführt wird. Die Firmware muss geändert werden, damit sie mit dem 8-MHz-Kristall kompatibel ist. Ansonsten tauschen Sie den Kristall gegen einen 16-MHz-Kristall aus. Ich werde aktualisieren, sobald ich dies bestätigt habe, wenn mein Entwickler-Kit ankommt.
Antworten:
Die Produktreihen stm32F0 und stm32L0 haben Discovery-Boards für etwa 10 US-Dollar, und Keil wird eine IDE mit allen Funktionen für diese Produktreihe zum Nulltarif anbieten.
Die Installationsanweisungen für Keil Free Pro MDK finden Sie HIER
Außerdem verfügt ARM über ein White Sheet zur Migration von PIC auf Cortex M3, das möglicherweise hilfreich ist
quelle
Am einfachsten ist es,> 10.000 USD für einen voll funktionsfähigen Keil Pro-Compiler auszugeben. Kaufen Sie den JLINK-Debugger (weitere 1.000 USD, möglicherweise gibt es günstigere mit einigen Einschränkungen). IAR ist eine weitere teure Möglichkeit (Beispiele für STM32F7 Cortex M7-Prozessoren, die für die 30-Tage-IAR-Demo verwendet werden können)
Günstigster Weg: Laden Sie eine (kostenlose) GCC-ARM + Eclipse-Toolchain mit JLINK-Debugger-Plugins herunter und installieren Sie sie. Besorgen Sie sich einen JLINK-Klon für etwa 20 US-Dollar, der meiner Meinung nach einwandfrei funktioniert - für das Debuggen noch nicht getestet.
Für letztere gibt es detaillierte Anweisungen im Netz, die jedoch bestimmte Annahmen treffen. Erwarten Sie, dass Sie einen Tag oder mehr damit verbringen, es in Gang zu bringen, insbesondere unter Windows. Erwarten Sie nicht, dass Sie viele der für andere IDEs bereitgestellten Beispiele ohne Arbeit verwenden können. Beeindruckend ist, dass die kostenlose Toolchain "Packs" verwenden kann (derzeit "experimentell").
Es gibt andere Systeme wie Rowley Crossworks (die, glaube ich, gcc verwenden), 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 Codebedarf weniger als 32 KB beträgt, können Sie dasselbe Keil-System kostenlos verwenden (codebeschränkte Version). Beachten Sie jedoch, dass der Upgrade-Pfad einfach, aber ziemlich teuer ist. Beispielsweise werden die einfachen Ethernet-Beispiele für SAME70 nicht kompiliert. Gut, wenn Sie PICs oder AVRs durch Low-End-ARMs ersetzen, aber nicht so gut, wenn Sie mit ARM arbeiten, 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 zu beeinträchtigen 32K-Grenze, ich habe diesen bestimmten Winkel nicht untersucht).
quelle
Folgendes verwende ich:
quelle
Der einfachste Start ist wahrscheinlich eines der Klon-Boards von Drittanbietern. Zufälliges Beispiel aus ST . Dies erfordert einen Programmierer, der das 'SWD'-Protokoll verwendet. ST stellt ST-LINK-Marken her. Ich bin mir nicht sicher, ob Sie ST-LINK-Marken mit ST-Geräten verwenden müssen oder ob es wirklich generisch ist.
Eine Kombination aus SWD und JTAG spielt auf ARM-Systemen die Rolle von ICSP und bietet Ihnen Programmier- und Debug-Funktionen.
In Bezug auf die Software ist es normalerweise möglich, mit GCC und OpenOCD auf den meisten Chips zu arbeiten. Die Details sind für jedes Gerät leicht unterschiedlich. Profis verwenden häufig die Keil-Toolchain, die recht teuer ist.
Einige Geräte (z. B. der Kinetis-Serie) verfügen über USB-Bootloader: Das Gerät wird als Massenspeichergerät angezeigt, Sie laden eine BIN-Datei darauf herunter und drücken eine Taste. Einfachste Lösung, kein Programmierer erforderlich. Das Atmel AT91 verfügt über einen USB-Bootloader, der mit einem proprietären Protokoll namens SAM-BA arbeitet.
quelle
Auf der IDE Front, Silicon Labs bietet Einfachheit Studio , das auf Basis von Eclipse . Bei GCC ist dies Standard.
Alle Starter-Kits, die sie verkaufen, sind mit einer integrierten Unterstützung ausgestattet, sodass der Einstieg relativ einfach ist.
Für die Programmierung wird ein Segger J-Link-Treiber für die Starter-Kits verwendet (kostenlos). Schließen Sie das Kit einfach an USB an und los geht's.
Atmel haben ihr Studio das auf der Visual Studio-IDE basiert und mit jedem der Atmel-Debugger verbunden werden kann. Dies wird auch mit GCC ausgeliefert.
Beide Anbieter haben zahlreiche (sehr zahlreiche) Beispiele, um ihre Geräte zu betreiben.
Ich habe beides benutzt und obwohl die Dokumentation nicht perfekt ist (es ist nie perfekt), hat sie sicherlich ausgereicht, um mich relativ schmerzfrei zum Laufen zu bringen.
Viele der ST-Kits (und andere) sind mbed- fähig.
quelle
Cypress stellt Breakout-Boards auf PSOC-4200-Basis (ARM Cortex M0) mit einem DIP-40-Formfaktor her, die einen USB-basierten Programmieradapter in einem Break-Off-Bereich enthalten. Der Preis für das Breakout-Board und den (abnehmbaren) Programmieradapter beträgt satte 3,99 US-Dollar von Digi-Key.
quelle
Ich würde CooCox empfehlen - es ist dieselbe GCC + Eclipse-Kombination, aber es ist nicht erforderlich, die Toolchain manuell zu konfigurieren. Installieren Sie sie einfach und starten Sie die Codierung.
quelle
Meiner Meinung nach spielen TI, NXP (bestehend aus NXP + Freescale) und ST eine wichtige Rolle in der Cortex-M-Welt. Insbesondere ST und NXP bieten ein wirklich wettbewerbsfähiges Tool für Newcomer Tutorials, Bibliotheken, Gerätetreiber, Tools & etc.
dann :
Nummer 2 & 3 sind die bessere Wahl für höhere Levels als Hobby. Denken Sie auch daran, dass Sie mit der kostenlosen Lizenz für professionelle Tools wie IAR, Keil oder sogar LPCXPRESSO weniger Schmerzen haben, wenn Sie in den professionellen Bereich wechseln.
quelle
mbed
- siehe [ developer.mbed.org] [developer.mbed.org]