Langage utilisé pour écrire des programmes par satellite missions?
Vient de sortir d'intérêt , nous savons qu'il y a beaucoup de programmation impliqués dans la réalisation d'un satellite . Quelles langues sont-ils écrit dans ?
- Comment sur les langues utilisées pour le contrôle de la Toyota accélérateur et les freins?
- Un commentaire que j'ai écrit dans un fil de discussion sur lwn.net: lwn.net/Articles/374618
- Merci à tous , c'était vraiment intéressant 🙂
- Il est certainement dépend du "niveau d'assurance", c'est à dire "comment fracturation êtes-vous quand le logiciel gnons dehors"? E. g. pour Galileo, en 2004, de haut niveau d'assurance de Développement Logiciel (Niveau d'Assurance de l', SW-DAL) "DAL" moyens. C (j'espère MISRA sous-ensemble), Ada, Assembleur et une foule de processus pour les révisions et les contrôles. Descendre à "DAL D" vous permet d'utiliser le C++ et le "DAL E" (où l'échec est un haussement d'épaules & redémarrage), vous pouvez utiliser Java, trop. Un entrepreneur peut proposer d'autres langues si cela peut être dûment justifié. Je l'espère, je ne voudrais pas voir stupide footshootery dans C, où l'Esterel est le bon outil.
Vous devez vous connecter pour publier un commentaire.
Le satellite de la NASA missions, j'ai été impliqué dans toutes utilisées en langage d'assemblage pour le logiciel embarqué. Il y a une forte préférence à la NASA pour utiliser le logiciel de vol avec patrimoine -- la réutilisation de composants (matériels et logiciels) avec une expérience réussie de l'histoire sur des missions précédentes. Ainsi, plutôt que d'utiliser le code compilé sur la dernière, la plupart des processeurs puissants,
nous avons souvent l'aide de la main-codé de l'assemblée sur wimpy, mais a essayé-et-vrai, les transformateurs. Par exemple,
le projet THEMIS, construit en 2003 et lancé en 2007, s'exécute sur le processeur Intel 8085 processeurs, avec codée à la main modules d'assemblage avec le patrimoine de précédentes missions, comme le VENT, CLUSTER, et une chaîne STÉRÉO.
Car ils ont une coutume de l'architecture connecté à divers périphériques d'e/S, ils devraient être programmé en C/C++ ou directement en ASM pour de meilleures performances et optimisations..
Ils sont entièrement personnalisé donc je ne pense pas qu'il existe d'autres approches du problème, pense également qu'ils ont à utiliser vraiment faible énergie (et doit être rechargée par le soleil), de sorte qu'ils ont tendance à ne l'ont pas du matériel puissant et doit être VRAIMENT optimisé (c'est pourquoi l'ASM est la voie). Vous ne devriez pas perdre un seul cycle CPU!
Enfin le genre de périphériques connectés à un satellite sont vraiment rare je pense donc qu'il est difficile d'utiliser toute sorte de norme API pour l'interface (comme RS232 ou ainsi de suite), je pense qu'ils sont différents pour chaque cas.
Je ne suis moi-même surprise de trouver beaucoup de vieux jetons comme Z80s fait le sale boulot sur un satellite, juste parce qu'ils sont suffisamment puissants pour faire des tâches simples, bien que leur 8bit bus!
C, C++ et Ada sont mentionnés ici (oui, les auteurs ne peuvent pas tirer profit "Ada"). Le code C peut être écrit à la main ou générés à partir de Scade.
Outre les possibilités qui ont déjà été mentionnés, à moins un vaisseau spatial a été contrôlé par un logiciel écrit en Lisp pour une partie de son vol.
Je peux vous dire que la Mars Rover avait au moins certains de code C++ (Lien PDF); Ils ont utilisé Rogue Wave Outils.h++ de la bibliothèque.
La plupart des langues opérationnelles utilisées à la NASA et Lockheed centre autour de statistique et de calcul. Ce qui veut dire que MATLAB, haskell, Erlang, et scala. MATLAB et Erlang étant la plus grande qui a été demandé pour l'approvisionnement.
Tout le matériel fin des choses va être centré autour de l'Assemblée, C et Verilog.
La NASA utilise de nombreuses langues et il varie sur la base de ses utilisations et où il est utilisé. Les programmes écrits pour certains calculs et pour certains scripts sont écrits en utilisant principalement python. Les programmes pour les instruments au sol et de contrôle au sol sont écrits à l'aide de C, C++, Ada, etc. La critique des programmes écrits pour le conseil sur les instruments et le matériel sont pour la plupart en Langage d'Assemblage, car il donne le plus de contrôle sur le matériel et quelques vieux langues sont également utilisées comme beaucoup de matériel sur le satellite sont d'anciennes technologies(Cela ne veut pas dire qu'ils sont datés cause certaines fonctions sont impossible à faire sans eux) et d'autres langues comme MatLab, Visual Basic est également utilisé pour les calculs scientifiques.
Comme avec tout autre logiciel de l'entreprise, la langue utilisée pour exécuter une fonction dans un satellite sera la langue la plus appropriée étant donné les différentes activités et les pilotes en effet.
Vous trouverez des exemples de différentes langues utilisées dans l'aéronautique, si vous regardez autour de vous. Compte tenu de votre question, vous souhaitez probablement un coup d'oeil à Ada, qui est souvent désigné comme étant utilisé dans les systèmes temps-réel", un article de nouvelles, de sorte que l'effet est ici, certains non-défense utilisateurs sont répertoriés ici.