Frage:
ARM Cortex (M3-M4): Hersteller- und Entwicklungs-IDE
user51166
2012-06-10 00:00:56 UTC
view on stackexchange narkive permalink

Ich möchte diesen Sommer etwas MCU-Programmierung durchführen und habe bereits einige unglückliche Erfahrungen mit dem STM32F4 DISCOVERY-Board gemacht, insbesondere die Tatsache, dass es ohne (kostenlose) Software geliefert wurde, die eine unbegrenzte Nutzung ermöglichen würde (mehr als 16 KB) oder 32 KB von Keil und IAR).

Derzeit plane ich auch den Kauf einiger ATTiny und ATMegas für kleinere Projekte sowie eines ISP-Programmierers und eines JTAG-Debuggers. Das würde mich in Bezug auf die Kosten für & IDE auf Atmel hinweisen.

Ich habe einen Teil dieser anderen Diskussion gelesen: ARM Cortex-M3-Entwicklungstools? und ich habe gesehen dass ich etwas ausprobiert habe, worauf dort hingewiesen wurde.

Ich habe auch die CodeSourcery-Toolchain verwendet. Unter GNU / Linux funktionierte (für mich) nur Chibios. Ich habe Eclipse mit dem Gnuarm-Plugin eingerichtet. Vielleicht habe ich es einfach nicht richtig gemacht (oder vielleicht habe ich nicht richtig verstanden, wofür es ist). Auch das Hochladen des Codes (4 KB) dauerte ungefähr 5 Minuten. Es war nicht so schlimm, aber das Debuggen war alles andere als stabil (viele Fehlermeldungen, die ich analysieren sollte, sobald ich Zeit habe: Im Moment ist das ein sekundäres Problem).

Ich hätte es gerne getan Probieren Sie Coocox aus, aber ich konnte den Code nicht hochladen (ich brauchte die Hardware-Schnittstelle, vermutlich die JTAG-Schnittstelle).

Die Frage ist daher: Gibt es einen Hersteller, der tatsächlich eine Software bereitstellt, die ohne Einschränkungen in Bezug auf Codezeilen oder Codegröße kostenlos verwendet werden kann? Im Moment habe ich nur Atmel gefunden, das jetzt sowohl ARM als auch AVR in seinem auf Visual Studio 2010 basierenden Atmel Studio 6 unterstützt. ST und NXP scheinen keine zu bieten. TI scheint sein CCStudio [Code Composer Studio] anzubieten, aber es gibt auch Einschränkungen hinsichtlich der maximalen Größe des Codes, der produziert werden kann.

Ich hätte kein Problem damit, es in GNU / Linux (in Tatsache würde ich lieber), aber ich möchte, dass es darunter gut unterstützt wird.

Ich frage mich, ob die anderen Hersteller etwas mehr bieten: Die ARM-Architektur an sich (Cortex M3 / M4 oder andere) sollte so ziemlich Standard sein. Was unterscheidet eine MCU von einer anderen, wenn ich das richtig verstanden habe (und ich hoffe, dass ein anderer Hersteller als Atmel tatsächlich Software bereitstellt, die nicht auf die Codegröße beschränkt ist)? Ich würde mich besonders für Hochgeschwindigkeits-ADCs (und auch für die Frequenz der MCU) interessieren, aber ich habe in einigen Katalogen gesehen, dass sich von Hersteller zu Hersteller nicht so viel ändert.

Nur eine Kuriosität: Wenn ich Daten von der MCU über serielle Kommunikation (z. B. USB) an den PC senden möchte, muss die MCU SEHR schnell sein, wenn ich Daten mit voller Geschwindigkeit übertragen möchte (z. B.) 480Mbit / s zum Beispiel benötigen was: 480MHz?)?

Ich bin offen für Vorschläge. Vielen Dank im Voraus.

