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

Mots clés:

Réponses

  • RocouRocou Membre

    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 :

    # Ajoutez le chemin vers les outils à la variable PATH
    PATH := $(PATH):/Users/tablier/Desktop/documation/src
    
    # Chemin vers sdcc
    CC := /Applications/sdcc/bin/sdcc
    
    # Options de compilation pour sdcc
    CFLAGS := -mpic16 \
    --model-large \
    -p18f4550 -Dpic18f4550 \
    -DSDCC_PIC18 \
    -DCONFIG_ENABLE_SERIAL \
    -I../src \
    -Wa -DSDCC
    
    # Chemin vers gpasm
    AS := /opt/local/bin/gpasm
    
    # Options d'assemblage pour gpasm
    ASFLAGS := -q -p18f4550 -Dpic18f4550 \
    -I /usr/local/share/gputils/header \
    -DSDCC
    
    # Chemin vers gplink
    LD := /opt/local/bin/gplink
    
    # Options de liaison pour gplink
    LDFLAGS := -w -r --map -s ../src/18f4550.lkr \
    -I/usr/local/share/sdcc \
    -I/usr/local/share/sdcc/lib/pic16
    
    # Bibliothèques à lier
    LIBS := libdev18f4550.lib libsdcc.lib libc18f.lib
    
    # Règle pour compiler les fichiers source
    %.o: %.c
        $(CC) $(CFLAGS) -c $< -o $@
    
    # Règle pour assembler les fichiers source
    %.o: %.asm
        $(AS) $(ASFLAGS) -c $< -o $@
    
    # Règle pour lier les fichiers objets
    %.hex: %.o
        $(LD) $(LDFLAGS) $^ $(LIBS) -o $@
    
    # Règle par défaut pour construire le fichier hex
    all: your_program.hex
    
    # Nettoyage des fichiers générés
    clean:
        rm -f *.o *.hex
    

    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.

  • tabliertablier Membre
    28 nov. modifié #3

    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.

  • tabliertablier Membre

    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.

  • RocouRocou Membre

    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.

Connectez-vous ou Inscrivez-vous pour répondre.