Index by title

HOWTO recompile RTEMS sources

  1. Télécharger RTEMS sur le site Gaisler.
  2. Télécharger les sources de RTEMS sur le site Gaisler.
  3. Copier les sources dans le répertoire src de RTEMS.

HOWTO configure sparc-rtems-gcc

Télécharger l'archive sparc-rtems-4.10-gcc sur le site de Gaisler (http://www.gaisler.com/anonftp/rcc/bin/linux/)

sparc-rtems-4.10-gcc-4.4.6-1.2.18-linux.tar.bz2

Décompresser l'archive dans le répertoire /opt

Ajouter le path vers le répertoire contenant sparc-rtems-gcc dans le fichier .bash_profile contenu dans le répertoire HOME de l'utilisateur: /opt/rtems-4.10/bin

Quelques étapes complémentaires sont nécessaires pour le bon fonctionnement du compilateur. En effet, les bibliothèques appelées par sparc-rtems-gcc ne sont pas les dernières versions disponibles dans les paquets fedora officiels. Il faut donc procéder:

Il semblerait qu'il ne faille plus installer Qt4, notamment le paquet qt-devel pour que la configuration sparc-rtems-gcc/Qt fonctionne correctement.

Il faut installer la glibc en 32 bits pour que sparc-rtems-fonctionne.

Le dépôt DEV_PLE ayant été cloné, ouvrir le projet fsw-qt.pro et tenter une compilation. Relever les erreurs qui ne manqueront pas de survenir et appliquer selon les besoins les actions suivantes:

libmpfr.so.1 => installer le paquet libmpc en 32 bits
Dans le répertoire /usr/bin, créer les liens suivants:
ln -s libmpfr.so.4 libmpfr.so.1 (réclamé par sparc-rtems-gcc)

libgmp.so.1 => installer le paquet libgmp en 32 bits
Dans le répertoire /usr/bin, créer les liens suivants:
ln -s libgmp.so.10 libgmp.so.3 (réclamé par spar-rtems-gcc)

libz.so.1 => installer le paquet libz en 32 bits (sous Fedora 23, ça suffit à résoudre le problème de dépendance de sparc-rtems)

Une fois tout ceci effectué, la compilation du projet fsw-qt.pro doit fonctionner sans erreur ni warning.


HOWTO GCOV for LFR

L'ensemble des fichiers ci-dessous permet de mettre en oeuvre l'outil de mesure de couverture de code. Le fichier HOWTO est à lire en priorité, il décrit la procédure pour installer et configurer les outils.


HOWTO recompile RTEMS sources

  1. Télécharger RTEMS sur le site Gaisler et installer le compilateur (se référer à HOWTO configure sparc-rtems-gcc)
  2. Télécharger les sources de RTEMS sur le site Gaisler: http://www.gaisler.com/anonftp/rcc/src/, fichier rtems-4.10-1.2.18-src.tar.bz2
  3. Copier les sources dans le répertoire src de RTEMS, qui doit normalement se trouver dans /opt/rtems-4.10/src
  4. Editer le fichier grspw.c situé dans le répertoire /opt/rtems-4.10/src/rtems-4.10/c/src/lib/libbsp/sparc/shared/spw et commenter la ligne grspw_hw_reset(pDev); située dans la fonction grspw_open
  5. se placer dans le répertoire /opt/rtems-4.10/src et exécuter la suite de commandes suivante
  1. make bootstrap
  2. make bootstrap_sparc
  3. make configure-drvmgr
  4. make compile-drvmgr
  5. make install-drvmgr

Les fichiers mis à jour à l'issue de la compilation sont les suivants:
src/build-drvmgr/sparc-rtems/c/leon3/lib/libbsp.a
/opt/rtems-4.10/sparc-rtems/leon3/lib


Leon3/FT fault tolerance

The explanations hereafter are extracted from the Gaisler IP cores user's manual (grip.pdf).
There are two aspects in the fault tolerance: register file protection and cache protection. Each aspect is managed using a specific register: ASI 2 contains a few control registers that have not been assigned as ancillary state registers. These should only be read and written using 32-bit LDA/STA instructions. All cache registers are accessed through load/store operations to the alternate address space (LDA/STA), using ASI = 2. Here are the register addresses:

The ASR16 can be read using the DSU3 IP core, it is located at the following address: 0x90000000 (DSU3) + 0x400040.

Cache Control Register (ASI 2, offset 0x00)

The cache control register located at ASI 0x2, offset 0, and contains control and status registers for the I and D cache.

Default values: Cache control register:

Register protection control register (ASR16, @0x90400040)

ASR register 16 (%asr16) is used to control the IU/FPU register file SEU protection. It is possible to disable the SEU protection by setting the IDI/FDI bits, and to inject errors using the ITE/FTE bits.
Corrected errors in the register file are counted, and available in ICNT and FCNT fields. The counters saturate at their maximum value (7), and should be reset by software after read-out.

Default values: Register protection control register:

*ASI = Address Space Identifier
*ASR = Ancillary State Register


HOWTO configure sparc-rtems-gcc

Description des étapes à suivre pour configurer le compilateur RTEMS permettant de recompiler le logiciel de vol à partir des sources disponibles sur le dépôt suivant:
https://hephaistos.lpp.polytechnique.fr/rhodecode/HG_REPOSITORIES/LPP/INSTRUMENTATION/SOLO_LFR/DEV_PLE

Le dépôt précédent est lié aux dépôts suivants:
https://hephaistos.lpp.polytechnique.fr/rhodecode/HG_REPOSITORIES/LPP/INSTRUMENTATION/USERS/CHUST/LFR_basic-parameters
https://hephaistos.lpp.polytechnique.fr/rhodecode/HG_REPOSITORIES/LPP/INSTRUMENTATION/SOLO_LFR/lfr_common_headers

HOWTO recompile RTEMS sources

Avant de compiler le logiciel de vol LFR pour la première fois sur une machine de développement, il est nécessaire de recompiler RTEMS et surtout le driver SpaceWire fourni par Gaisler après avoir modifié une ligne de code dans la fonction grspw_open du module grspw.c contenu dans les sources. Si cette ligne de code n'est pas supprimée, une erreur est générée côté DPU au démarrage du logiciel de vol LFR (déconnexion/reconnexion du lien SpaceWire).

HOWTO GCOV_for LFR

Leon3FT_fault_tolerance