Suggestions pour le langage le plus approprié (le meilleur) pour la programmation d'un système embarqué? [fermé]

StackOverflow https://stackoverflow.com/questions/649197

  •  19-08-2019
  •  | 
  •  

Question

Je cherche à faire du codage intégré pour un périphérique d'environ 20 MHz, doté de 6 Mo de RAM et d'un processeur ARM32. Quelqu'un peut-il suggérer le langage meilleur / le plus approprié pour la programmation d'un système intégré? J'envisage:

  • Lua
  • TinyPy
  • C
  • Java ME
  • C #
  • quelqu'un a suggéré JavaScript

Des suggestions? Merci

Modifier - on dirait que C et Lua sont les gagnants. Salut à tous!

Éditer - Le temps réel n’est pas un problème, c’est plus le nombre limité de processus ram / cpu qui dictent les choses.

Était-ce utile?

La solution

J'ai utilisé Lua sur un processeur ARM OMAP . L'intégration étroite de Lua avec C permet d'aller au métal à tout moment, et sa petite taille le rend compatible avec une large gamme de plates-formes. J'ai développé l'interface utilisateur de mon micrologiciel dans Lua sur mon mac, puis je l'ai transférée sur la plate-forme intégrée sans aucune modification.

Alors que le processeur OMAP était assez costaud pour exécuter d'autres langages tels que Java ou Python, je ne savais pas quel matériel je ciblais lorsque j'ai démarré le code. Lua était une valeur sûre.

Autres conseils

Si vous apportez le périphérique à partir de zéro ou si vous vous connectez directement à des périphériques non standard, C est vraiment la seule solution.

Si vous avez déjà un système d'exploitation intégré ou pouvez en porter un sans difficulté, vous aurez peut-être plus de souplesse pour ajouter l'un des langages script-y les plus avancés. C # est hors de question, sauf si vous êtes sur WinCE, et vous serez alors limité à .NET Micro.

Au-delà de cela, "meilleur" a peu de signification sans décrire ce pour quoi votre appareil va être utilisé. Certaines langues supportent mieux certaines tâches que d'autres.

C est probablement votre meilleur choix pour des ressources processeur aussi limitées.

Je serais tenté d’utiliser le C droit, mais je l’écris depuis près de 30 ans. Lua et TinyPy me semblent trop nouveaux, expérimentaux. Les appareils embarqués doivent être très robustes.

Java ME a de bons points. Je ne connais pas le C # dans un monde intégré.

Il est important de spécifier ce que vous attendez de ce périphérique. Est-ce une sorte d'application de contrôle? Doit-il implémenter des algorithmes? Qu'en est-il du support en virgule flottante? Des interfaces graphiques? La performance est-elle critique? Envisagez-vous d'utiliser un système d'exploitation?

Il est indispensable de répondre à ces questions pour choisir un langage de programmation.

Cela étant dit, les systèmes embarqués doivent être fiables, je choisirais donc une solution testée. C est probablement l’option la plus solide et la mieux supportée pour les puces ARM, mais YMMV dépend de vos besoins spécifiques.

C est certainement le langage le plus utilisé dans les systèmes embarqués. Cela semble également être la langue la plus parlée en général http://www.langpop.com/

Modifier: hmm. Je viens de remarquer que le terme "intégré" que vous semblez décrire ne consiste pas à ajouter un langage d'automatisation à une application, mais à insérer une application dans une plate-forme intégrée. Comme le suggèrent d'autres personnes, sauf si vous en avez vraiment besoin, sautez les langues incorporables et programmez votre application en C. Il n'y a pratiquement pas de temps système pour cela, à l'exception de ce que vous utilisez réellement.

Lua, JavaScript et TCL ne conviennent en aucun cas à l’intégration. Lua a été la plus facile à intégrer pour moi. Javascript pourrait être le plus rapide. Tous les trois ont une bonne gestion du code non fiable, mais le langage TCL est plus robuste. Par exemple, le code non fiable peut exécuter du code non fiable (s'il est fiable de le faire autant).

À moins que vous ne disposiez d'un système d'exploitation RTOS prenant en charge différents langages, C ou C ++ (en fonction de votre chaîne de compilateur) est la solution.

Votre décision dépendra probablement des outils disponibles pour ce processeur.

C est de loin le langage le plus pris en charge pour les processeurs intégrés, vous ne pouvez donc pas vous tromper, et ce sera une bonne expérience si vous devez écrire un logiciel pour d’autres puces à l’avenir.

C ++ devient de plus en plus populaire pour les systèmes embarqués. Au-delà, cela dépend de vos priorités (délai de mise sur le marché, utilisation des ressources, rapidité) et de la qualité des outils que vous utilisez.

C le meilleur

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top