Frage:
Empfehlungen für die Mikrocontroller-Programmierung unter Linux
grieih
2011-10-04 03:59:51 UTC
view on stackexchange narkive permalink

Kann mir jemand eine Empfehlung für eine stabile Entwicklungsumgebung ( Plattform + Programmiergerät + sw / ide ) für den Beginn der Programmierung von Mikrocontrollern unter Linux (nicht Arduino) geben?

I. Es fällt mir schwer, all diese Komponenten auszuwählen, und ich fürchte, ich muss auf Fenster zurückgreifen. Danke!

Update: Danke für Ihre Antworten! Ich werde Microchip und Netbeans-basiertes MPLAB ausprobieren. Nichts gegen Atmel, aber ich denke, Ersteres wird für mich einfach einzurichten sein ;-)

Leider muss ich zugeben, dass ich beim Programmieren unter Ubuntu das MPLAB von Microchip unter Virtualbox in Windows XP verwende. Es klappt. Ich werde bald zu MPLAB X wechseln.
Mein hier beschriebenes Entwicklungssystem: http://electronics.stackexchange.com/questions/10580/is-there-a-development-system-for-the-msp430f-series-microcontrollers/10582#10582
Acht antworten:
#1
+8
Al Bennett
2011-10-04 13:32:06 UTC
view on stackexchange narkive permalink

Ich hatte gute Erfolge mit Atmel-AVRs mit:

  • dem GCC C-Compiler mit AVR-Bibliotheken (in APT für Debian-basierte Distributionen verpackt)
  • avrdude zum Flashen Geräte (mit einem billigen Atmel AVRISP mkII-Programmierer)
  • AVR Eclipse-Plugin für eine IDE

Beim Googeln finden Sie einige Anleitungen zum Einstellen unter einer aktuellen Ubuntu-Installation. Es ist viel einfacher als früher, jetzt werden nur noch Pakete aus den Repos installiert.

Danke für deine Antwort. Reichen diese AVRISP-Programmierer aus, um mit AVR-Mikros in Kontakt zu treten, oder wird mehr Hardware benötigt?
Die AVRISP-Mikros und ein einfaches Steckbrett-Netzteil sind alles, was Sie brauchen, um eine LED zum Blinken zu bringen. Für 50 US-Dollar ist der AVR Dragon jedoch jeden Cent wert.
Entschuldigung @grieih, Ich habe Ihren Kommentar verpasst. Wie Zuph sagt, ist es auf der Hardwareseite einfach, nur der Programmierer und das Netzteil werden benötigt. Hier ist eine gute Referenz zu den wenigen Pins, die Sie zum Programmieren anschließen müssen: http://www.evilmadscientist.com/article.php/avrtargetboards
#2
+6
tcrosley
2011-10-04 04:24:25 UTC
view on stackexchange narkive permalink

Microchip verfügt über ein neues MPLAB X, das die NetBeans-Plattform verwendet und unter Linux entweder 32-Bit oder 64-Bit installiert wird. Es befindet sich noch in der Beta-Version, ist aber schon eine Weile nicht mehr verfügbar und wird in den Foren unterstützt.

Sie können für jede der Microchip-MCU-Linien PIC10 / 12/16/18 (alle 8) entwickeln -bit), PIC24 (16-Bit) oder PIC32 (32-Bit). Ich würde empfehlen, mindestens mit der PIC18-Zeile zu beginnen - die kleineren sind am besten mit Assembler programmiert, und es ist viel einfacher, mit C zu beginnen.

