Quelqu'un a-t-il évalué NuttX RTOS?

15

En lisant le journal de l'utilisateur de Linux aujourd'hui, je suis tombé sur un petit texte de présentation sur NuttX RTOS. J'ai consulté leur site Web et j'ai été assez impressionné par son ensemble de fonctionnalités et sa capacité à le mettre dans un 8052! Je trouve intéressant qu'il supporte POSIX, ce sur quoi j'ai aidé à travailler pour l'un de mes clients RTOS en interne. Celui-ci semble un peu plus riche en fonctionnalités que le RTOS interne.

Quelqu'un d'autre a-t-il entendu parler de NuttX et l'a-t-il essayé? Si oui, comment se compare-t-il à d'autres RTOS tels que FreeRTOS ?

Jay Atkinson
la source
1
Je commence tout juste à jouer avec RTOS, et quand j'ai demandé ici, j'ai reçu de bons conseils, mais j'avais le sentiment que la plupart des utilisateurs ici ne savent pas ce qu'est un RTOS. Je ne veux pas dire cela de manière négative, je pense simplement qu'il peut être utile de le demander dans d'autres forums pour augmenter vos chances de recevoir une bonne réponse.
Kortuk
Je dois quand même essayer :-) On ne sait jamais qui se cache ici :-)
Jay Atkinson
Ouais, j'ai aussi posé la question sur les peluches. Ne fait jamais de mal à espérer une bouchée.
Kortuk
Commencer la prime! Suis intéressé la comparaison entre les RTOS.
tyblu
7
Pourquoi y a-t-il un vote pour clore cette question? Les RTOS sont utilisés en tout temps en électronique et en robotique.
Kellenjb

Réponses:

17

Il y a eu une discussion sur cette question ici: lien

Extraits: l'article du Linux Journal auquel il est fait référence est ici: lien

Je pense que les ports 8052 et M68HC12 sont des choix particulièrement mauvais pour caractériser NuttX car ils ont tous deux des problèmes, et NuttX est maintenant à la version 5.16 avec 63 versions.

J'ai rempli l'interview dans l'onglet "Editeur" ici: lien ; il y a une revue là aussi: lien .

Une documentation NuttX complète est disponible ici: lien .

Les problèmes avec les pièces hcs12 et 8051 sont les suivants:

8051 / 80c52: Cette architecture est vraiment hostile à RTOS. Il possède une minuscule pile matérielle (128 octets sur le 8051, 256 sur le 80c52) à un emplacement mémoire dédié (adresse 0). Pour changer de tâche, vous devez copier la pile entière de la tâche à bloquer de son adresse dédiée vers un emplacement de sauvegarde, puis copier la pile entière de la tâche à démarrer de son emplacement de sauvegarde vers l'emplacement de pile dédié. OUI!

Et depuis, la pile est si petite. Il est très, très facile de surcharger la pile - en particulier pendant la gestion des interruptions.

Le port NuttX 8051 est complet et fonctionnel (au moins la dernière fois que je l'ai utilisé). Mais pour le rendre utile, vous devrez probablement copier la pile entière à chaque interruption afin de l'empêcher de déborder. Fondamentalement, j'ai perdu tout intérêt à ce moment-là, mais si quelqu'un était vraiment motivé à utiliser le 8051, c'est faisable (si ce n'est peut-être pas bien conseillé).

Ce qui était bien avec le port 8051, c'est que c'était un excellent exercice pour placer NuttX dans un très petit emplacement mémoire. Le port 8051 s'exécute dans 32 Ko de RAM - qui comprend les bibliothèques RTOS, libc, du compilateur, un programme de test substantiel, .data / .bss et et heap. Et avec un peu de mémoire à revendre!

hcs12: C'est un projet sur lequel je travaille pendant mon temps libre quand je ne fais rien d'autre. Il n'est tout simplement pas terminé et n'est pas encore prêt pour les heures de grande écoute.


En ce qui concerne la comparaison avec d'autres RTOS, je n'ai vraiment pas de bonnes réponses autoritaires car je n'utilise pas d'autres RTOS. Mais voici ma compréhension naïve:

FreeRTOS a des tonnes de téléchargements et une très petite empreinte d'environ 4 Ko. C'est le RTOS de choix pour les très petits microcontrôleurs. Un port FreeRTOS est fourni par les fournisseurs de silicium avec à peu près tous les MCU. C'est donc le choix RTOS par défaut.

Il existe des dizaines de concurrents avec FreeRTOS. ChiBIOS vient immédiatement à l'esprit. Ce sont tous de minuscules planificateurs de types différents.

Afin de faire une vraie comparaison, une chose que nous devons faire d'abord est de définir ce que nous entendons par un RTOS: Est-ce juste un ordonnanceur? Ou s'agit-il d'un ensemble intégré de fonctionnalités standard du système d'exploitation - comme le planificateur, le système de fichiers, les pilotes de périphérique, la gestion de la mémoire, la mise en réseau, etc. La plupart des systèmes d'exploitation, Linux par exemple, sont des environnements de développement complet, pas seulement des planificateurs. NuttX est un système d'exploitation complet, c'est le même sens que Linux. En voici quelques autres:

RTEMS : J'ai travaillé avec celui-ci. Il existe depuis toujours et devrait être très stable. C'est gros; pensez> 100kb. Je pense qu'il vise un peu au-dessus du marché des MCU.

uCOS : Jamais utilisé, mais c'est le RTOS sous plusieurs chargeurs de démarrage populaires, n'est-ce pas? Mon impression est que c'est similaire à RTEMS, mais je ne sais pas vraiment de quoi je parle.

Comment pourrais-je comparer NuttX à ceux-ci: Eh bien, il est beaucoup plus petit. L'empreinte de départ est d'environ 20 Ko. Une configuration complète comprend 10 à 20 Ko de plus. Une autre différence par rapport à ces RTOS est que NuttX est très orienté sur les normes. Vous pouvez considérer NuttX comme un tout petit travail Linux. La plupart du code qui se compile et s'exécute sur Linux s'exécutera également sur NuttX (certains codes système comme le code réseau ou les démons peuvent nécessiter quelques ajustements).

Je pense que RTEMS est plus axé sur les microprocesseurs; NuttX se concentre davantage sur les micro-contrôleurs.

patacongo
la source
4

La licence est une autre différence à garder à l'esprit lors de la sélection d'un RTOS open source. Surtout si vous prévoyez d'utiliser le RTOS dans un projet commercial. La plupart des RTOS open source ont une licence GPL modifiée. La modification de licence spécifie généralement que vous n'avez pas à votre code propriétaire qui est lié à la GPL RTOS (mais vous devez toujours libérer les fichiers RTOS avec vos modifications).

NuttX (et probablement d'autres) ont une licence BSD modifiée non restrictive. Avec la licence BSD, vous pouvez essentiellement prendre le code et l'utiliser comme s'il vous appartenait sans aucune obligation autre que la conservation des informations de licence et de copyright dans les fichiers.

patacongo
la source
Nutt, voudriez-vous que je modifie ces informations dans votre autre réponse, il semble qu'elles vont de pair.
Kortuk
Bien sûr, n'hésitez pas. Rant environ 8051 et 80c52 et hc12 semble également hors contexte ici.
patacongo
Je m'assurais juste que vous vous rendiez compte que vous pouviez éditer davantage. Puisque vous le saviez et l'aviez fait intentionnellement, nous pouvons simplement le laisser ici. Normalement, vous pouvez simplement éditer dans une autre section et utiliser des titres. Faites-moi savoir si je peux vous aider si vous changez d'avis.
Kortuk