Bonjour à tous,
L'un(e) d'entre vous est-il parvenu à utiliser la
suite IoT Contiki v3.0 sur Fedora 23 ? Si oui, où est l'astuce ? Après une semaine d'essais infructueux, je me retourne vers le forum dans l'espoir de trouver quelques pistes.
Le problème principal semble venir de l'abandon du développement du compilateur GCC pour le micro-contrôleur MSP430 (package msp430-gcc) au profit d'une toolchain développée conjointement, ô ironie, par Texas Instruments et Red Hat, (package msp430-elf-gcc).
Contiki 3.0 est livré sous l'hypothèse que le compilateur est msp430-gcc. Les versions de ce compilateur présentes dans les versions de Fedora postérieures à la version 20 sont
corrompues. Le fait de travailler avec un compilateur obsolète (dnf install --releasever=20 msp430-gcc) suscite de nouvelles erreurs. En outre, ce n'est pas une solution pérenne.
Lorsque le compilateur msp430-gcc est remplacé par le compilateur msp430-elf-gcc dans le [$CONTIKI_DIR]/cpu/msp430/Makefile.msp430 de Contiki 3.0, des erreurs de librairie apparaissent (<io.h> non trouvé). En élargissant le champ des librairies importables (CC = msp430-elf-gcc -I/usr/msp430/include/), des conflits de type surgissent :
$ make TARGET=sky hello-world
make: msp430-gcc: commande introuvable
CC hello-world.c
In file included from ../../cpu/msp430/./msp430def.h:48:0,
from ../../platform/sky/./platform-conf.h:77,
from ../../platform/sky/./contiki-conf.h:9,
from ../../core/./contiki.h:38,
from hello-world.c:40:
/usr/msp430/include/io.h:1:2: attention : #warning <io.h> is deprecated, please include <msp430.h> [-Wcpp]
#warning <io.h> is deprecated, please include <msp430.h>
^
In file included from /usr/msp430/include/in430.h:4:0,
from /usr/msp430/include/msp430f1611.h:122,
from /usr/msp430/include/msp430.h:146,
from /usr/msp430/include/io.h:2,
from ../../cpu/msp430/./msp430def.h:48,
from ../../platform/sky/./platform-conf.h:77,
from ../../platform/sky/./contiki-conf.h:9,
from ../../core/./contiki.h:38,
from hello-world.c:40:
/usr/msp430/include/intrinsics.h:108:6: attention : conflicting types for built-in function ‘__delay_cycles’
void __delay_cycles (unsigned long int delay);
^
In file included from ../../platform/sky/./contiki-conf.h:9:0,
from ../../core/./contiki.h:38,
from hello-world.c:40:
../../platform/sky/./platform-conf.h:83:23: erreur: conflicting types for ‘off_t’
typedef unsigned long off_t;
^
In file included from /usr/msp430-elf/include/sys/signal.h:11:0,
from /usr/msp430-elf/include/signal.h:5,
from ../../cpu/msp430/./msp430def.h:49,
from ../../platform/sky/./platform-conf.h:77,
from ../../platform/sky/./contiki-conf.h:9,
from ../../core/./contiki.h:38,
from hello-world.c:40:
/usr/msp430-elf/include/sys/types.h:184:16: note: previous declaration of ‘off_t’ was here
typedef _off_t off_t;
^
../../Makefile.include:260: recipe for target 'hello-world.co' failed
make: *** [hello-world.co] Error 1
Merci d'avance pour toute suggestion,
LS