Au cœur de NI Linux Real-Time

Aperçu

Le module NI LabVIEW Real-Time prend en charge le système d’exploitation NI Linux Real-Time, disponible sur certains matériels NI. Dans cet article, découvrez les nouvelles fonctionnalités spécifiques et les sujets avancés pour tirer le meilleur parti de NI Linux Real-Time pour votre application.

Contenu

Support de l’interpréteur de commande (Shell) Linux

Le système d’exploitation NI Linux Real-Time offre le support de l’interpréteur de commande Linux, ce qui permet à l’utilisateur d’accomplir des tâches administratives complexes pour faciliter la gestion des cibles temps réel. Un terminal client est indispensable pour accéder à l’interpréteur de commande. Si vous utilisez Windows 7 ou une version ultérieure, PuTTY est un client gratuit largement utilisé et disponible sur le site PuTTY : Un client Telnet/SSH gratuit.

Par ailleurs, il est indispensable de sélectionner l’option « Enable Secure Shell Server (sshd) » sur la cible temps réel sous le système d’exploitation NI Linux Real-Time. Vous pouvez utiliser soit NI Measurement & Automation Explorer (MAX), soit l’interface Surveillance et configuration Web NI (voir les figures 1 et 2). Pour des raisons de sécurité, il est vivement recommandé de modifier le mot de passe par défaut sur le compte administrateur. Pour ce faire, il est possible d’utiliser l’interface Surveillance et configuration Web. Pour vous connecter à l’interpréteur de commande Linux via SSH, vous pouvez utiliser le nom d’utilisateur admin avec le mot de passe que vous avez configuré pour obtenir l’accès à la racine – le champ du mot de passe est vide s’il n’a pas été configuré. Il est possible d’ajouter d’autres utilisateurs par le biais de l’interface Surveillance et configuration Web. Ces utilisateurs pourront également se connecter via SSH, mais ne disposeront pas de l’accès à la racine.

Figure 1. L’option Enable Secure Shell Server (sshd) se trouve sur l’onglet de configuration du système pour la cible temps réel dans Measurement & Automation Explorer. Il est nécessaire de sélectionner cette option avant d’accéder à la cible temps réel exécutant NI Linux Real-Time.

 

Figure 2. L’option Enable Secure Shell Server (sshd) se trouve également via l’interface Surveillance et configuration Web pour la cible temps réel. Il est nécessaire de sélectionner cette option avant d’accéder à la cible temps réel exécutant NI Linux Real-Time.

 

Transfert de fichiers et chemins de fichiers

Depuis LabVIEW 2013, toutes les cibles NI temps réel supportent le transfert de fichiers WebDAV. WebDAV est une extension du protocole HTTP couramment employée dans l’industrie. Il est utilisé par des applications largement répandues telles que Dropbox, et il est facile de le sécuriser pour transférer des fichiers contenant des informations sensibles. WebDAV est le mécanisme de transfert de fichiers par défaut des cibles temps réel sous NI Linux Real-Time. Pour en savoir plus, rendez-vous sur la page Utiliser WebDAV pour transférer des fichiers sur votre cible temps réel.

Contrairement aux anciens matériels basés sur VxWorks et Phar Lap, les cibles NI Linux Real-Time n’ont pas de serveur FTP installé par défaut. Si vous avez besoin d’un support FTP pour assurer la rétrocompatibilité des applications, il est possible d’installer un serveur FTP non sécurisé hérité via MAX. Pour en savoir plus sur le support FTP pour NI Linux Real-Time, consultez Comment utiliser FTP avec ma cible NI Linux Real-Time. Les cibles NI Linux Real-Time prennent également en charge la fonctionnalité SFTP via SSH, au cas où WebDAV ne serait pas adapté à une application donnée.

Par ailleurs, NI Linux Real-Time introduit un certain nombre de différences importantes par rapport aux cibles temps réel existantes et à Windows. Pour éviter toute erreur de chemins de fichier lors de la migration du code ou de la gestion des enregistrements de données sur une cible qui supporte le nouveau système d’exploitation temps réel (RTOS) basé sur Linux, reportez-vous à ce document.

 

Accès au système par programmation

Le module LabVIEW Real-Time supporte le VI Commande système sur les cibles NI Linux Real-Time. Ce VI donne accès à la ligne de commande Linux, ce qui permet de gérer le système d’exploitation NI Linux Real-Time par programmation et d’interagir avec les autres programmes en cours d’exécution sur la cible directement depuis l’application LabVIEW Real-Time.

Outre le VI Commande système, la fonction Appeler une fonction d’une DLL est également supportée par les cibles NI Linux Real-Time. La fonction Appeler une fonction d’une DLL facilite l’intégration du code C/C++ avec l’application LabVIEW Real-Time et permet de créer des conteneurs LabVIEW pour n’importe quelles API C fournies par d’autres programmes installés et s’exécutant sur une cible NI Linux Real-Time.

Figure 3. Le VI Commande système et la fonction Appeler une fonction d’une DLL sont supportés par les cibles NI Linux Real-Time. Depuis l’application LabVIEW Real-Time, il est possible d’interagir de façon transparente aussi bien avec le système d’exploitation NI Linux Real-Time qu’avec d’autres programmes.

 

