Compilation croisée Eclipse


Ce mémento permet une prise en main rapide d’Eclipse pour la compilation croisée sur ColdFire.
- Vérifier que le compilateur est bien installé sur le poste (mk68000).
- Créer un répertoire propre au projet sur le disque dur
- Au lancement d’Eclipse, le prendre comme espace de travail. Il vous servira pour tous vos TP
- Sur Eclipse : File/new/projet/C/Standard C Projet
Pour les TP uCLinux, il faudra créer un Makefile pour prendre le compilateur de la carte ColdFire (voir plus loin)
- Sur Eclipse : File/new/source file
Attention à ne pas oublier l’extension .c
- Mettre toujours une nouvelle ligne vide à la fin de vos programmes
- Soit à chaque sauvegarde, il vous compile votre programme, soit vous lancer la compilation.
- Si vous avez enlevé le tftp du makefile, l’exécutable de votre application se trouve dans le répertoire release de votre répertoire du Tp
Erreurs recensées
- Il se peut que la variable d’environnement du Path de recherche du compilateur gcc (soit pour le poste local, soit pour la carte ColdFire) ne soit pas correcte :
- Poste de travail clic droit
- Propriétés/Avancé/Variables d'environnement/Path/Modifier
- C:MinGW_in : pour le compilateur local
- C:Program FilesCodeSourcerySourcery G++_in : Compilateur carte
- Error launching cygpath command
Bug Eclipse : non dérangeant
- ld cannot open output file:nomDuProjet permission denied
Votre programme tourne en arrière plan, il faut le supprimer (exemple : boucle infinie)
Exemple de Makefile
# Nom de l’executable à générer :
EXEC = TP0
# Adresse IP de la carte uClinux cible :
IP_CARTE = 10.15.255.9
#Compilateur utilisé
CC = m68k-uClinux-gcc
#Option de compilation
FLAGS_1 = -D_REENTRANT -DCONFIG_CLOCK_48MHz
FLAGS_2 = -lc -m5307 -lgcc -lpthread
#Sources devant être compilées (extension .c)
CPP_SOURCES := $(wildcard *.c)
#Compilation
$(EXEC): $(CPP_SOURCES)$(CC) $(FLAGS_1) $(CPP_SOURCES) -o $(EXEC) $(FLAGS_2)
#Téléchargement par tftp sur la carte ColdFire
tftp -i $(IP_CARTE) PUT $(EXEC) /tmp/$(EXEC)
#Effacement sur le PC des fichiers exécutables et temporaires
all: $(EXEC)
clean:
del *.gdb
del $(EXEC)

