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:
- Solaris:
cd /home/kros
gzip -dc kos-*.tar.gz | tar xfv -
- Linux:
rpm --prefix=/opt/kros -ihv kos*.rpm
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:
- ROOT = le répertoire principal de la distribution de Kros
Ex: ROOT = /home/egcs/b-sparc-sun-solaris2-x-m68k-kos
- *_dir = les noms des sous-répertoires
EX:
- src_dir = src/
- asm_dir = asm/
- obj_dir = obj/
- lib_dir = lib/
- bin_dir = bin/
placerait les sources dans ~/khepera/src et les binaires .s28
dans ~/khepera/bin .
- Spécifier le "master makefile" pour la plate-forme désirée:
- include $(ROOT)/Makefile.khe pour la base Khepera.
- include $(ROOT)/Makefile.koa pour le Koala.
- include $(ROOT)/Makefile.331 pour la tourelle d'extension 331.
- include $(ROOT)/Makefile.336 pour la carte 336.
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