SDCC et gputils
Je ne sais pas ou mettre cette question alors, elle est ici. En 2 mots, je compile pour du Microchip avec MPLABx. Mais mon ami qui est parti en 2015 compilait avec SDCC et gputils sous linux. Tout ce qui me reste de lui ce sont ses sources et le Makefile associé. J'ai SDCC et gputils sur Mac, mais je n'arrive pas à modifier son Makefile pour que ça marche !!!
Comment faut-il modifier ce bidule (Je n'en mets qu'un bout) ? qu'est-ce qui manque ?
PATH := $(PATH):/Users/tablier/Desktop/documation/src
CC := /Applications/sdcc/bin/sdcc
CFLAGS := -mpic16 \
--model-large \
-p18f4550 -Dpic18f4550 \
-DSDCC_PIC18 \
-DCONFIG_ENABLE_SERIAL \
-I../src \
-Wa -DSDCC
AS := /opt/local/bin/gpasm
ASFLAGS := -q -p18f4550 -Dpic18f4550 \
-I /usr/local/share/gputils/header \
-DSDCC
LD := /opt/local/bin/gplink
LDFLAGS := -w -r --map -s ../src/18f4550.lkr \
-I/usr/local/share/sdcc \
-I/usr/local/share/sdcc/lib/pic16
LIBS := libdev18f4550.lib libsdcc.lib libc18f.lib
Réponses
Voici la réponse de "Le Chat Mistral":
Pour adapter le Makefile à votre environnement Mac, vous devez vérifier et ajuster plusieurs éléments, notamment les chemins des outils et les options de compilation. Voici quelques étapes et suggestions pour vous aider à modifier le Makefile :
Vérifiez les chemins des outils : Assurez-vous que les chemins vers sdcc, gpasm, et gplink sont corrects. Vous pouvez utiliser la commande which pour trouver les chemins exacts des outils installés sur votre Mac.
Ajustez les variables d'environnement : Assurez-vous que les variables d'environnement comme PATH sont correctement définies.
Vérifiez les options de compilation : Assurez-vous que les options de compilation (CFLAGS, ASFLAGS, LDFLAGS) sont compatibles avec votre environnement et votre microcontrôleur.
Voici une version modifiée de votre Makefile avec quelques ajustements :
Points à vérifier :
Chemins des outils :
Assurez-vous que /Applications/sdcc/bin/sdcc, /opt/local/bin/gpasm, et /opt/local/bin/gplink sont les chemins corrects vers les outils sur votre Mac.
Utilisez which sdcc, which gpasm, et which gplink pour vérifier les chemins exacts.
Options de compilation :
Les options -mpic16, --model-large, -p18f4550, etc., doivent être compatibles avec votre microcontrôleur et votre environnement de développement.
Bibliothèques :
Assurez-vous que les bibliothèques libdev18f4550.lib, libsdcc.lib, et libc18f.lib sont disponibles dans les répertoires spécifiés.
Fichiers source :
Assurez-vous que les fichiers source (.c et .asm) sont correctement référencés et disponibles dans les répertoires spécifiés.
Exécution :
Pour compiler votre projet, utilisez la commande make dans le répertoire contenant le Makefile. Si tout est correctement configuré, cela devrait générer le fichier .hex pour votre microcontrôleur.
Merci ! la première chose que j'avais faite avais été de changer les chemins pour qu'ils correspondent à la réalité.
Le PATH doit pointer sur les outils , je l'avais mis sur les sources ? Bon, linux ce n'est pas mon truc !
J'y retourne ! je vais faire ce que vous préconisez.
ce qu'on a fait en 2014 est décrit ici. https://www.aconit.org/collection/documation-usb/
Fabien a programmé le PIC et J'ai fait la modification de la machine et le programme sur mac.
J'ai vérifié les chemins. J'ai utilisé make comme indiqué et j'obtiens:
tablier@MACBOOK-MS-2 build % make
Makefile:43: *** missing separator. Stop.
L'erreur "missing separator" dans un Makefile signifie généralement qu'il y a un problème avec l'indentation ou les tabulations. Les commandes dans un Makefile doivent être précédées d'une tabulation (et non d'espaces).
Il faut que les commandes sous les règles (%.o: %.c, %.o: %.asm, %.hex: %.o, all, clean) sont précédées d'une tabulation et non d'espaces.