Question

Je vais prendre un cours d'introduction (3 mois) sur la conception de systèmes en temps réel, mais toute mise en œuvre.

Je voudrais construire quelque chose qui me permettra de comprendre mieux ce que je vais apprendre en théorie, mais comme je ne l'ai jamais fait un système en temps réel, je ne peux pas estimer combien de temps prendra tout projet. Ce serait un projet de validation de concept, ou quelque chose comme ça, compte tenu de mon temps disponible et des connaissances.

S'il vous plaît, pourriez-vous me donner une idée? Nous vous remercions à l'avance.

Je programm dans TSQL, Delphi et C #, mais je ne vais pas avoir de problème dans l'apprentissage une autre langue.

Était-ce utile?

La solution

Essayez de penser à des tâches en temps réel qui sont critiques dans le temps, par exemple vidéo-jeu, ce qui échoue si les tâches ne sont pas finis (par exemple le calcul de l'image suivante) dans le temps.

Vous pouvez aussi penser à des solutions industrielles, mais ils sont probablement plus difficiles à étudier dans votre environnement local.

Autres conseils

vous suggère de considérer explorer la temps réel Spécifications pour Java (RTSJ) . Bien qu'il soit un environnement traditionnel pour la construction de logiciels en temps réel, il est une technologie à venir et avec beaucoup d'intérêt. Mieux encore, vous pouvez assister à une partie du débat en cours sur ce qui compte et ce qui ne fonctionne pas dans les systèmes en temps réel.

JavaRTS est disponible gratuitement en téléchargement, et a quelques démonstrations intéressantes disponibles pour montrer un comportement déterministe, et montrer leur garbage collector RT.

En ce qui concerne un projet spécifique, je vous suggère de commencer simple: 1) Construire un travail générateur que vous pouvez accorder à consommer une quantité donnée de temps CPU; 2) Placez ceci dans un cadre qui peut produire une répartition des tâches-générateur de travail (sous forme de fils, ou comme des morceaux de travail exécuté dans un thread) et un mécanisme d'identification du travail produit; 3) Produire des graphiques du temps d'exécution, le temps de séjour, délai, slack / dépassement de ces tâches par rapport à leur priorité; 4) montrent que les tâches en cours d'exécution dans le cadre des discussions en temps réel (vice) de multipropriété se comportent différemment.

points de bonus si vous pouvez mesurer les frais généraux dans le planificateur en déterminant à quel fourni la charge (total de temps CPU produit par vos tâches de générateur de travail divisé par le temps-horloge murale) vos tâches commencent les délais manquants.

Vous devriez certainement envisager la construction de votre système en utilisant une carte de développement de matériel équipé d'un petit processeur (ARM, PIC, AVR, tout le fera). Cela a vraiment aidé à enlever ma peur du bas niveau quand je commencé à développer. Vous devrez utiliser C ou C ++ bien.

Vous aurez alors deux alternatives:. Soit aller nu-métal, ou utilisez un système d'exploitation en temps réel

Going-métal nu, vous pouvez apprendre:

  • Comment initialiser votre processeur à partir de zéro et surtout comment utiliser les interruptions, qui sont le moyen le plus rapide, vous devez répondre à un événement externel
  • Comment mettre en œuvre des threads légers avec le changement de contexte rapide, quelque chose que chaque OS en temps réel des outils
  • Pour faciliter cela un peu, chercher un kit de développement qui vient avec beaucoup de documentation et le code source. J'ai utilisé EMBEDDED Artistes conseils ARM et ils vous donnent beaucoup de matériel.

Voulez-vous profiter de la RT OS:

  • Vous-Accélérez votre projet, et sera en mesure d'apprendre à affiner une RT OS
  • Vous pouvez essayer à un système d'exploitation open-source, comme Linux ou BSD, et apprendre beaucoup à partir du code source

Soit le choix est bon, vous obtiendrez un projet pratique vraiment cool de montrer et nous espérons mieux comprendre votre matériel de cours. Bonne chance!

Comme la plupart des systèmes en temps réel sont toujours mises en œuvre en C ou C ++, il peut être bon de rafraîchir vos connaissances de ces langages de programmation. De nombreux systèmes en temps réel sont également les systèmes embarqués, vous voudrez peut-être jouer avec une open source pas cher un comme BeagleBoard ( http: // beagleboard .org / ). Cela vous donnera également la chance d'en apprendre davantage sur cross compilation etc.

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