Question:
Recommandations pour la programmation des microcontrôleurs sous Linux
grieih
2011-10-04 03:59:51 UTC
view on stackexchange narkive permalink

Quelqu'un peut-il me recommander un environnement de développement stable ( plate-forme + dispositif de programmation + sw / ide ) pour commencer à programmer des microcontrôleurs sous Linux (pas Arduino)?

I J'ai du mal à choisir tous ces composants, et j'ai peur de devoir recourir aux fenêtres. Merci!

Mise à jour: Merci pour vos réponses! Je vais essayer MPLAB basé sur Microchip et Netbeans. Rien contre Atmel, mais je pense que le premier sera facile à configurer pour moi ;-)

Malheureusement, je dois admettre que j'utilise le MPLAB de Microchip sous Virtualbox sous Windows XP lors de la programmation sur Ubuntu. Ça marche. Je vais bientôt passer à MPLAB X.
Mon système de développement décrit ici: http://electronics.stackexchange.com/questions/10580/is-there-a-development-system-for-the-msp430f-series-microcontrollers/10582#10582
Huit réponses:
Al Bennett
2011-10-04 13:32:06 UTC
view on stackexchange narkive permalink

J'ai eu un bon succès avec les AVR Atmel en utilisant:

  • le compilateur GCC C avec les bibliothèques AVR (empaqueté dans APT pour les distributions basées sur Debian)
  • avrdude pour le flashage périphériques (en utilisant un programmeur Atmel AVRISP mkII bon marché)
  • AVR Eclipse plugin pour un IDE

Google trouvera quelques guides sur la configuration de tout sous une installation récente d'Ubuntu. C'est beaucoup plus facile qu'auparavant, il s'agit maintenant à peu près simplement d'installer des paquets à partir des dépôts.

Merci pour votre réponse. Ces programmeurs AVRISP sont-ils suffisants pour commencer à entrer en contact avec les micros AVR ou faut-il plus de matériel?
Les micros AVRISP et une simple alimentation pour maquette sont tout ce dont vous avez besoin pour faire clignoter une LED.Pour 50 $, cependant, l'AVR Dragon vaut chaque centime.
Désolé @grieih, J'ai manqué votre commentaire. Comme le dit Zuph, c'est simple du côté du matériel, juste le programmeur et l'alimentation nécessaires. Voici une bonne référence sur les quelques broches à brancher pour la programmation: http://www.evilmadscientist.com/article.php/avrtargetboards
tcrosley
2011-10-04 04:24:25 UTC
view on stackexchange narkive permalink

Microchip a un nouveau MPLAB X utilisant la plate-forme NetBeans qui s'installe sous Linux, soit 32 bits ou 64 bits. Il est toujours en version bêta, mais il est sorti depuis un certain temps maintenant et il est pris en charge via leurs forums.

Vous pouvez développer pour l'une des lignes de microcontrôleurs Microchip, PIC10 / 12/16/18 (les 8 -bit), PIC24 (16 bits) ou PIC32 (32 bits). Je recommanderais de commencer par au moins la ligne PIC18 - les plus petits sont mieux programmés avec l'assembleur, et il est beaucoup plus facile de commencer avec C.

