Le Raspberry Pi 3 prend-il en charge RTOS?


12

Je suis nouveau dans le monde RTOS. Je prévois d'utiliser du RTOS sur un Raspberry Pi 3 (peut-être FreeRTOS). Quelqu'un peut-il suggérer quel RTOS serait bon pour les débutants?

Puisqu'ils n'ont pas encore publié de fiche technique sur le BCM2837, est-il même possible de charger RTOS sur un Raspberry Pi 3?

Est-ce que cela vous aidera?


1
Il n'y a certainement aucune raison pour laquelle vous ne pouvez pas charger un RTOS sur le RPi. Cependant, demander une recommandation d'un système d'exploitation particulier est hors sujet.
Chenmunka

1
Peut-on savoir pourquoi vous avez besoin d'un RTOS? Qu'est-ce que cela vous donnera que tout autre système d'exploitation ne sera pas? Quelles sont les exigences en temps réel auxquelles vous devez répondre? Pourriez-vous clarifier ce qui rend un RTOS bon pour les débutants?
joan

1
@Chenmunka "Quel est le meilleur RTOS pour le RPi?" ("pour les débutants" ou autre) serait hors sujet car basé sur l'opinion. C'est en quelque sorte cela, mais le titre est littéralement "La framboise pi 3 prend-elle en charge RTOS?" -> Comme vous le faites remarquer, probablement oui. Si le reste de la question signifie vraiment ce que sont les RTOS, alors ça va - ce qui est lié à la nature de la réponse réelle, je pense. Il y a au moins une ... sorte de.
goldilocks

@joan J'ai besoin de RTOS pour des solutions intégrées aux applications automobiles. Depuis que je suis nouveau à RTOS, je me demandais si elle peut être adossée au matériel disponible (IPD-3) à la maison .
sable

Jetez un œil au cœur d'Ultibo. C'est peut-être exactement ce dont vous avez besoin. ultibo.org
avra

Réponses:



5

Jusqu'à présent, j'ai testé le RTOS suivant sans succès pour Raspberry Pi 3, qui aidera quelqu'un à ne pas perdre de temps (j'ai perdu 3 mois): FreeRTOS, Xenomai, RTEMS, BitThunder, ChibiOS / RT

Pour RISC OS, ce n'est pas un RTOS.

Le seul que j'ai pu exécuter sur Raspberry Pi 3 jusqu'à présent est le noyau de Fuchsia OS (Magenta), mais il est à un stade antérieur et peu documenté.

Une autre façon est de vous construire RTOS par vous-même, oui c'est possible, en utilisant ULTIBO CORE, et en suivant ces tutoriels: - http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal- programmation-en-cpt1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ


1
J'ai utilisé avec succès Xenomai 2.6.5 sur un Raspberry Pi 3 (en utilisant le code de github.com/margro/linux ).
steviethecat

4

ARM, la famille ISA utilisée par les processeurs Broadcom sur tous les modèles Raspberry Pi actuels, est basée sur RISC , pour lequel RISC OS est écrit. Je pense que RISC OS a prédominé sur les appareils ARM pendant leur première décennie, car la même société de technologie basée au Royaume-Uni (Acorn) a initialement conçu à la fois ARM et RISC OS. En fait, ARM était initialement synonyme de "Acorn RISC machine", et une partie de la raison pour laquelle le Raspberry Pi est appelé ce qu'il est en raison d'une tradition au Royaume-Uni de nommer les systèmes informatiques d'après les fruits ou les noix.

RISC OS n'est pas un véritable système d'exploitation en temps réel, cependant, il utilise le multitâche coopératif , ce qui signifie que vous pouvez exécuter un processus qui peut refuser volontairement de se soumettre à un autre processus. Quelles conséquences cela peut avoir je ne sais pas, mais je suppose que:

  • Vous pouvez configurer les choses pour permettre cela sans problème, mais cela peut impliquer des restrictions sur ce que le système d'exploitation peut accomplir (par exemple, en ce qui concerne la mise en réseau).

  • Les changements de contexte en mode noyau ne se produiront qu'en raison des appels système effectués par le processus afin d'atteindre ses objectifs.

C'est assez proche de la fonctionnalité en temps réel, selon la façon dont vous devez obtenir le "temps réel". De plus, il y a une certaine confirmation que RISC OS fonctionne sur le Pi 3 .


Merci pour la réponse. Il semble qu'il ne soit vraiment pas nécessaire d'utiliser un autre système d'exploitation pour rpi-3 car le système d'exploitation résidant est également en temps réel. Mon application cible le matériel embarqué qui ne peut pas avoir de système d'exploitation basé sur Linux comme Raspbian en raison de contraintes de mémoire. Le fait est, puis-je charger d'autres RTOS ayant une petite empreinte mémoire sur rpi-3 juste pour m'habituer au monde RTOS? Y a-t-il des limitations sur rpi-3?
sable

