Question

J'ai été impliqué dans des systèmes d'exploitation embarqués d'une version ou d'une autre et j'ai généralement dû travailler avec tout le système existant. Maintenant, j'ai la chance de commencer à partir de zéro sur un nouveau projet intégré.

Les principales contraintes du système sont les suivantes:

  • Il nécessite une interface Web.
  • Les entrées doivent être traitées en temps réel (un vrai RTOS est donc nécessaire).
  • La mémoire disponible est de 32 Mo de RAM et FLASH.

Les systèmes d’exploitation précédemment utilisés par l’équipe sont VxWorks, ThreadX, uCos, pSOS et Windows CE.

Quelqu'un at-il une étude comparative ou commerciale sur le choix du système d'exploitation?

Existe-t-il d'autres systèmes d'exploitation à considérer? (ECos et RT-Linux ont été suggérés).

Modifier - Merci pour toutes les réponses reçues à ce jour. Dommage que je ne puisse pas tout marquer comme "accepté".

Était-ce utile?

La solution

Tout dépend du temps alloué à votre équipe pour apprendre un "nouveau". RTOS.
Y a-t-il des raisons pour lesquelles vous ne voulez pas utiliser quelque chose que les gens connaissent déjà?

J'ai beaucoup d'expérience avec vxWorks et je l'aime bien, mais je ne tiens pas compte de mon opinion car je travaille pour WindRiver.

uC / OS II a l’avantage d’être parfaitement documenté (le code source étant en fait expliqué) dans le livre de Labrosse. Je ne connais toutefois pas le support Web.

Je sais que le pSos n’est plus disponible.

Vous pouvez également consulter cette liste de RTOS

Autres conseils

J'ai travaillé avec QNX il y a de nombreuses années et je n'ai que de bonnes choses à dire à ce sujet. Même à l'époque, QNX 4 (qui est nettement plus compact que le micro-noyau Neutrino) était parfaitement adapté aux situations de mémoire insuffisante (bien que 32 Mo soit oodles par rapport au 1-2 Mo avec lequel nous devions jouer), et bien que je ne joue explicitement avec aucun logiciel Web, je sais qu’Apache était disponible.

Je pense qu’il serait sage d’évaluer avec soin ce que vous entendez par "RTOS". Je travaille depuis des années dans une grande entreprise qui construit des systèmes embarqués à haute performance, qu’ils qualifient de "temps réel", bien que ce ne soit pas ce qu’ils sont vraiment. Ils ont une latence faible et ont des planificateurs déterministes, et 9 fois sur 10, les gens sont vraiment ce qu’ils recherchent quand ils disent RTOS.

Le vrai temps réel nécessite un support matériel et n’est probablement pas ce que vous voulez dire. Si tout ce que vous voulez, c'est une latence faible et une planification déterministe (encore une fois, je pense que c'est ce que les gens veulent dire 90% du temps quand ils disent "temps réel"), alors toute distribution Linux fonctionnerait très bien pour vous. Vous pourriez probablement même vous débrouiller avec Windows (je ne sais pas comment vous contrôlez le planificateur Windows ...).

Encore une fois, faites attention à ce que vous entendez par "temps réel".

J'ai acheté du matériel de développement auprès de netburner . Il a été très facile de travailler avec et très bien documenté. C'est un RTOS sous uCLinux. C'est un plaisir de travailler avec l'entreprise.

Il peut être judicieux de choisir un système d'exploitation avec lequel votre équipe a de l'expérience. Cependant, je voudrais promouvoir deux bonnes options open source:

Les deux disposent de nombreuses fonctionnalités et de nombreux pilotes pour une grande variété d'architectures. Vous n'avez pas mentionné l'architecture que vous utiliserez. Ils fournissent des couches POSIX, ce qui est pratique si vous souhaitez rester aussi portable que possible.

La licence pour eCos et RTEMS est également sous licence GPL, mais avec une exception, de sorte que l'exécutable généré par la liaison avec le noyau n'est pas couvert par la GPL.

Les communautés sont très actives et certaines entreprises fournissent un soutien et un développement commerciaux.

Nous sommes très satisfaits du système Keil RTX ... léger et rapide, qui répond à toutes nos contraintes strictes en temps réel. Il a également quelques fonctionnalités de débogage intégrées pour surveiller le débordement de la pile, etc.

Je suis assez satisfait de Windows CE, bien qu'il soit "plus lourd".

Si vous êtes d’accord avec Ben Collins, vous devez déterminer si vous avez une exigence en temps réel peu contraignante (principalement pour les interactions humaines) ou très contraignante en temps réel (pour l’interfaçage avec des périphériques sensibles à la synchronisation).

Doux peut également signifier que vous pouvez tolérer certains hoquets de temps en temps.

Quelles sont les exigences de fiabilité? Mon expérience avec les systèmes d'exploitation plus généraux tels que Linux dans Embedded est qu'ils ont tendance à faire face à des ratés aléatoires en raison de leurs optimisations intelligentes en casse moyenne qui tentent d'éviter la famine et similaires pour des tâches individuelles.

VxWorks est bon:

  1. bonne documentation;
  2. outil de développement convivial;
  3. faible latence;
  4. planification déterministe.

Cependant, je doute que WindRiver convertisse leur attention majeure en Linux et que WindRiver Linux percerait le marché de WindRiver VxWorks. Moins de marché, moins d’ingénieurs.

Voici la dernière étude. La dernière a été faite il y a plus de 8 ans, c'est donc le plus pertinent. Les tableaux peuvent être utilisés pour ajouter des choix RTOS supplémentaires. Vous remarquerez que cette comparaison est axée sur des machines plus légères, mais s'applique également aux machines plus lourdes, à condition que la mémoire virtuelle ne soit pas requise.

http: // www. embedded.com/design/operating-systems/4425751/Comparing-microcontroller-real-time-operating-systems

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