Options de programmation autres que C ++

14

Puis-je programmer mon Arduino en utilisant n'importe quel langage de programmation autre que C ++? Si oui, quels langages de programmation? De quel logiciel aurais-je besoin pour compiler et charger mon code sur l'Arduino?

tstew
la source
1
Connexes: arduino.stackexchange.com/questions/105/…
Le gars avec le chapeau
Malheureusement, il s'agit d'un doublon efficace d'une question non-Arduino.SE: voir ici, je pense que la question que j'ai liée devrait être déplacée ici après la fin de la version bêta, mais pas encore.
apnorton
@anorton Cette question concerne les IDE alternatifs. Cette question n'est pas un doublon car elle parle de langages de programmation alternatifs.
tstew
@ user2202326 Désolé ... Il me semblait me souvenir de plus de personnes répondant avec des langues différentes que des IDE sur ce fil, mais, apparemment, je me trompais. Continuer.
apnorton
Vous pouvez examiner Netduino si vous êtes familier avec C # (Visual Studio est le chemin à parcourir, mais il existe d'autres façons de compiler du code C #). Je ne sais pas quelle carte vous avez et si elle est compatible. netduino.com
Jason Down

Réponses:

5

Quelques-uns communément connus:

En théorie, vous devriez pouvoir étendre avr-gcc pour prendre en charge d'autres langues, bien que ce ne soit pas une mince affaire. Je dois également souligner que la prise en charge de langages autres que C s'accompagne généralement de restrictions assez lourdes sur les composants de langage - par exemple, même avec C ++, il est déconseillé d'instancier de nouveaux objets mallocet freesont extrêmement coûteux à la fois en espace mémoire et en cycles.

Outre l'utilisation de Google, les références suivantes sont applicables Cliquez ici.

Hardik Thaker
la source
8

En théorie, tout compilateur qui produit un assemblage AVR pourrait être utilisé (limitations modulo sur la taille du code, l'utilisation de RAM, etc.).

Les backends AVR existent pour LLVM et GCC - donc en théorie, avec un certain effort, la plupart des langages pris en charge par les frontaux LLVM et GCC pourraient être compilés en AVR. Une grande question sera le support de la bibliothèque, etc.

Néanmoins, voici quelques choix étranges pour l'esprit de la question, plutôt que sa lettre [1].

  • AMForth , un quatrième dialecte peut être flashé sur un Arduino.
  • AVR-Ada : Ada pour les micro-contrôleurs AVR.
  • BASIC : Ramenez le Goto!

Oh, et vous pourriez écrire un assemblage AVR brut !

[1] - Je n'ai pas essayé ces derniers cependant!

Matthew G.
la source
2

Certaines personnes travaillent également sur des systèmes basés sur Javascript node.js. Un qui est déjà accessible au public est Espruino et un autre est Tessel qui sera lancé au printemps 2014.

Matthew R.
la source
1

Comme avr-g ++ devrait prendre en charge toutes les constructions C / C ++ standard, il est possible de coder l'assemblage en ligne. Plus d'informations sur ce fil de discussion arduino.cc

Faux_Clef
la source
L'assemblage en ligne ne fait pas partie des normes C / C ++, mais gcc et le compilateur microsoft c le prennent en charge, bien qu'incompatiemment.
tbodt
true, tout comme avr_gcc.
Faux_Clef
Quoi qu'il en soit, rien ne vaut l'écriture de code exécutable en hexadécimal.
Faux_Clef
1

Je suis surpris que personne n'ait mentionné AVR Assembly !

L'assemblage n'est pas souvent considéré comme la méthode de programmation la plus intéressante ou même la plus simple, mais il est néanmoins 100% possible avec tous les arduino basés sur AVR. Les cartes SAM ne fonctionneront probablement pas avec cette saveur, mais il est toujours possible d'utiliser l'assemblage dans leur programmation.

Toutes les cartes Arduino (à compter de la publication) prennent en charge la programmation d'assemblage via Atmel Studio , le SDK conçu pour les puces basées sur Atmel.

L'assemblage est pris en charge par tous les appareils Atmel et ne nécessite aucun chargeur de démarrage pour fonctionner, donc tous les programmes sont intrinsèquement en temps réel.

tuskiomi
la source
2
Notez que l'assemblage est également pris en charge par la chaîne d'outils gcc, qui est incluse dans l'installation Arduino IDE.
Edgar Bonet
@EdgarBonet Correct, c'est pourquoi il est nécessaire __asm__("Assembly code here")d'ajouter un assemblage en ligne à n'importe quelle esquisse. Pour la plupart des programmes, c'est une mauvaise idée, car il est difficile d'atteindre l'indépendance de la plate-forme avec cette méthode.
tuskiomi