Pense-W3ete du LAMI-MANTRA


KrOS

KrOS est le cross-compilateur GNU pour le KOS (Khepera Operating System), le système propriétaire de K-Team. Il permet de générer du code Motorola, télé-chargable en format .s28 pour le Khepera, Koala, tourelle EXT331, et carte EXT336 à partir de sources en C, C++ ou assembleur. (Desolé, pas de Fortran).


  • Comment obtenir le code?:
    Le code de KrOS est disponible sur ftp://lamiftp.epfl.ch/pub/carmona et il est disponible pour Solaris (Sparc) et Linux.
    Il est déjà installé sur le réseau LamiSol. Pour l'utiliser il suffit que vous modifiez dans votre fichier ~/.user_config la variable applic_kros = TRUE . Par la suite vous devrez faire source .login pour mettre à jour cette modification sans devoir vous déloguer.

  • Où trouver la documentation?:
    Pour plus de renseignements vous pouvez consulter en HTML le manuel de l'environnement KrOS et le manuel de GCC. Le manuel de KrOS est aussi disponible en Postscript compressé dans ftp://lamiftp.epfl.ch/pub/carmona/kos.ps.gz (87Kb).

  • Installation: (en dehors de LamiSol)
    Installez KrOS dans un répertoire quelconque (ex: /home/kros, /opt/kros, /soft/kros ) de la façon suivante:


  • Configuration
    Que vous ayez une installation propre ou que vous travaillez sur LamiSol, vous devrez créer une arborescence de travail, par exemple, ~/khepera . Copiez le fichier Makefile de la distribution de KrOS (sur LamiSol c'est /home/egcs/exemples/Makefile) et éditez-le avec les modifications suivantes:


  • Compilation
    Pour avoir accès à la librairie du KOS (Khepera Operating System), jadis connue comme BIOS, il faut ajouter dans les fichiers source:
    #include <sys/kos.h>

    Après avoir édité le fichier Makefile, pour ajouter les dépendances nécessaires, il suffira d'exécuter:
    gmake bin/nomfichier.s28

    Un exemple de dépendance définie dans Makefile serait:

    $(bin_dir)testana2.s28: $(obj_dir)testana2.o $(obj_dir)anavision.o $(obj_dir)khepserprot.o

    Ceci implique que la construction du fichier testana2.s28 (dans le repertoire $bin_dir) depend des fichiers objet testana2.o, anavision.o et khepeserprot.o et le compilateur essayera de générer ces objets à partir des fichiers source correspondants dans l'ordre suivant: .c , .cc, .S , qui correspondent respectivement au code C, C++ et assembleur.

  • Désassemblage
    Pour obtenir l'assembleur genere par la compilation/édition de liens précedente, vous pouvez utiliser le programme m68k-none-kos-objdump. L'option --help vous indiquera quels sont les paramètres à lui passer. Pour desassembler le fichier .s28 vous pouvez ajouter dans votre Makefile:
    
    %.dump: $(bin_dir)%.s28
           m68k-none-kos-objdump -Dxm m68k  $< |less
    
    

    Pour des commentaires et modifications adressez-vous à : Yuri López de Meneses