11
votes

Y a-t-il des bibliothèques de langue interprétées de Freertos disponibles?

Je travaille pour une entreprise créée un micrologiciel pour plusieurs périphériques utilisant Freertos. Dernièrement, notre demande de nouvelles fonctionnalités a dépassé la quantité de travail que nos ingénieurs de firmware sont capables, mais nous ne pouvons pas nous permettre d'engager quelqu'un de nouveau en ce moment non plus. Faire des changements encore minuscules nécessite des personnes du micrologiciel pour aller et modifier les choses à un niveau très bas.

Je cherche une sorte de projet de langue interprété pour Freertos qui permettrait de mettre en œuvre de nouvelles fonctionnalités à un niveau supérieur. Idéalement, je voudrais obtenir des choses finalement pour que les appareils deviennent plus proches des ordinateurs génériques avec des pilotes d'écriture américains, plutôt que nous devons mettre en œuvre chaque fonctionnalité nous-mêmes.

Y a-t-il des projets Freertos qui interprètent Java, Python ou Partecode similaire?

J'ai regardé sur Google, mais comme je ne suis pas un ingénieur de firmware moi-même, je ne suis pas sûr que je cherche les bons mots-clés.

Merci tout le monde


1 commentaires

Ajout de la balise incorporée pour donner à cette question plus d'exposition.


4 Réponses :


6
votes

Je ne pense pas que les RTO, ni même le système d'exploitation, cela compte trop ici si le code est portable. En fonction de votre schéma d'entrée et de sortie, vous devrez probablement faire un peu de portage.

En ce qui concerne les langages de script embourdi, le 2 que je connais avec sont Lua et pion .

Je pense qu'il existe des versions de Python et d'autres langues telles que des systèmes embarqués, mais ils ont tendance à être la variété de Linux intégrée. Selon votre plate-forme (aucune idée si c'est un petit MCU avec 8K ROM ou un PC intégré) qui pourrait être une option.


1 commentaires

D'accord. J'ai utilisé Python 1.x sur un système intégré de 1 Mo de RAM 32 bits et il était alors étroit. Python 2.6 sur un système intégré de 1 Mo de RAM 32 bits serait probablement presque impossible.



0
votes

Je suppose que votre question se résume en fin de compte pour trouver des moyens d'augmenter le niveau d'abstraction au-dessus des mécanismes RTOS de bas niveau. Bien qu'il soit peut-être vrai que les langues interprétées fonctionnent au niveau d'abstraction un peu plus élevé que c, vous pouvez faire beaucoup mieux que cela en appliquant des méthodes basées sur des cadres et des machines d'État à l'origine des événements. Ces cadres d'événement ont été déployés depuis des décennies et ont été prouvés dans d'innombrables systèmes embarqués dans toutes sortes de domaines. Aujourd'hui, pratiquement tous les outils de modélisation pour les systèmes intégrés capables de génération de code (par exemple, Rational-Rose RT, Rhapsody, etc.) contiennent une variante d'une telle framework d'État-machine.

Mais les cadres d'état-machine entraînés par des événements peuvent être utilisés également sans gros outils. Les frameworks de la machine d'état QP (State-Machine.com), par exemple, font tout ce qui peut faire un RTO conventionnel, que de manière plus efficace, plus de nombreuses choses que les RTO ne peuvent pas.

Lorsque vous commencez à utiliser le paradigme de programmation moderne et axé sur les événements avec des machines d'état, vos problèmes changeront. Vous ne lutterez plus avec 15 niveaux de déclarations compliquées si-d'autre, et vous arrêterez de vous inquiéter des sémaphores ou d'autres mécanismes de RTO de bas niveau de bas niveau. Au lieu de cela, vous commencerez à penser à un niveau supérieur d'abstraction sur les machines d'état et les événements échangés entre eux. Après avoir expérimenté ce saut quantique, vous ne voudrez jamais retourner sur les RTO brut et le code spaghetti.


1 commentaires

Non, je pense qu'il a posé des questions sur les langues de script et vous lui avez donné une conférence sur les avantages des machines d'État. Les machines d'état sont merveilleuses. Mais ils ne sont pas un langage de script, ce qui est ce que l'OP a demandé.



2
votes

Il n'y a pas de langues interprétées qui sont "faites" pour utiliser Freertos, ou toute autre bibliothèque de filetage de microcontrôleur (appelée "RTOS" dans la communauté E2E).

Cependant, les langues que j'ai une expérience de première main en utilisant dans des systèmes embarqués (a) écrits en C, et (b) suffisamment petit pour incorporer dans un microcontrôleur comprennent:

  • lua (approprié pour presque n'importe quoi, même quelques photos)
  • python (adapté à la plupart des architectures de bras, de toute façon, avec plus de 1 Mo de RAM)

    Je n'ai pas d'expérience de première main avec elle, mais Ruby peut être aussi facile à intégrer comme python.


0 commentaires

1
votes

Au lieu de rechercher des interprètes spécifiques à Freertos, vous pouvez essayer de rechercher des interprètes pour votre microcontrôleur particulier ou un microcontrôleur en général. Il pourrait être possible de les interfacer avec Freertos ou de transformer l'interprète en une tâche.

Il semble y avoir quelqu'un d'essayer d'aller chercher Lua sur Freertos (pic32).


0 commentaires