Sie können "Lite" -Versionen der Compiler kostenlos erhalten ( Die Hauptbeschränkung besteht darin, dass einige Optimierungen nach 60 Tagen ablaufen, es jedoch keine Codebeschränkung gibt (wie bei einigen Entwicklungssystemen).

Microchip verfügt über ein kombiniertes Entwicklungsboard / Programmierer - MPLAB Starter Kit für PIC18F MCU das kostet 60 $. Es umfasst USB-Kommunikation, ein kapazitives Touchpad, ein Potentiometer, einen Beschleunigungssensor, eine MicroSD-Speicherkarte und ein OLED-Display.

Vielen Dank! Habe auch von MPLABX gehört, dachte aber, es sei immer noch nicht verwendbar. Warum ist es Ihrer Meinung nach besser, mit PIC18 statt mit 16 Zeilen zu beginnen?
Der PIC18 ist eine verbesserte Version des PIC16. Insbesondere hat es einen realen Datenstapel mit einem Rahmenzeiger, so dass der Befehlssatz für C-Compiler viel benutzerfreundlicher ist. Ich habe gerade ein PIC16-Projekt abgeschlossen (der Prozessor wurde von meinem Kunden ausgewählt, bevor ich an Bord kam), und am Ende habe ich die gesamte Anwendung in Assembler geschrieben.
Nach dem, was ich auf Mouser / Digikey sehe, handelt es sich bei der PIC16 / 18-Serie um 8-Bit-MCUs, und bei PIC24 beginnen die 16-Bit-Teile.
@Captainj2001 danke für die Korrektur.In meinem vorherigen Kommentar hatte ich gesagt, dass der PIC18 eine verbesserte Version des PIC16 ist (der ebenfalls 8-Bit ist), aber ich sehe in meiner Antwort, dass ich ihn als 16-Bit bezeichne.Ich werde das korrigieren.
#3
+3
sybreon
2011-10-04 04:50:26 UTC
view on stackexchange narkive permalink

Wenn Sie in C arbeiten möchten, können Sie entweder SDCC oder die Liste der unterstützten GCC Cross-Compiler auschecken. Es gibt eine lange Liste. Wenn Sie in der Baugruppe arbeiten möchten, haben die meisten 8-Bit-Mikros gut unterstützte Linux-Tools, z. gputils.

Bei Programmiergeräten sind die meisten neueren Mikros heutzutage mit integrierten Bootloadern ausgestattet, für die kein teures Programmiergerät mehr gekauft werden muss. Ansonsten können Sie jederzeit selbst eine bauen. Für den PIC gibt es den PICKIT2, der mit Schaltplänen geliefert wird.

Für die IDE können Sie im Allgemeinen nur Emacs oder Eclipse verwenden.

SDCC * wäre * fantastisch, aber leider unterstützt es nur einige Geräte.Großartig, wenn Ihr Gerät in der Liste enthalten ist.Nicht so toll, wenn Sie auf einen Chip mit etwas mehr RAM migrieren und plötzlich keine Unterstützung mehr haben.Kann dies sogar unter Windows mit Gputils und sogar in MPLABx mit der SDCC-Toolchain versuchen, aber das ist bestenfalls "experimentell".
#4
+2
Suboptimus
2011-10-04 05:07:55 UTC
view on stackexchange narkive permalink

Sie sollten in der Lage sein, eine Entwicklungsumgebung für die TI / Stellaris ARM Cortex M3-Teile mit arm-eabi-gcc zum Kompilieren von Code und OpenOCD zum Flashen einzurichten und Debuggen auf der Zielplatine. Ich habe alles unter Mac OS X gemacht, daher kann ich Ihnen keine direkte Anleitung geben, aber ich habe ein paar schnelle Google-Suchen durchgeführt und es sieht so aus, als gäbe es viele Setup-Anleitungen. Ehrlich gesagt ist es eine Art Schmerz und Sie müssen wahrscheinlich ein wenig herumspielen, um alles zum Laufen zu bringen, selbst wenn Sie eine großartige Installationsanleitung erhalten, aber sobald alles konfiguriert ist, ist der Workflow ziemlich gut. Sie sollten auch in der Lage sein, Eclipse als IDE zu verwenden und es so zu konfigurieren, dass Ihre Binärdateien automatisch auf die Karte geladen werden, wenn Sie dazu neigen. Die Stellaris-Linie ist auch ein großartiges Teil.

http://electronics.stackexchange.com/questions/1926/best-way-to-install-arm-elf-gcc-onto-a-linux-machine http://electronics.stackexchange.com/questions/991/arm-cortex-m3-development-tools
Es ist möglich, aber bei weitem nicht so einfach wie das Einrichten einer Umgebung für AVR. Ich weiß, weil ich es nur für einen LPC17xx ARM Cortex M3 mache.
Es gibt eine direkte Anleitung für Mac OS X, die ich [hier] (http://andrewsterian.com/wiki/tiki-index.php?page=LM3S6965) für die Stellaris-Teile verwendet habe.
@starblue - Das OP sagte "nicht Arduino", also dachte ich, AVR sei raus. Vielleicht ist er cool mit normalem AVR, aber AVR ist im Vergleich zu ARM Cortex-Teilen schwach. Natürlich hängt es von Ihrer Anwendung ab und ein M3 wäre in einem supereinfachen Seriengerät übertrieben, aber für einen Bastler, der Mikros lernen möchte, erhalten Sie mit einem ARM-Teil viel Leistung und Funktionen. Die Vorteile von AVR als Arduino sind die Tools, die Community und das Zubehör. Wenn Sie also nicht das gesamte Arduino-Paket möchten, können Sie AVR auch weitergeben.
#5
+2
Bitrex
2011-10-04 07:53:52 UTC
view on stackexchange narkive permalink

Die Eclipse -IDE basiert auf Java und funktioniert daher unter Linux einwandfrei. Für die IDE steht ein Plugin zur Verfügung, das die C / C ++ - Entwicklung für AVR-Mikrocontroller unterstützt und es Ihnen ermöglicht, kompilierten Code über verschiedene Programmierer auf das Gerät hochzuladen.

#6
+1
old_timer
2011-10-14 09:29:30 UTC
view on stackexchange narkive permalink

Ich habe eine Reihe von Linux-basierten Beispielen für eingebettete Mikrocontroller unter github https://github.com/dwelch67. Beachten Sie, dass das ide Ihr bevorzugter Texteditor und eine Befehlszeile ist, in die Sie make eingeben.

Beachten Sie, dass die kostenlosen Tools für Mikrochips (pic32) (nicht die von Mikrochips) optimiert sind, 16-Bit-Befehlssatzunterstützung usw. Und Sie können sehen, was los ist (weil Sie es selbst tun). Dies sind natürlich die Hauptlinien gcc und llvm (nicht die von microchip).

Die mbed oder stellaris entsprechen wahrscheinlich eher Ihren Vorstellungen. Oder Arduino wie gehen vielleicht mit dem Ahorn. Ich hasse es, vielleicht den Fez Panda zu sagen. Das msp430 Launchpad kostet 4,30 US-Dollar. Zu diesem Preis kann man sich auch ein Paar kaufen, um für einen regnerischen Tag zu sparen. Die stm32-Wertlinienerkennung liegt bei etwa 10 US-Dollar. Mit dem gleichen Angebot erhalten Sie eine für einen regnerischen Tag.

Wenn Sie die Bibliotheken und die Umgebung die ganze Arbeit für Sie erledigen lassen, ist dies nicht anders, als nur Anwendungen auf Ihre zu schreiben Desktop-Computer, ein bisschen Zeitverschwendung beim Einbetten, schreiben Sie einfach Desktop-Apps. Wenn Sie sich für Embedded entscheiden, sollten Sie die Ärmel hochkrempeln und sich die Hände schmutzig machen ... etwas, worüber Sie nachdenken sollten ... Andernfalls kaufen Sie einfach das Arduino und lassen Sie es hinter sich. Atmel ist für die Kundenzufriedenheit schwer zu berühren, nicht sicher warum, aber es ist was es ist. Der avr-Befehlssatz ist nicht großartig, bei weitem nicht so schlecht wie der PIC (ohne den PIC32), aber nicht so gut wie der msp430- oder ARM-Befehlssatz. Ich habe das Arduino Ide unter Linux verwendet und muss wahrscheinlich nicht unter Windows neu starten. Es gibt nichts so einfaches wie das Arduino, außer vielleicht die BASIC-basierten Briefmarken wie Parallaxe und einige andere.

Wie bei der Linux / Unix-Entwicklung im Allgemeinen sollten Sie sich nicht auf die Suche nach einer IDE konzentrieren. Konzentrieren Sie sich auf den Compiler, gcc oder llvm, dann auf Ihren Lieblingseditor und fertig. Wenden Sie dies auf einen Mikrocontroller an und sehen Sie sich die Ziele an, die die Compiler unterstützen. ARM und MIPS passen natürlich zusammen, Sie werden keine Probleme haben, die Tools zum Laufen zu bringen, jedes Mal, wenn Sie eine gepatchte gcc-Version nehmen und versuchen, diese auf Ihrer aktuellen Linux-Box zum Laufen zu bringen, werden Sie von Zeit zu Zeit Probleme haben time, avr, msp und pic fallen in diese Kategorie. Gleiches gilt für sdcc, es ist ein Hit oder Miss, und trotzdem muss man sich fragen: C auf dem 8051? Nicht so schlecht wie C auf dem PIC, aber nah dran. Wenn Sie wirklich nach einer polierten, unterstützten, aktuellen, stabilen IDE usw. suchen, müssen Sie zu Windows gehen. Keil, IAR, Code Red usw. Die Nachfrage ist einfach nicht da. Linux / Unix-Entwickler verbringen ihre Zeit damit, vi gegen Emacs zu streiten, da dies die dominierenden Ides sind, weil es keinen besseren Begriff gibt. Wirf GDB ein, wenn du verzweifelt bist.

Dies ist das Problem mit Linux, die einzige Option ist GCC. Und es wird nur zuverlässige, gewartete GCC-Ports für die am meisten gehypten Mainstream-MCUs geben.
llvm fängt und übergibt gcc und ist standardmäßig ein Cross-Compiler. Es mag eines Tages auch ein Bootsanker sein, aber im Moment ist es nicht so. Der msp430-Port habe weniger als 24 Stunden gedauert, heißt es.
Vielen Dank für Ihre Antwort, @dwelch! Mein Hauptanliegen hier ist es, ein geeignetes Programmierboard zu finden, das Linux-Entwicklungen unterstützt, aber ich dachte, eine IDE könnte mich davon befreien, zumindest zu Beginn alle erforderlichen Software-Teile zusammenzustellen.
#7
+1
GTRONICK
2016-07-19 03:27:38 UTC
view on stackexchange narkive permalink

Das Programmieren von PIC-Mikrocontrollern unter Linux ist sehr einfach. Ich habe einen Pickit2-Klon, eine MPLAB X-IDE und QPickit, die pk2cmd als Backend verwenden. Ich habe dsPIC33 ohne Probleme mit diesem Programmierer programmiert. So programmieren Sie Ihr Gerät:

  1. Erstellen Sie Ihr Projekt auf MPLAB X. Im Ausgabefenster wird der .hex-Dateipfad angezeigt. Beispiel: / home / user / MPlabx_projects / Test / dis / default / product / test.hex
  2. Kopieren Sie diese Route und verwenden Sie pk2cmd -p -f / home /user/MPlabx_projects/Test/dis/default/production/test.hex -m -r
  3. Ihr Gerät wird automatisch erkannt, dann programmiert und die MCLR wird freigegeben, um den Betrieb zu starten.
  4. ol>

    Denken Sie daran, die richtige Spannung in Ihrem Pickit zu wählen. Für dsPIC33 beträgt im Allgemeinen 3,3 V. Sie können es aus Ihrem pickit2-Klon auswählen und den richtigen Jumper auswählen. Sie können Ihre MCU auch über eine unabhängige Stromversorgung von 3,3 V mit Strom versorgen und die Standardeinstellungen für pk2cmd verwenden.

    Wenn Sie möchten, können Sie QPickit verwenden. Ist eine QT-basierte Anwendung zum Programmieren von Pic-Mikrocontrollern mit einer sehr einfachen und nützlichen Oberfläche. Ich werde die Programmquellen in den nächsten Tagen laden.

    Laden Sie pk2cmd von hier

    herunter
Willkommen bei EE.SE!Danke für die informative Antwort.Möglicherweise möchten Sie Ihre Links so aktualisieren, dass sie für die Microchip-Software-Downloadseite und nicht für den direkten Download-Link bestimmt sind, damit zukünftige Benutzer aktualisierte Versionen der Software sofort sehen können.
Aktualisierungen vorgenommen.Der Link wurde zur Archivseite des PICkit 2 Development Programmer / Debugger geändert.
#8
  0
Mahmoud Hosseinipour
2016-07-19 10:06:32 UTC
view on stackexchange narkive permalink

Gute Empfehlungen, und wenn Sie die ARM-Architektur ausprobieren möchten, haben Sie noch mehr Auswahl:

  1. LPC ARM-Cortex m0 ~ m4 MCU-Familien von NXP by LPCXPRESSO (Eclipse & gnu-basierte voreingestellte IDE)als eine der besten Wahl, basierend auf LPCOPEN-Bibliotheken & LPC-LINK2-Debauger
  2. STM32 ARM-Cortex m0 ~ m7 MCU-Familien von ST BY-Einstellung & configuringeclipse & gnu gcc (wie ich glaube, Sie können diese für jeden einstellenanderer ARM-Chip, aber es gibt viele Vorlagenprojekt-&-Bibliotheken forstm32) mit SPL- oder HAL-Bibliotheken & ST-LINK-Debauger
  3. ol>


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...