mardi 29 octobre 2013

VxWorks VxSim Evaluation Tutorial - Fr

VxWorks Simulator ou VxSim est décrit dans le document : Wind River VxWorks Simulator USER’S GUIDE 6.1 (que l'on ne trouve plus sur le net)

Il s'agit du simulateur de board VxWorks également nommé VxWorks Simulator BSP. C'est un logiciel capable de simuler les caractéristiques nécessaires à l'exécution du noyau temps réel VxWorks sur votre machine hôte. A fin d'utiliser ce simulateur, on doit créer une image VxWorks et la charger sur le simulateur.

Caractéristiques supportées par VxSim

Concernant VxWorks

Real Time Processes (RTP) : processus temps réel
Détection d'erreurs et Reporting
ISR Stack Protection (sous Linux et Solaris)
Shared Data Regions
Shared Librairies (sous Windows et Linux)
ROMFS
VxMP (shared-memory object)
VxFusion (distribued message queue)
Wind River System Viewer

Simulation de l'électronique

VxWorks Console
Timer Système
Memory Management Unit - MMU pour tirer parti des RTP (Real Time Processes)
NVRAM (RAM non volatile)
Virtual Disk Support - simulation d'un disque pouvant être utilisé comme système de fichiers VxWorks
TimeStamp Driver
Real-Time Clock

Limitations de la simulation

Le VxWim s'exécute sur la machine hôte, il ne peut donc pas être représentatif d'une exécution sur machine cible (BSP Board Support Package). La simulation ne se faisant pas au niveau instruction machine, on ne peut donc pas développer de driver.

Configurer et construire une image VxWorks

Par défaut, le fichier de configuration, contenu dans le VxWorks Simulator BSP, construit une image complète avec les composants suivants :

le kernel shell  et son interpréteur de commandes en langage C
le Wind River System Viewer
kernel hardening features (such as text segment write protection)
error detection and reporting features
the ROM-based file system (ROMFS)
shared libraries and shared data regions
POSIX support
C++ support
basic memory management support (INCLUDE_MMU_BASIC)
real time process (RTP) support
the network stack 
virtual disk support
non-volatile RAM

Composants optionnels

Pour utiliser les composants optionnels il nous faudra être capcable de construire une nouvelle image.

VxMP
Capacités multiprocesseur, paramètres : INCLUDE_SM_COMMON, INCLUDE_BOOT_LINE_INIT, and INCLUDE_SM_OB.
Par défaut VxMP utilise 8KB de mémoire pour modifier cette caractéristique utiliser SM_MEM_SIZE
Pour modifier la taille du pool de mémoire partagée il faudra utiliser le paramètre : SM_OBJ_MEM_SIZE

Shared Memory END Driver
Pour utiliser cette capacité smEnd il faut paramétrer INCLUDE_SM_NET

Construire votre image VxWorks

Pour le simulateur VxSim BSP ou pour une carte cible électronique c'est le même processus, il consiste dans l'utilisation de VxWorks Makefile Standards. Cette image peut être construite en utilisant soit le compilateur Wind River soit le compilateur Wind River GNU.

Dans Workbench : File->New Project :


VxWorks - New Project


VxWorks - New VxWorks Image Project


VxWorks - MyVxWorksImage Project


MyVxWorksImage - Choix du BSP
Et là, je suis un peu embêté car dans la documentation, on me dit que le Simulateur VxWorks :
Dans Windows s'appelle : simpc
Dans Solaris s'appelle : solaris
Dans Linux : linux

Et je ne vois pas de simpc dans la liste, n'ayant pas de BSP, je verrai cela plus tard ...

To Be Continued

VxWorks - Wind River General Purpose Platform 6.9 - 2

On aura vu l'instabilité de cette plateforme ... sous Virtual PC en tous cas et l'apparition d'une méchante erreur lors de l'exécution de Workbench 3.3.

C'est amusant car dans le premier document qui s'ouvre avec Fedora 13, le Read Me Fisrt, on vous explique comment graver un DVD bootable ??! Mais si ce n'est déjà fait, je ne vois pas comment accéder à ce document.

Acharné, j'ai plusieurs fois lancé l'image ISO de Wind River Plateforme sous Virtual PC, sous Windows 7 ça semble fonctionner et puis j'essaye Oracle Virtual Box sous Windows XP et cela semble bien fonctionner :

Wind River Workbench for VxWorks In Oracle VirtualBox
Voilà enfin mon espace de travail :


Workbench for VxWorks
La Wind River Plateforme a été crée pour tester VxWorks selon trois modes de fonctionnement en utilisant le VxWorks Simulator en :
  • single-processing mode
  • symmetric multiprocessing (SMP) mode
  • et asymmetric multiprocessing (AMP) mode
Il y a trois documents présents sur mon espace de travail :
  • VxWorks VxSim Evaluation User Guide
  • VxWorks SMP Evaluation User Guide
  • VxWorks AMP Evaluation User Guide
To Be Continued

jeudi 24 octobre 2013

VxWorks - Wind River General Purpose Platform 6.9

Une fois que nous avons téléchargé la version d'évaluation de Wind River General Purpose Platform 6.9 Evaluation qui se trouve plus Ici,  que peut-on en faire ? Doit-on forcément créer un DVD bootable pour transformer votre plateforme host en machine Linux ? Peut-on créer une machine virtuelle qui fonctionne avec cette image ISO ?

Maj 08/10/2018 nouveau lien vers le Evaluation Center :
https://www.windriver.com/evaluations/
https://www.windriver.com/evaluations/

Création d'une nouvelle machine virtuelle avec Virtual PC 2007 :

VxWorks - Machine Virtuelle avec Wind River Plateforme
Double clique sur "Nouvel Ordinateur Virtuel" et utiliser le menu "CD" pour capturer l'image ISO : DVD-R168838.1-1-14_1113.iso. Afin que cette nouvelle machine boot sur l'image de Wind River Plateform.

Il n'y a pas de difficulté à proprement parler, la seule chose est que l'on peut croire à de nombreuses reprises que cela ne va pas fonctionner. 

Virtual PC avec Wind River Plateforme Evaluation

Voici donc les écrans que l'on obtient lorsque la machine virtuelle boot sur l'image afin de montrer que cela fonctionne.

D'abord le BIOS détecte les disques puis exécute le boot de l'image : 

Le BIOS de la machine virtuelle démarre et détecte les disques
L'image ISO est détectée par le BIOS et commence à être chargée, à cet instant on voit que c'est un Linux :

L'image ISO est détectée par le BIOS
Si on appuie sur TAB on accède à des options du boot Linux. Le boot se lance automatiquement.

Automatique boot de IsoLinux
Vous pouvez essayer la combinaison des touches Alt-TAB à ce moment et d'autres options apparaissent. Puis quelques insultes mais rien de grave :

Linux
Ensuite, c'est le chargement du système Linux, le fameux Fedora 13 que l'on aura repéré dans la documentation :

Chargement de Fedora 13
Puis c'est à nouveau un peu curieux, on dirait que la machine n'utilise pas la bonne résolution d'écran :

Automatique Boot
On dirait que le système reboot encore plusieurs fois :

Linux Wind River Plateforme Evaluation for VxWorks
Certain des [OK] que nous voyons en vert étaient en rouge, puis après un dernier reboot, vient le lancement du Linux, avec l'affichage du fichier PRODUCT EVALUATION LICENCE AGREEMENT :

Linux de Wind River Plateforme dans la machine virtuelle
En cliquant sur le bouton "Close", on vous demande ensuite d'accepter les termes de la licence :

Linux Licence Wind River Plateforme
Tapez "yes" cliquez sur "Ok", ça y est en on y est enfin :

Wind River Platforme Linux Evaluation for VxWorks

Wind River Plateforme Evaluation for VxWorks

Vous avouerez que ce n'est pas sans mal et qu'il est bon de voir enfin notre machine virtuelle PC avec le Linux correctement exécuté. Mais en cliquant sur Workbench 3.3, c'est à dire l'environnement de développement Eclipse particularisé pour VxWorks :


An error has occured - Execution of Workbench for VxWorks 
Ce n'est pas gagné !!!

To Be Continued
 

Linux Fedora 13 for Wind River Plateform - Qwerty To Azerty Keyboard

Lors de l'utilisation de cette plateforme, vous allez avoir un petit souci de clavier. Comme d'habitude elle est configurée pour fonctionner avec un claviers QWERTY et nous aimerions bien travailler avec un clavier AZERTY étant donnée que notre clavier physique est en AZERTY.

La solution, c'est ici : Ajouter un clavier dans System -> Preferences -> Keyboard :

Fedora 13 Linux - Ajouter un clavier
Onglet Layouts -> Bouton Add... :

Fedora 13 Linux - Ajout du clavier France
Choisissez "France". Et voilà on est sauvé on peut commencer à travailler ...

Noyaux Temps Réel - Généralités

Afin de comprendre le système d'exploitation, le noyau ou RTOS pour Real Time Operating System, il faut apprécier les moyens donnés, par le micro-processeur, au Noyau.

Trois types de moyens :

1 - les IT ou interruptions : programme cours déclenché par le positionnement d'une pinoche externe au processeur.

2 - la mémoire : deux types de mémoires la stack pour changer de contexte empiler les registres et l'adresse de retour d'un sous-programme.

3 - les primitives de commutation de contexte : TST : test and set permet de tester et de setter un bit lors du même cycle d'exécution ainsi on peut par exemple positionner un sémaphore correctement et réaliser des mutex proprement.

L'existence d'un Noyau ou Kernel implique une partition de la mémoire physique en deux régions distinctes, une partie noyau et une partie utilisateur.

Lorsque le noyau peut exécuter plusieurs tâches en parallèle, on dit qu'il est multitâches. Il s'appuie sur les notions de :
- commutation de contexte : certains processeurs fournissent des mécanismes de sauvegarde de contexte en interne ce qui évite la sauvegarde en mémoire vive, plus lente.
- ordonnancement : de deux types, en temps partagé selon un algo, en temps réel pour assurer l'exécution d'une tâche en un temps donné
- temps partagé

Il existe deux approches opposées d'architecture logicielle du noyau, monolithique et/ou micro-noyau mais les deux approches noyau monolithique modulaire et micro-noyaux hybrides se rejoignent quasiment.

VxWorks - Introduction

C'est un système d'exploitation temps réel multitâche utilisé dans les systèmes embarqués. Ce noyau est développé par la firme Wind River acquise par Intel en 2009.

Intel to Acquire Wind River Systems for Approximately $884 Million

Depuis la version 6.0, l'IDE de VxWorks est Workbench, développé par la société Wind River et basé sur l'environnement de développement Eclipse.

Caractéristiques du Noyau VxWorks

Adressage virtuel mais pas de protection mémoire, pas de swap. Il n'existe qu'un seul espace d'adressage dans le système.
Noyau modulaire
Le noyau possède deux interfaces : POSIX 1003[GAL 95] et propriétaire
Disponible pour de très nombreuses architectures (matérielles) BSP (Board Support Package)

Un seul espace d'adressage, corruption possible des données de l'exécutif (tout le monde voit tout).
Donc pour conserver la cohérences des données partagées entre tâches, il faut des mécanismes de synchronisation.

Abstractions de l'exécutif :
  • Tâches.
  • Sémaphores.
  • File de messages et pipes.

Pourquoi un seul espace d'adressage ?

Le contexte des tâches est plus petit (moins d'espace méméoire)
Les appels au services du Noyau se font comme de simples appels de fonctions.
Toutes les tâches applicatives s'exécutent dans le même contexte d'exécution : "superviseurs/privilégiées".
Communication entre tâches sans traverser le Noyau.

Ce sont les contraintes qui correspondent bien aux systèmes embarqués temps réel.

Ordonnacement à priorité fixe préhemptif HPF (Highest Priority First) de 0 à 255
Algorithme de Round-Robin pour les tâches de même priorité

Architecture Logicielle de VxWorks

Le noyau VxWorks est constitué de tâches et de bibliothèques (ou agences) :

Exemple de bibliothèques :
taskLib : Gestion des tâches.
sockLib : Sockets BSD.
ftpLib : Client FTP.

Exemple de tâches systèmes :
tShell : Shell "à la UNIX" pour la cible.
tLogTask : Prise de journal.
tRlogind : Connexion par la commande rlogin sur la cible.

Cibles : RACK VME 68000

Pour aller plus loin :
Frank Singhoff
Bureau C-203
Université de Brest, France
LISyC/EA 3883
singhoff@univ-brest.fr

Evaluation 

La version d'évaluation de Wind River General Purpose Platform 6.9 Evaluation se trouve Ici.

Il s'agit de télécharger une image Iso de la Wind River General Purpose Platform 6.9 et peut-être que l'on arrivera à installer le tout sur une plateforme hôte :

Platform Host OS Support
Microsoft Windows XP Professional with Service Pack 3

Et si on essayait de travailler avec un Simulator ? Il doit bien en exister un car, bon je ne trouve plus la doc  Ici. Ce n'est plus en accès libre.

Mais cette page existe toujours ...