1
Je suis désolé: pour expliquer, ce n'est pas un forum de discussion . Veuillez reprendre la visite et faire attention à la partie «Obtenez des réponses à des questions pratiques et détaillées» . Il semble que vous ayez omis des détails de votre question, invitant d'autres personnes à perdre leur temps à fournir des réponses qui ne sont pas ce que vous cherchiez afin de pouvoir les affiner après le style de discussion. Ce n'est pas ainsi que fonctionne SE. Si vous avez une question différente, posez une autre question. Ne modifiez pas celui-ci pour changer le sens d'origine ou je le fermerai. Je vous remercie.
goldilocks

1
Je vais cependant vous donner un conseil: si vous recherchez un système d'exploitation qui fonctionnera sur des systèmes avec une mémoire inférieure à Mo, vous devez d' abord découvrir quelles sont vos options. Le simple fait de choisir un système d'exploitation en temps réel au hasard "pour la pratique" peut finir par vous apprendre absolument rien sur celui que vous devez vraiment utiliser. Alors ne perdez pas votre temps. Découvrez ce que vous devez utiliser, puis demandez si vous pouvez l'utiliser sur le pi, etc.
goldilocks

0

Étant donné que la définition d'un RTOS varie selon l'application, généralement un ordinateur prétendant être quelque chose de beaucoup plus simple, RISC OS est un RTOS pour les applications moyennement complexes, et pas nécessairement pour les applications très complexes, bien qu'un RTOS très complexe sonne comme une contradiction en termes. L'exemple de Mahmoud Almostafa RABBAH ne fait référence à aucun système d'exploitation et à l'exécution d'un programme à tâche unique directement à partir du chargeur de démarrage, qui n'est pas non plus un RTOS.

La seule façon raisonnable de comprendre cela est de diviser la définition RTOS en trois niveaux:

  • Une faible complexité serait quelque chose comme une machine à laver ou un enregistreur de données, et vous êtes probablement mieux avec un matériel plus simple, par exemple Arduino ou peut-être un MCU plus simple, ou même simplement une logique séquentielle, en premier lieu. Cela consommera moins d'énergie et il y aurait beaucoup moins à s'inquiéter: ne jamais rendre les choses plus compliquées qu'elles ne doivent l'être.

  • Une grande complexité serait quelque chose comme un système multitâche complet, ce qui n'est pas le cas d'un RTOS. Il serait probablement préférable d'exécuter votre interface graphique sur un appareil séparé, si vous le souhaitez. Une complexité élevée pourrait également être la surveillance de processus qui appellent d'autres processus, et certains doivent être classés par ordre de priorité, mais là encore, il vaut mieux utiliser un type de traitement parallèle, sinon la capacité de réponse en temps réel échoue.

  • La complexité moyenne serait là où vous avez besoin des interfaces qu'un système d'exploitation normal peut fournir, par exemple USB, et peut-être une petite sortie d'affichage, mais vous voulez traiter un flux de données et ne pas être interrompu par quoi que ce soit. Cela ressemble au niveau d'une application automobile.

    Pour cela, vous pouvez compiler quelque chose sans OS, en utilisant une machine hôte pour le développer, ou vous pouvez utiliser la version de RISC OS qui démarre directement dans BASIC et se développe sur la machine cible, ce qui est généralement plus facile.

    Cela exécutera une seule tâche qui peut être assez rapide pour interroger un certain nombre d'événements, sans être interrompue par d'autres choses. Les interruptions matérielles continueraient de fonctionner à moins qu'elles ne soient désactivées (assez faciles à faire), et elles sont nécessaires pour faire fonctionner l'affichage / USB, etc. D'autres interruptions matérielles exécutent des minuteurs et des E / S que vous n'utilisez peut-être pas.

Un autre avantage de RISC OS dans les applications RTOS est que vous ne pouvez utiliser que les modules dont vous avez besoin, ce qui n'a aucun sens dans les applications GUI traditionnelles, et avait été utilisé par exemple par STD / AdvantageSix [1] bien qu'ils utilisent le terme "systèmes embarqués" au lieu de "RTOS". Les avantages que cela apporte sont une conception simplifiée, des besoins en énergie réduits, une utilisation de la mémoire réduite et des temps de démarrage plus rapides (certaines interfaces de périphériques d'E / S nécessitent un mini-démarrage elles-mêmes, et le système d'exploitation doit y participer, bien que les délais soient généralement trop courts pour être remarqués. ).

J'espère que les deux remplissent certaines lacunes dans les informations ci-dessus et clarifient les lacunes de ma propre connaissance.

[1] http://www.advantagesix.co.uk/about_us.html (les autres exemples de la mémoire ne sont plus disponibles en ligne.)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.