Vous pouvez obtenir des versions "allégées" des compilateurs gratuitement ( la principale limitation est que certaines optimisations expirent après 60 jours, mais il n'y a pas de limite de code comme certains systèmes de développement).

Microchip a une carte de développement / programmeur combiné - MPLAB Starter Kit for PIC18F MCU qui coûte 60 $. Il comprend une communication USB, un pavé tactile capacitif, un potentiomètre, un capteur d'accélération, une carte mémoire MicroSD et un écran OLED.

Merci! J'ai également entendu parler de MPLABX, mais je pensais qu'il n'était toujours pas utilisable. Pourquoi pensez-vous qu'il est préférable de commencer avec PIC18 au lieu de 16 lignes?
Le PIC18 est une version améliorée du PIC16. En particulier, il a une vraie pile de données avec un pointeur de trame, de sorte que le jeu d'instructions est beaucoup plus convivial pour les compilateurs C. Je viens de finir de faire un projet PIC16 (le processeur a été choisi par mon client avant mon arrivée), et j'ai fini par écrire l'ensemble de l'application en assembleur.
D'après ce que je vois répertorié sur Mouser / Digikey, les séries PIC16 / 18 sont toutes des MCU 8 bits et PIC24 est le point de départ des parties 16 bits.
Merci @Captainj2001 pour la correction.Dans mon commentaire précédent, j'avais dit que le PIC18 est une version améliorée du PIC16 (qui est également 8 bits), mais je vois dans ma réponse que je l'appelle 16 bits.Je vais corriger cela.
sybreon
2011-10-04 04:50:26 UTC
view on stackexchange narkive permalink

Si vous souhaitez travailler en C, vous pouvez consulter SDCC ou la liste des compilateurs croisés GCC pris en charge. Il y a une longue liste. Si vous souhaitez travailler en assemblage, la plupart des micros 8 bits ont des outils Linux bien pris en charge, par exemple gputils.

En ce qui concerne les appareils de programmation, la plupart des nouveaux micros de nos jours sont livrés avec des chargeurs de démarrage intégrés qui ne nécessitent plus l'achat d'un appareil de programmation coûteux. Sinon, vous pouvez toujours en créer un vous-même. Pour le PIC, il y a le PICKIT2, qui est livré avec des schémas.

Quant à l'EDI, vous pouvez simplement utiliser emacs ou eclipse en général.

SDCC * serait * génial, mais malheureusement, il ne prend en charge que certains appareils.Génial, si votre appareil est dans sa liste;pas si génial lorsque vous migrez vers une puce avec un peu plus de RAM et que vous n'avez soudainement aucun support pour cela.Peut même essayer cela sur Windows avec gputils, et même dans MPLABx avec la chaîne d'outils SDCC, mais c'est au mieux "expérimental".
Suboptimus
2011-10-04 05:07:55 UTC
view on stackexchange narkive permalink

Vous devriez pouvoir configurer un environnement de développement pour les parties TI / Stellaris ARM Cortex M3 en utilisant arm-eabi-gcc pour compiler le code et OpenOCD pour le flashage. et débogage sur la carte cible. J'ai tout fait sur Mac OS X, je ne peux donc pas vous expliquer comment faire mais j'ai fait quelques recherches rapides sur Google et il semble qu'il existe de nombreux guides de configuration. Honnêtement, c'est un peu pénible et vous devrez probablement faire quelques manipulations pour que tout fonctionne, même si vous obtenez un excellent guide de configuration, mais une fois que tout est configuré, le flux de travail est plutôt bon. Vous devriez également pouvoir utiliser Eclipse comme un IDE et le configurer pour charger automatiquement vos binaires sur la carte si vous le souhaitez. La ligne Stellaris est également une excellente pièce.

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
C'est possible, mais pas aussi simple que de configurer un environnement pour AVR. Je le sais parce que je le fais juste pour un LPC17xx ARM Cortex M3.
Il existe un guide pratique pour Mac OS X que j'ai utilisé [ici] (http://andrewsterian.com/wiki/tiki-index.php?page=LM3S6965) pour les pièces Stellaris.
@starblue - L'OP a dit "pas Arduino" alors j'ai pensé qu'AVR était sorti. Peut-être qu'il est cool avec l'AVR ordinaire, mais l'AVR est faible par rapport aux pièces ARM Cortex. Bien sûr, cela dépend de votre application et un M3 serait exagéré dans un appareil super simple produit en série, mais pour un amateur souhaitant apprendre les micros, vous obtenez beaucoup de puissance et de fonctionnalités avec une partie ARM. Les avantages d'AVR en tant qu'Arduino sont les outils, la communauté et les accessoires, donc si vous ne voulez pas l'ensemble du package Arduino, vous pouvez aussi bien transmettre AVR.
Bitrex
2011-10-04 07:53:52 UTC
view on stackexchange narkive permalink

L'IDE Eclipse est basé sur Java, donc fonctionne très bien sous Linux. Il existe un plugin pour l'EDI disponible qui prend en charge le développement C / C ++ pour les microcontrôleurs AVR et vous permet également de télécharger du code compilé sur l'appareil via une variété de programmeurs.

old_timer
2011-10-14 09:29:30 UTC
view on stackexchange narkive permalink

J'ai un certain nombre d'exemples de microcontrôleurs embarqués basés sur Linux sur github https://github.com/dwelch67. Notez que l'ide est votre éditeur de texte préféré et une ligne de commande où vous tapez make.

Notez que les outils gratuits pour microchip (pic32) (pas ceux de microchip) ont une optimisation, un support de jeu d'instructions 16 bits, etc. Et vous voyez ce qui se passe (parce que vous le faites vous-même). Ceux-ci sont bien sûr les principaux gcc et llvm (pas ceux de microchip).

Les mbed ou stellaris sont probablement plus dans le sens de ce que vous voulez. Ou arduino comme aller avec l'érable peut-être. Je déteste dire peut-être le panda fez. Le tableau de bord msp430 coûte 4,30 $, à ce prix, autant acheter un couple pour économiser pour un jour de pluie. La découverte de la ligne de valeur stm32 est d'environ 10 $, la même offre, obtenez-en une pour un jour de pluie.

Si vous laissez les bibliothèques et l'environnement faire tout le travail pour vous, ce n'est pas différent que d'écrire simplement des applications sur votre ordinateur de bureau, un peu de perte de temps à intégrer, il suffit d'écrire des applications de bureau. Si vous allez avec embarqué, vous devriez retrousser vos manches et vous salir les mains ... quelque chose à penser ... Sinon, achetez simplement l'arduino et en finir. Atmel est difficile à toucher pour la satisfaction du client, je ne sais pas pourquoi mais c'est ce que c'est. Le jeu d'instructions avr n'est pas génial, loin d'être aussi mauvais que le PIC (sans compter le PIC32) mais pas aussi bon que les jeux d'instructions msp430 ou ARM. J'ai utilisé l'ide arduino sur linux, je n'aurai probablement pas besoin de redémarrer Windows. Il n'y a rien d'aussi simple que l'arduino, sauf peut-être les timbres BASIC comme la parallaxe et quelques autres.

Comme pour le développement linux / unix en général, ne vous concentrez pas sur la recherche d'un IDE. Concentrez-vous sur le compilateur, gcc ou llvm, puis votre éditeur préféré et c'est tout, commencez à coder. Appliquez-le à un microcontrôleur et regardez les cibles prises en charge par les compilateurs. ARM et MIPS sont un ajustement naturel, vous n'aurez aucun problème à faire fonctionner les outils, chaque fois que vous prenez une version corrigée de gcc et que vous essayez de faire fonctionner cela sur votre machine Linux à jour, vous allez avoir du mal à time, avr, msp et pic entrent dans cette catégorie. Il en va de même pour sdcc, c'est hit or miss, et de toute façon il faut se demander: C sur le 8051? Pas aussi mauvais que C sur le PIC mais proche. Si vous cherchez vraiment un IDE poli, pris en charge, à jour, stable, etc., vous devez aller dans Windows. Keil, IAR, Code Red, etc. La demande n'est tout simplement pas là, les développeurs Linux / Unix passent historiquement leur temps à se disputer vi contre emacs car ce sont les idées dominantes faute d'un meilleur terme. ajoutez gdb si vous êtes désespéré.

C'est le problème avec Linux, la seule option est GCC. Et il n'y aura que des ports GCC fiables et maintenus pour les MCU grand public les plus en vogue.
llvm attrape et passe gcc, et est par défaut un compilateur croisé. Ce sera peut-être un jour une ancre de bateau, mais pour l'instant ce n'est pas le cas. Le port msp430 a pris moins de 24 heures, disent-ils.
Merci pour votre réponse, @dwelch! Ma principale préoccupation ici est de trouver une carte de programmation appropriée prenant en charge les développements Linux, mais je pensais qu'un IDE pourrait me libérer de l'assemblage de tous les logiciels nécessaires, du moins au début.
GTRONICK
2016-07-19 03:27:38 UTC
view on stackexchange narkive permalink

La programmation des microcontrôleurs PIC sous Linux est très simple. J'ai un clone Pickit2, un IDE MPLAB X et QPickit qui utilise pk2cmd comme backend. J'ai programmé dsPIC33 sans problème avec ce programmeur. Pour programmer votre appareil:

  1. Construisez votre projet sur MPLAB X. Dans la fenêtre de sortie, le chemin du fichier .hex sera affiché. Par exemple: /home/user/MPlabx_projects/Test/dis/default/production/test.hex
  2. Copiez cette route et utilisez pk2cmd -p -f / home /user/MPlabx_projects/Test/dis/default/production/test.hex -m -r
  3. Votre appareil sera détecté automatiquement, puis programmé et le MCLR sera libéré pour commencer à fonctionner.

N'oubliez pas de choisir la tension correcte dans votre pickit. Pour dsPIC33, il est généralement de 3,3V. Vous pouvez le choisir à partir de votre clone pickit2, en sélectionnant le bon cavalier. En outre, vous pouvez alimenter votre MCU à partir d'une alimentation indépendante de 3,3 V et utiliser les paramètres par défaut sur pk2cmd.

Si vous le souhaitez, vous pouvez utiliser QPickit. Est une application basée sur QT pour programmer des microcontrôleurs pic avec une interface très simple et utile. Je chargerai les sources du programme dans les prochains jours.

Téléchargez pk2cmd depuis ici

Bienvenue sur EE.SE!Merci pour la réponse informative.Vous souhaiterez peut-être mettre à jour vos liens vers la page de téléchargement du logiciel Microchip, et non vers le lien de téléchargement direct, afin que les futurs utilisateurs puissent voir immédiatement les versions mises à jour du logiciel.
Mises à jour effectuées.Lien modifié vers la page d'archive PICkit 2 Development Programmer / Debugger.
Mahmoud Hosseinipour
2016-07-19 10:06:32 UTC
view on stackexchange narkive permalink

Bonnes recommandations, Et si vous voulez essayer l'architecture ARM, vous avez encore plus de choix:

  1. LPC ARM cortex m0 ~ m4 familles de MCU de NXP par LPCXPRESSO (Eclipse & gnu basé IDE préréglé)comme l'un des meilleurs choix, basé sur les bibliothèques LPCOPEN & Débauger LPC-LINK2
  2. STM32 ARM cortex m0 ~ m7 MCU Families de ST BY paramétrant & configuringeclipse & gnu gnu (car je crois que vous pouvez définir celuiotherARM, mais il existe de nombreuses bibliothèques de projet modèle & forstm32) avec les bibliothèques SPL ou HAL & ST-LINK debauger


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...