Accès à l’écosystème Linux

Les cibles sous NI Linux Real-Time peuvent grandement profiter du vaste écosystème d’IP disponible pour Linux. Pour installer, gérer et utiliser cet écosystème, vous pouvez vous appuyer sur OPKG, le gestionnaire de paquets offert par NI Linux Real-Time. Pour en savoir plus, rendez-vous sur OPKG Package Manager.

En plus de faciliter l’intégration du code C/C++ avec le VI Commande système et la fonction Appeler une fonction d’une DLL, les cibles NI Linux Real-Time vous permettent d’utiliser du code provenant de l’écosystème Linux, de réutiliser du code développé en interne et de développer, déployer et déboguer du code C/C++ avec un outil basé sur Eclipse. Pour en savoir plus sur les outils de développement C/C++ pour NI Linux Real-Time, Édition Eclipse, consultez Construction d’applications C/C++ pour NI Linux Real-Time.

Accédez au téléchargement hors ligne de Linux Real-Time pour obtenir le support des drivers pour votre système Linux.

 En savoir plus sur le Support matériel PXI du système d’exploitation NI Linux Real-Time.

Performances temps réel avancées

Le nouveau NI Linux Real-Time utilise un ordonnanceur temps réel semblable à celui qui se trouve sur les cibles temps réel actuelles pour gérer l’ordonnancement du code critique en termes de temps, et un ordonnanceur complètement équitable (CFS) pour gérer l’ordonnancement du code non critique. Actuellement, les cibles temps réel dotées de systèmes d’exploitation temps réel dédiés s’appuient exclusivement sur un ordonnanceur temps réel pour gérer à la fois les tâches critiques et les tâches système moins prioritaires. Le CFS dans NI Linux Real-Time offre des performances améliorées puisque les tâches moins prioritaires sont plus efficacement ordonnancées. Pour en savoir plus sur le CFS, consultez Exploration de l’ordonnanceur complètement équitable (CFS) Linux 2.6.

Outre les améliorations apportées à l’ordonnanceur, il est également important de noter les changements apportés au niveau du support multicœur sous NI Linux Real-Time, puisque tous les matériels embarqués NI qui supportent ce nouveau système d’exploitation temps réel sont multicœurs. Il est particulièrement important de suivre les bonnes pratiques de programmation et d’éviter d’exécuter une boucle temps critique sur un cœur en utilisant 100 % de son temps processeur. En effet, pour un système multicœur, NI Linux Real-Time a besoin de temps processeur sur chaque cœur afin d’effectuer des opérations de maintenance, sans quoi les performances du système peuvent être sévèrement affectées. Pour éviter cette dégradation des performances, assurez-vous que les boucles critiques allouées au microprocesseur se mettent au repos environ 10 millisecondes toutes les 10 secondes de fonctionnement pour permettre le traitement du temps système.

Il est également important de noter que la dégradation des performances peut se produire aussi bien au niveau des tâches critiques qu’au niveau des tâches système sur les systèmes multicœurs dotés de NI Linux Real-Time si des tâches interdépendantes devant s’exécuter en série sont autorisées à s’exécuter en parallèle sur les cœurs du processeur. Cela est dû à l’incapacité des tâches en série à communiquer lorsqu’elles s’exécutent simultanément sur différents cœurs. Pour éviter une telle dégradation des performances, suivez les bonnes pratiques de programmation LabVIEW Real-Time, qui consistent à partager le code critique et les tâches système entre différents cœurs de processeurs. Pour ce faire, vous devez définir un cœur de processeur pour gérer uniquement les fonctions critiques et spécifier le cœur de processeur à utiliser par n’importe quelle structure de boucle cadencée ou de séquence cadencée, tel qu’illustré à la Figure 4. Pour en savoir plus sur les meilleures pratiques de LabVIEW Real-Time en matière d’optimisation sur des systèmes multicœurs, consultez Configuration des paramètres d’une structure cadencée.

Figure 4. Il existe deux méthodes pour attribuer l’affinité du processeur à l’aide de la structure de boucle cadencée dans LabVIEW Real-Time : (1) définissez le processeur en double-cliquant sur la structure de boucle cadencée pour afficher la boîte de dialogue de configuration ou (2) câblez une valeur directement au nœud à gauche de la structure.

 

Comme cela est recommandé dans le cadre de toutes les mises à jour système, il est préférable de valider à nouveau son application après la migration vers une cible basée NI Linux Real-Time car des améliorations ou des dégradations des performances peuvent survenir au niveau des fonctions individuelles, et peuvent affecter la capacité de l’application à satisfaire toutes les exigences système. Les allocations de mémoire sur les cibles temps réel basées Linux peuvent notamment avoir un impact significatif sur le jitter.

 

Répondre aux exigences en s’appuyant sur un environnement de développement familier

Le support LabVIEW pour le nouveau NI Linux Real-Time offre de nombreux avantages pour répondre aisément et rapidement aux exigences actuelles d’une application embarquée tout en s’appuyant sur l’environnement de développement LabVIEW familier.

Joignez-vous aux discussions sur la communauté NI Linux Real-Time

Linux est la marque déposée de Linus Torvalds aux États-Unis et dans d’autres pays.