Die USB-Geschwindigkeit beträgt 12 Mbit / s
Wollte USB 2.0 sagen (obwohl es logisch war). Ich suche [noch] nicht nach USB 3.0-Geschwindigkeiten. Was ist mit USB-Geschwindigkeit und MCU-Geschwindigkeit?
Haben Sie jemals ein Projekt entwickelt, das die Beschränkung der 32-kB-Codegröße des IAR-Compilers überschritten hat? Oder haben Sie nur das Gefühl, dass Ihr Projekt größer sein könnte?
Nur ein Gefühl. Ich möchte lieber nicht auf 31 KB kommen und plötzlich etwas Code hinzufügen und an diesem Punkt den Compiler, die IDE und all das ändern.
Schon gelesen: siehe meinen ersten Beitrag.
Ich würde immer noch gerne hören, ob es tatsächlich jemandem gelungen ist, es unter GNU / Linux mit Open Source-Tools zum Laufen zu bringen. Das ist vielleicht doch die einfachste Lösung.
Die ST-Armteile funktionieren gut mit GCC, und es gibt mehrere Open-Source-Projekte, um mit den 10-Dollar-Stlink-Evaluierungskarten (Buggy V1 und besser V2) (unter denen Sie auch Ihre eigenen Ziele programmieren können) von Linux oder was auch immer zu sprechen. Ich würde sagen, ein 48K-Download dauert vielleicht 10 Sekunden. Der Haken bei der Verwendung von GCC ist, dass Sie sich etwas Zeit nehmen müssen, um Code zu übersetzen, den Sie vom Hersteller oder anderswo abholen, und hauptsächlich das Build-System organisieren.
@ChrisStratton: gut zu wissen. Als ich es mit dem stlink-Code ausprobierte, war es SEHR lange Zeit, ein 4-KB-Projekt auf die MCU auf dem Entwicklungsboard zu übertragen. Könnten Sie bitte genau angeben, welches Open Source Sie verwenden, damit ich es versuchen kann?
Fünf antworten:
m.Alin
2012-06-10 01:08:15 UTC
view on stackexchange narkive permalink

Eine Plattform mit kostenlosem Compiler / IDE fällt mir ein:

  • mBed-Plattform. Es basiert auf einem Cortex-M3-Mikrocontroller: NXP LPC1768. Es verfügt über einen Online Compiler / eine IDE. Programmiersprache: C / C ++

Als Nachteil verfügt der Mikrocontroller über einen vorprogrammierten Bootloader, der etwas Platz im Programmspeicher einnimmt. Auf der anderen Seite müssen Sie kein zusätzliches Geld ausgeben, um einen Programmierer zu kaufen.

Ich hätte mir auch nur wenig Platz gewünscht. Daher ist ein Entwicklungsboard zum Experimentieren in Ordnung, aber ich möchte danach zu einer einzelnen MCU wechseln.
Rocketmagnet
2012-06-10 00:21:53 UTC
view on stackexchange narkive permalink

Auf die Gefahr hin, wie ein gebrochener Rekord zu klingen ...

PSoC5 ist Ihre Antwort! (Es ist erstaunlich, wie oft PSoC die Antwort ist.)

PSoC5

Die PSoC5-MCU verfügt über einen ARM Cortex M3-Kern und eine Reihe anderer brillanter Funktionen, die praktisch keine andere MCU bietet hat. Im Gegensatz zu anderen MCUs macht das Einrichten der Peripheriegeräte genauso viel Spaß wie das Essen von Eis, und Sie können in Verilog sogar Ihre eigenen erstellen! Die IDE ist ziemlich gut und völlig kostenlos.

PSoC Creator

Das Development Kit ist großartig und voller Funktionen und wird mit dem Programmierer geliefert. die Sie für Ihre zukünftigen Projekte verwenden können. Es ist nicht zu teuer.

Haben Sie etwas dagegen, das "und eine Reihe anderer brillanter Funktionen, die praktisch keine andere MCU bietet" zu klären? Ich sehe, dass der grafische Editor für die Hardware-Schaltung nützlich sein könnte (können Sie tatsächlich und einfach neue Teile erstellen, wenn Sie müssen?). Das Entwicklungskit ist ziemlich viel zu teuer für das, was ich tun werde (nur ein bisschen studieren, um ein paar kleine Projekte zu machen). Ich hätte mir nach Möglichkeit etwas mehr im Bereich von 50 bis 100 Dollar gewünscht.
@m.Alin: Können Sie eine bessere Alternative anbieten, wenn Sie dies glauben? Ich stimme zu, dass ihr Entwicklungsboard ziemlich teuer und ihre MCUs etwas teurer als TIs sind, aber ich würde gerne einige (bessere) Alternativen (falls vorhanden) hören.
@user51166 - Die beste Funktion besteht darin, jedes Signal an einen beliebigen Pin anzuschließen, indem Sie es einfach auf den Schaltplan zeichnen. Sie können auch die Basiskomponenten, Gates, Flip-Flops usw. miteinander verbinden. Je nach ausgewähltem Gerät können Sie auch DACs, Operationsverstärker und Komparatoren verwenden. Es ist so nützlich, wesentliche Hardwareänderungen einfach durch Ändern der Firmware vornehmen zu können. Das hat mich mehr als einmal aus Schwierigkeiten gebracht.
@user51166 - Die andere großartige Sache ist, dass Sie große Freiheit über die Peripheriegeräte haben, die Sie haben. Willst du 32 PWM-Kanäle? 10 SPI-Ports? 5 Quadraturdecoder? Digitale Filter? Andere MCUs versuchen, eine Handvoll Peripheriegeräte bereitzustellen, von denen sie glauben, dass sie für den durchschnittlichen Entwickler nützlich sind. PSoC gibt dir was du willst.
Nun, manchmal können viele SPI-Ports nützlich sein (um einen Multiplexer zu vermeiden). Ich denke, ich kann mir problemlos einige MCUs kaufen. Es ist nur so, dass das Entwicklungsboard so viel kostet!
Nun, Sie können immer Ihre eigene Leiterplatte für sie entwerfen und sie ziemlich billig herstellen lassen. Einige Leiterplattenhersteller bieten einen [Prototyp] -Dienst (http://www.pcbtrain.co.uk/schematic/pcbtrain-express/) an, der nur aus zwei Schichten und ohne Lötstopp besteht. Billig und schnell. Verwenden Sie das TQFP-Paket, und Sie können es selbst löten.
Keine so schlechte Idee. Obwohl ich denke, dass es mehr Versandkosten kostet als die Leiterplatte selbst. 2 Schichten sollten ausreichen. Aber für häufige kleine Projekte denke ich, dass es besser wäre, mein Löt- und Leiterplattenlabor zu Hause zu machen.
http://octopart.com/cy8ckit-010-cypress+semiconductor-14404906
Shubham
2012-06-10 02:50:18 UTC
view on stackexchange narkive permalink

Ich bin mir nicht sicher, warum Maple-Entwicklungskarten nicht so beliebt sind, aber sie sind sehr einfach zu bedienen: LeafLabs
Sie enthalten einen ARM Cortex-M3 mit 72 MHz und vielen E / A und Peripheriegeräten. Das Beste ist, dass sie mit der Arduino IDE kompatibel sind, wodurch sie sehr einfach zu programmieren sind. Es gibt keine Einschränkung, die ich kenne, außer dem, worauf der Mikrocontroller selbst beschränkt ist. LeafLabs hat die Open-Source-Arduino-IDE so portiert, dass sie spezifisch für ihre Entwickler-Boards ist.

enter image description here

Sie haben auch die Option, mBed LPC1768 a von NXP zu verwenden >, wie von m.Alin hervorgehoben. Es hat auch einen ARM Cortex-M3 mit 96 MHz. Ich habe es schon einmal benutzt und es ist ziemlich mächtig. Es hat eine Online-IDE und einen Compiler auf ihrer Website, was bedeutet, dass Sie mit dem Internet verbunden sein müssen, wenn Sie es codieren und / oder das Board programmieren möchten. NXP bietet auch eine sehr nützliche API und viele Referenzcodes.

enter image description here

Bruce Duncan
2014-02-27 16:00:01 UTC
view on stackexchange narkive permalink

Versuchen Sie es mit EM :: Blocks. Es basiert auf Code :: Blocks und funktioniert hervorragend. Ich hatte Testcode, den sie auf der EMB-Site haben und der auf dem STM32F4Disco-Board in ungefähr 10 Minuten einschließlich der Installation ausgeführt wird, und ich bin ein kompletter Bonehead. Es gibt keine Grenzen und hat die meisten der Funktionen von Keil und unterstützt alle aktuellen STM32Fxxx-Teile, die CooCox nicht bietet. Verschwenden Sie keine Zeit mit Eclipse.

bonchenko
2015-06-16 12:32:41 UTC
view on stackexchange narkive permalink

Ich habe mBed für Prototyping und emBlocks verwendet, falls ich weiter graben muss - z. Fügen Sie dem Flash-Speicher einen Offset hinzu, falls ich einen benutzerdefinierten Bootloader erstelle, bei dem mein Hauptprogramm mit einem bestimmten Offset gestartet werden muss.

Normalerweise verwende ich das STM32 Nucleo Board, das mit dem STLink-Programmierer geliefert wird, um schnelle Prototypen zu erstellen. emBlocks haben auch einen netten Debugger, der meinen Lieblingsdebugger, den Segger JLink, unterstützt.

Mit mBed ist es ein Kinderspiel, von der Nucleo-Karte zur benutzerdefinierten Karte zu wechseln. Schließen Sie einfach die SWD-Schnittstelle von der STM32-Nucleo-Karte an und entfernen Sie alle Jumper, und Sie können Binärdateien über den STLink vom Computer auf Ihr benutzerdefiniertes Board ziehen und dort ablegen. Im Fall von mBlocks können Sie die Programmierschnittstelle verwenden - sie kann den STLink erkennen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...