Répondre à la discussion
Affichage des résultats 1 à 25 sur 25

Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50



  1. #1
    Hizaack

    Question Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50


    ------

    Bonjour à tous,

    Je souhaite compiler le projet "USB Device - Mass Storage - SD Card data logger - C18 - PIC18F46J50 PIM".mcp" de Microchip ce situant dans "C:\Microchip Solutions v2010-10-19\USB Device - Mass Storage - SD Card data logger\Mass Storage - Data Logger - Firmware". J'ai besoin de ce projet comme base de départ pour la lecture et l'écriture dans une carte SD. Je n'ai pas modifié le projet, il est tel quel, écrit par Microchip.

    Malheursement, j'ai l'erreur suivante :

    Code:
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mcc18.exe" -p=18F46J50 /i"C:\Program Files\Microchip\mplabc18\v3.37.01\h" -I"C:\Microchip Solutions v2010-10-19\Microchip\Include" "usb_descriptors.c" -fo=".\Objects\USB Device - Mass Storage - SD Card + MDD File System C18\usb_descriptors.o" -mL -Ls
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mcc18.exe" -p=18F46J50 /i"C:\Program Files\Microchip\mplabc18\v3.37.01\h" -I"C:\Microchip Solutions v2010-10-19\Microchip\Include" "main.c" -fo=".\Objects\USB Device - Mass Storage - SD Card + MDD File System C18\main.o" -mL -Ls
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mcc18.exe" -p=18F46J50 /i"C:\Program Files\Microchip\mplabc18\v3.37.01\h" -I"C:\Microchip Solutions v2010-10-19\Microchip\Include" "..\..\Microchip\MDD File System\SD-SPI.c" -fo=".\Objects\USB Device - Mass Storage - SD Card + MDD File System C18\SD-SPI.o" -mL -Ls
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mcc18.exe" -p=18F46J50 /i"C:\Program Files\Microchip\mplabc18\v3.37.01\h" -I"C:\Microchip Solutions v2010-10-19\Microchip\Include" "..\..\Microchip\MDD File System\FSIO.c" -fo=".\Objects\USB Device - Mass Storage - SD Card + MDD File System C18\FSIO.o" -mL -Ls
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mcc18.exe" -p=18F46J50 /i"C:\Program Files\Microchip\mplabc18\v3.37.01\h" -I"C:\Microchip Solutions v2010-10-19\Microchip\Include" "..\..\Microchip\PIC18 salloc\salloc.c" -fo=".\Objects\USB Device - Mass Storage - SD Card + MDD File System C18\salloc.o" -mL -Ls
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mcc18.exe" -p=18F46J50 /i"C:\Program Files\Microchip\mplabc18\v3.37.01\h" -I"C:\Microchip Solutions v2010-10-19\Microchip\Include" "..\..\Microchip\USB\usb_device.c" -fo=".\Objects\USB Device - Mass Storage - SD Card + MDD File System C18\usb_device.o" -mL -Ls
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mcc18.exe" -p=18F46J50 /i"C:\Program Files\Microchip\mplabc18\v3.37.01\h" -I"C:\Microchip Solutions v2010-10-19\Microchip\Include" "..\..\Microchip\USB\MSD Device Driver\usb_function_msd.c" -fo=".\Objects\USB Device - Mass Storage - SD Card + MDD File System C18\usb_function_msd.o" -mL -Ls
    Executing: "C:\Program Files\Microchip\mplabc18\v3.37.01\bin\mplink.exe" /p18F46J50 /l"C:\Program Files\Microchip\mplabc18\v3.37.01\lib" /k"C:\Program Files\Microchip\mplabc18\v3.37.01\lib" "rm18f46j50_g.lkr" "Objects\USB Device - Mass Storage - SD Card + MDD File System C18\usb_descriptors.o" "Objects\USB Device - Mass Storage - SD Card + MDD File System C18\main.o" "Objects\USB Device - Mass Storage - SD Card + MDD File System C18\SD-SPI.o" "Objects\USB Device - Mass Storage - SD Card + MDD File System C18\FSIO.o" "Objects\USB Device - Mass Storage - SD Card + MDD File System C18\salloc.o" "Objects\USB Device - Mass Storage - SD Card + MDD File System C18\usb_device.o" "Objects\USB Device - Mass Storage - SD Card + MDD File System C18\usb_function_msd.o" /u_CRUNTIME /z__MPLAB_BUILD=1 /m"USB Device - Mass Storage - SD Card data logger - C18 - PIC18F46J50 PIM.map" /w /o"USB Device - Mass Storage - SD Card data logger - C18 - PIC18F46J50 PIM.cof"
    MPLINK 4.38, Linker
    Copyright (c) 1998-2010 Microchip Technology Inc.
    Error - section '.code_SD-SPI.o' can not fit the section. Section '.code_SD-SPI.o' length=0x0000193e
    Errors    : 1
    
    Link step failed.
    ----------------------------------------------------------------------
    Release build of project `C:\Microchip Solutions v2010-10-19\USB Device - Mass Storage - SD Card data logger\Mass Storage - Data Logger - Firmware\USB Device - Mass Storage - SD Card data logger - C18 - PIC18F46J50 PIM.mcp' failed.
    Language tool versions: MPASMWIN.exe v5.40, mplink.exe v4.38, mcc18.exe v3.37.01, mplib.exe v4.38
    Tue Apr 26 10:45:08 2011
    ----------------------------------------------------------------------
    BUILD FAILED


    Je suis donc très embeté car je ne comprend pas d'où vient cette erreur. Je pense à un probleme de place mémoire, mais j'ai bien coché les options d'optimisations à "Enable all" en MCC18 (MPLABC18) pour le pic18F46J50.

    Est ce que je me suis trompé quelque part?
    Avez-vous une solution?

    Merci de votre aide.

    -----

  2. Publicité
  3. #2
    Aurélien

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Est ce que Microchip ne fournit pas un fichier linker qui permet de caser ton code dans les différents segments ?
    Sinon il va falloir triffouiller dans le fichier et changer les plages.

  4. #3
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour Aurélien,

    Le fichier linker fournit par Microchip "18f46j50_g.lkr" est deja present dans le dossier et dans le projet associé.

    Je suis bien allé le cherché en ajoutant le chemin "C:\Microchip Solutions v2010-10-19\USB Device - Mass Storage - SD Card data logger\Mass Storage - Data Logger - Firmware" dans Project>Build options>Project, Onglet Directories, Show directories for "LinkerScript Search path".

    J'ai toujours le meme erreur. Et j'ai essayer d'agrandire une databank, par example gpr13.

    Peux etre que j'ai mal fais?
    Aurais-tu un example? Ou une autre idée?
    Le projet fait par Microchip ne devrait-il pas fonctionné par defaut?

    Merci de votre aide.

  5. #4
    Aurélien

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Je ne crois pas que ce soit la section DATA (RAM) qui soit à modifier, mais la section CODE.
    As tu essayé de compiler ton projet en mode RELEASE et pas en mode DEBUG qui necessite plus de ressources) ?

  6. #5
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Je suis déjà en mode release, comme le prouve le résumé de la compilation "Release build of project...". Mais toujours l'erreur en Debug ou en Release.

    Je n'est jamais touché au linker, je vais regarder, mais en commentaire il y a marqué qu'il est modifié pour ajouter le bootloader, donc les 1024 derniers bytes de mémoire sont marqués à "protected". Peut etre est-ce cela?
    Par contre je ne sais pas trop comment le modifier, si c'est cela, pour rendre le projet fonctionnel.

    Code:
    // File: 18f46j50_g.lkr
    // Generic linker script for the PIC18F46J50 processor
    
    // THIS LINKER SCRIPT HAS BEEN MODIFIED...  This version is intended to be used
    // with the "PROGRAMMABLE_WITH_USB_HID_BOOTLOADER" bootloader.  The HID
    // bootloader occupies memory ranges 0x000-0xFFF.  In order for the code generated
    // by this project to work with the bootloader, the linker must not put any code
    // in the 0x00-0xFFF address range.
    
    // This linker script was originated from the 18f87j50.lkr file provided by
    // the MCC18 distribution.
    
    // NOTE: As configured by default the HID bootloader does not erase or attempt to
    // program the last 1024 byte block of program memory (because this flash memory
    // block contains the flash configuration words).
    // Erasing and reprogramming the configuration words is "slightly dangerous" in that
    // it is possible to bootload incorrect configuration bit settings that will
    // prevent both the application and bootloader from working properly (ex: incorrect
    // oscillator configuration settings, which are incompatible with USB operation).
    // The bootloader does allow the user to override this behavior however, and the 
    // last 1024 bytes of program memory (including config words) may be both
    // erased and programmed, if the user is careful.
    
    // However, by default, the last 1024 bytes of program memory are not
    // erased or re-programmed.  Therefore, the last 1024 bytes of program memory
    // have been marked PROTECTED in the linker script, to prevent the linker from
    // "accidentally" placing code in this region.
    
    #DEFINE _CODEEND _DEBUGCODESTART - 1
    #DEFINE _CEND _CODEEND + _DEBUGCODELEN
    #DEFINE _DATAEND _DEBUGDATASTART - 1
    #DEFINE _DEND _DATAEND + _DEBUGDATALEN
    
    LIBPATH .
    
    #IFDEF _CRUNTIME
      #IFDEF _EXTENDEDMODE
        FILES c018i_e.o
        FILES clib_e.lib
        FILES p18f46j50_e.lib
    
      #ELSE
        FILES c018i.o
        FILES clib.lib
        FILES p18f46j50.lib
      #FI
    
    #FI
    
    #IFDEF _DEBUGCODESTART
      CODEPAGE   NAME=bootloader START=0x0            END=0xFFF          PROTECTED		   
      CODEPAGE   NAME=page       START=0x1000         END=_CODEEND
      CODEPAGE   NAME=debug      START=_DEBUGCODESTART   END=_CEND        PROTECTED
    #ELSE
      CODEPAGE   NAME=bootloader START=0x0            END=0xFFF          PROTECTED		   
      CODEPAGE   NAME=page       START=0x1000               END=0xFFF7
    #FI
    
    CODEPAGE   NAME=config     START=0xFFF8            END=0xFFFF         PROTECTED
    CODEPAGE   NAME=devid      START=0x3FFFFE          END=0x3FFFFF       PROTECTED
    
    #IFDEF _EXTENDEDMODE
      DATABANK   NAME=gpre       START=0x0               END=0x5F
    #ELSE
      ACCESSBANK NAME=accessram  START=0x0               END=0x5F
    #FI
    
    DATABANK   NAME=gpr0       START=0x60              END=0xFF
    DATABANK   NAME=gpr1       START=0x100             END=0x1FF
    DATABANK   NAME=gpr2       START=0x200             END=0x2FF
    DATABANK   NAME=gpr3       START=0x300             END=0x3FF
    
    DATABANK   NAME=usb0       START=0x400             END=0x5FF
    DATABANK   NAME=myMSD      START=0x600             END=0x7FF           PROTECTED	
    DATABANK   NAME=dataBuffer START=0x800             END=0x9FF           PROTECTED		
    DATABANK   NAME=FATBuffer  START=0xA00             END=0xBFF           PROTECTED		
    
    DATABANK   NAME=gpr12      START=0xC00             END=0xCFF
    
    #IFDEF _DEBUGDATASTART
      DATABANK   NAME=gpr13      START=0xD00             END=_DATAEND
      DATABANK   NAME=dbgspr     START=_DEBUGDATASTART   END=_DEND           PROTECTED
    #ELSE //no debug
      DATABANK   NAME=gpr13      START=0xD00             END=0xDFF
    #FI
    
    DATABANK   NAME=gpr14      START=0xE00             END=0xEBF
    DATABANK   NAME=sfr14      START=0xEC0             END=0xEFF          PROTECTED
    DATABANK   NAME=sfr15      START=0xF00             END=0xF5F          PROTECTED
    ACCESSBANK NAME=accesssfr  START=0xF60             END=0xFFF          PROTECTED
    
    SECTION    NAME=USB_VARS   RAM=gpr12
    
    #IFDEF _CRUNTIME
      SECTION    NAME=CONFIG     ROM=config
      #IFDEF _DEBUGDATASTART
        STACK SIZE=0x100 RAM=gpr12
      #ELSE
        STACK SIZE=0x100 RAM=gpr13
      #FI
    #FI

  7. A voir en vidéo sur Futura
  8. #6
    simon.

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Tu devrais essayer les forums d'aide de Microchip, ils ont des poilus compétents.

  9. Publicité
  10. #7
    RicounetZap

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour,

    C'est bizarre, je viens d'essayer de compiler ce projet (MPLABX et C18 V.3.37.01) et le projet compile et link correctement.
    Le seul problème que j'ai eu est sur la longueur des noms de fichiers et de dossiers avec MPLABX (Import du projet de base V8).

    Cordialement
    N'importe quoi, for ever :-)

  11. #8
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour,

    Je trouve aussi que c'est bizarre et je ne comprend pas.

    Je suis aussi en discussion avec les ingénieurs de Microchip.

    J'utilise pour ma pars MPLAB_IDE_v8_63 et mplabc18-v3_37_01-lite-installer, télécharger de chez Microchip.
    Peut être que le problème viens du fait de la version LITE qui n'optimise pas assez le code?
    Avez vous la version PRO ou LITE pour avoir compiler avec?
    (Par ailleurs, je sais que c'est une version LITE car je l'ai installé moi même, mais comment le voit-on dans l'interface?)

    Merci de vous intéresser à mon problème.

    Cordialement,

  12. #9
    RicounetZap

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour,

    Je pense que c'est encore la version PRO pour une dizaine de jour, après, elle repasse en version normale.
    Cordialement
    N'importe quoi, for ever :-)

  13. #10
    RISC

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Salut,

    Je viens de faire l'essai de mon coté:

    En mode gratuit (sans license) le compilateur génère la même erreur que toi.

    En mode PRO (avec license), en activant l'optimisation ( Project > Build options > Project > onglet "MPLAB C18" > menu déroulant categories : "optimisation" > choix "enable all"

    Le code se compile alors sans erreur


    Le rapport montre le taux d'utilisation suivant (en optimisé) :
    FLASH : 48173 octets / 65528
    RAM : 2779 octets / 3774

    Si tu as une license, il faut donc utiliser le mode optimisé "enable all".
    Si tu n'as pas de license, il faut télécharger la version d'évaluation qui fonctionne pendant 45 ou 60 jours en mode PRO sur un PC ou le compilateur C18 n'a encore jamais été installé

    a+
    Ma marotte ? les microcontrôleurs ;=)

  14. #11
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour,

    Alors on dirais que c'est bien du à la version LITE/PRO, d’après vos différents essais.
    Tout ce que je peux faire c'est prendre la version PRO, au moins je suis fixé.

    Merci à tous pour votre aide.

  15. #12
    simon.

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Citation Envoyé par RISC Voir le message
    Salut,

    Le rapport montre le taux d'utilisation suivant (en optimisé) :
    FLASH : 48173 octets / 65528
    RAM : 2779 octets / 3774
    Il reste pas mal de place quand même... la version LITE est vraiment LITE, pour le coup.

  16. Publicité
  17. #13
    ftorama

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Du bonheur de travailler avec des composants qui n'ont pas d'outils libres.....ah c'est pas cher les PIC, sauf quand il faut lâcher 500$ (495 pour être précis) dans le compilo

  18. #14
    Aurélien

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Une simple recherche sur google te montrera que les compilos open source GCC existent pour les PIC...Les oeillères fonctionnent toujours aussi bien apparemment..

  19. #15
    DavidDB

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Citation Envoyé par ftorama Voir le message
    Du bonheur de travailler avec des composants qui n'ont pas d'outils libres.....ah c'est pas cher les PIC, sauf quand il faut lâcher 500$ (495 pour être précis) dans le compilo
    Ben non...

    Suffit de choisir la version d'évaluation pro, et cela compile...

    Ensuite, le jour ou la version d'éval est périmée, désinstallation du compilo proprement et réinstallation du compilo. On est repartit pour 60jours...

    Rien de bien contraignant pour un amateur en programmation.

    Ce ne sont pas des outils libres, mais cela fonctionne aussi bien!

  20. #16
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour,

    Je me permet de relancer cette discussion pour une erreur similaire.
    C'est pour un 18F4550, en mcc18, et mplab.

    J'utilise fichier pour les systèmes de fichier FSIO.h/.c, SD-SPI.h/.c, Compiler.h, GenericTypeDefs.h, FSDefs.h + le HardwareProfil PicDemFSUSB.h. Et je ne fais rien dans le main.

    J'ai l'erreur suivante à la compilation:

    Error - section 'FATBuffer' can not fit the absolute section. Section 'FATBuffer' start=0x00000a00, length=0x00000200

    Est ce que quelqu'un peut me confirmer que c'est bien un probleme de place mémoire?

    Voila mon main (tres sommaire, c'est juste pour voir si ca compile niveau place ^^)

    Code:
    #include <p18F4550.h>
    #include <stdio.h>
    #include ".\MDD File System\SD-SPI.h"
    #include ".\MDD File System\FSIO.h"
    #include "HardwareProfile - PICDEM FSUSB.h"
    
    void main(void)
    {  
    	
    
    	while(1)
    	{
    		PORTAbits.RA1 = 1;
    
    	}//end while
    	return 0;
    }
    J'utilise MCC18 PRO avec toutes les options d'optimisations activées.
    Ca me parait quand même bizarre que ca ne tienne pas dans la mémoire.
    -Est ce qu'il y a possibilité de voir quel est l'espace mémoire du code compilé, même si la compilation à échouée?
    -Personnellement, je trouve bizarre que ça ne tienne pas dans le 18F4550, alors que j'ai vu des projets pour gérer l'USB (qui demande pas mal de headers aussi) dans un 4550.

    Merci pour votre attention.

  21. #17
    Aurélien

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Ton probleme est différent, car dans ton cas c'est un manque de RAM, ou plutot un probleme de definition des espaces. Surement lié au fait que ton fichier de linker définit des banques trop courtes pour caser ton buffer de 512 octets. Faut modifier les sections de manière à trouver de la place, mais normallement le fichier linker doit être fourni par microchip, car la ce n'est pas une question d'optimisation : vérifies que tu utilises bien leur fichier et non pas le fichier classique de MPLAB.

    Aurélien

  22. #18
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour Aurélien,

    Effectivement, je n'ai pas ajouté de fichier linker, mais intentionnellement.
    Le linker fourni par Microchip serait donc plus optimisé?

    Je reprend ça de suite.

    Merci de ta réponse rapide.

    Cordialement,

  23. Publicité
  24. #19
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    J'ai toujours mon erreur :
    Error - section 'FATBuffer' can not fit the absolute section. Section 'FATBuffer' start=0x00000a00, length=0x00000200

    avec le linker suivant (rm18f4550.lkr):
    Code:
    // Sample linker command file for 18F4550 with Bootloader
    // Rawin Rojvanit, 10/30/2004
    
    LIBPATH .
    
    FILES c018i.o
    FILES clib.lib
    FILES p18f4550.lib
    
    CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
    CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED
    CODEPAGE   NAME=page       START=0x82A          END=0x7FFF
    CODEPAGE   NAME=idlocs     START=0x200000       END=0x200007       PROTECTED
    CODEPAGE   NAME=config     START=0x300000       END=0x30000D       PROTECTED
    CODEPAGE   NAME=devid      START=0x3FFFFE       END=0x3FFFFF       PROTECTED
    CODEPAGE   NAME=eedata     START=0xF00000       END=0xF000FF       PROTECTED
    
    ACCESSBANK NAME=accessram  START=0x0            END=0x5F
    DATABANK   NAME=gpr0       START=0x60           END=0xFF
    
    DATABANK   NAME=gpr1       START=0x100          END=0x1FF
    DATABANK   NAME=gpr2       START=0x200          END=0x2FF
    DATABANK   NAME=gpr3       START=0x300          END=0x3FF
    DATABANK   NAME=usb4       START=0x400          END=0x4FF          PROTECTED
    DATABANK   NAME=usb5       START=0x500          END=0x5FF          PROTECTED
    DATABANK   NAME=usb6       START=0x600          END=0x6FF          PROTECTED
    DATABANK   NAME=usb7       START=0x700          END=0x7FF          PROTECTED
    ACCESSBANK NAME=accesssfr  START=0xF60          END=0xFFF          PROTECTED
    
    SECTION    NAME=CONFIG     ROM=config
    
    STACK SIZE=0x100 RAM=gpr3
    D'apres toi Aurélien, je devrais modifier le linker comme cela:
    //DATABANK NAME=gpr3 START=0x300 END=0x3FF
    //DATABANK NAME=usb4 START=0x400 END=0x4FF

    DATABANK NAME=gpr34 START=0x300 END=0x4FF

    Pour faire 512octets de mémoire, il me faut bien 0x14A adresses?
    Avec Gpr34, j'en est 1FF non?

    Sachant que pour l'instant je n'utilise pas d'usb,je peux virer le 'protected' pour les parties USB non?

    La DATABANK correspond à la RAM ou à la mémoire morte?
    Sino,comment modifier la RAM? Ce sont des questions bêtes mais quand on ne sait pas ^^ (pas beaucoup d'info sur les linker sur le net).


    Merci de votre aide.

  25. #20
    Aurélien

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Tu peux essayer et tu verras...
    Que donne le fichier linker fourni par microchip sur ce projet ?

    Sinon il y a bien des app notes ou des fichiers d'aides pour C18 pour la declaration des tableaux de grande taille. Voir aussi sur les forum microchip !

    Aurélien

  26. #21
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonsoir,

    J'ai compiler avec le linker ci-dessous, mais j'ai toujours l'erreur à cause de la place dans la RAM. Pourtant j'ai bien assez de place dans la banque grp57 non?

    Error - section 'FATBuffer' can not fit the absolute section. Section 'FATBuffer' start=0x00000a00, length=0x00000200

    Code:
    // Sample linker command file for 18F4550 with Bootloader
    // Rawin Rojvanit, 10/30/2004
    
    LIBPATH .
    
    FILES c018i.o
    FILES clib.lib
    FILES p18f4550.lib
    
    CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
    CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED
    CODEPAGE   NAME=page       START=0x82A          END=0x7FFF
    CODEPAGE   NAME=idlocs     START=0x200000       END=0x200007       PROTECTED
    CODEPAGE   NAME=config     START=0x300000       END=0x30000D       PROTECTED
    CODEPAGE   NAME=devid      START=0x3FFFFE       END=0x3FFFFF       PROTECTED
    CODEPAGE   NAME=eedata     START=0xF00000       END=0xF000FF       PROTECTED
    
    ACCESSBANK NAME=accessram  START=0x0            END=0x5F
    DATABANK   NAME=gpr0       START=0x60           END=0xFF
    DATABANK   NAME=gpr1       START=0x100          END=0x1FF
    DATABANK   NAME=gpr2       START=0x200          END=0x2FF
    DATABANK   NAME=gpr3       START=0x300          END=0x3FF
    DATABANK   NAME=gpr4       START=0x400          END=0x4FF          
    //DATABANK   NAME=gpr5       START=0x500          END=0x5FF          
    //DATABANK   NAME=gpr6       START=0x600          END=0x6FF          
    //DATABANK   NAME=gpr7       START=0x700          END=0x7FF    
     DATABANK   NAME=gpr57       START=0x500          END=0x7FF      
    ACCESSBANK NAME=accesssfr  START=0xF60          END=0xFFF          PROTECTED
    
    SECTION    NAME=CONFIG     ROM=config
    
    STACK SIZE=0x2FF RAM=gpr57
    Merci pour votre aide.

  27. #22
    Aurélien

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Il y a une commande particulière à associer avec la declaration de ton buffer qui lui indique dans quelle banque aller. Voir l'aide de C18.

    Aurélien

  28. #23
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Bonjour,

    En suivant vos conseils (je débute quelque peu sur ce niveau là), j'ai modifié mon linker :

    Code:
    // Sample linker command file for 18F4550 with Bootloader
    // Rawin Rojvanit, 10/30/2004
    
    LIBPATH .
    
    FILES c018i.o
    FILES clib.lib
    FILES p18f4550.lib
    
    CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
    CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED
    CODEPAGE   NAME=page       START=0x82A          END=0x7FFF
    CODEPAGE   NAME=idlocs     START=0x200000       END=0x200007       PROTECTED
    CODEPAGE   NAME=config     START=0x300000       END=0x30000D       PROTECTED
    CODEPAGE   NAME=devid      START=0x3FFFFE       END=0x3FFFFF       PROTECTED
    CODEPAGE   NAME=eedata     START=0xF00000       END=0xF000FF       PROTECTED
    
    ACCESSBANK NAME=accessram  START=0x0            END=0x5F
    DATABANK   NAME=gpr0       START=0x60           END=0xFF
    DATABANK   NAME=gpr1       START=0x100          END=0x1FF
    DATABANK   NAME=gpr2       START=0x200          END=0x2FF
    //DATABANK   NAME=gpr3       START=0x300          END=0x3FF
    //DATABANK   NAME=gpr4       START=0x400          END=0x4FF          
    //DATABANK   NAME=gpr5       START=0x500          END=0x5FF          
    //DATABANK   NAME=gpr6       START=0x600          END=0x6FF          
    //DATABANK   NAME=gpr7       START=0x700          END=0x7FF    
     DATABANK   NAME=gpr37       START=0x300          END=0x7FF      
    ACCESSBANK NAME=accesssfr  START=0xF60          END=0xFFF          PROTECTED
    
    SECTION    NAME=CONFIG     ROM=config
    
    STACK SIZE=0x4FF RAM=gpr37

    et les variables qui demandaient plus de place dans FSIO.c :

    Code:
    #ifdef __18CXX
        //#pragma udata dataBuffer = DATA_BUFFER_ADDRESS
        //BYTE gDataBuffer[MEDIA_SECTOR_SIZE];    // The global data sector buffer
        //#pragma udata FATBuffer = FAT_BUFFER_ADDRESS
        //BYTE gFATBuffer[MEDIA_SECTOR_SIZE];     // The global FAT sector buffer
    
    	//#pragma udata dataBuffer = DATA_BUFFER_ADDRESS
        //BYTE gDataBuffer[MEDIA_SECTOR_SIZE];    // The global data sector buffer
    
    	/* DATA BANK GPR57 */
    	#pragma udata gpr37 = 0x0300
    	unsigned char dataBuffer = DATA_BUFFER_ADDRESS; // variable placé dans la banque 6 adresse 0x0300 etc.
    	unsigned char FATBuffer = FAT_BUFFER_ADDRESS; // variable placé dans la banque 6 adresse 0x0500 etc.
    	#pragma udata
    
    	BYTE gDataBuffer[MEDIA_SECTOR_SIZE];    // The global data sector buffer
    	BYTE gFATBuffer[MEDIA_SECTOR_SIZE];     // The global FAT sector buffer
    
    
    #endif
    Cela à l'air de passer, malheureusement je rencontre une autre erreur du même type :
    Error - section '.code_SD-SPI.o' can not fit the section. Section '.code_SD-SPI.o' length=0x00000d94

    Est ce que ça veux dire que mon programme ne tient pas dans la mémoire cette fois ci? Comment puis-je régler cela?

    Merci de m'éclairer.

  29. #24
    Aurélien

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Citation Envoyé par Hizaack Voir le message
    Cela à l'air de passer
    Bizarre, car la declaration des tableaux en eux meme n'est pas faite entre tes pragma..

    Citation Envoyé par Hizaack Voir le message
    malheureusement je rencontre une autre erreur du même type :
    Error - section '.code_SD-SPI.o' can not fit the section. Section '.code_SD-SPI.o' length=0x00000d94

    Est ce que ça veux dire que mon programme ne tient pas dans la mémoire cette fois ci? Comment puis-je régler cela?
    Ben là c'est le premier probleme qui revient !

  30. Publicité
  31. #25
    Hizaack

    Re : Link step failed -Microchip Solution/USB MassStorage/SD Card Data Logger 18F46j50

    Oui, c'est le premier probleme qui revient!

    C'est vraiment impossible de faire de la lecture/écriture sur carte SD avec un système de fichier et un 18F4550?

    La solution serait-elle juste de changer de PIC? ^^
    Le 18F46J50, qui contient 64ko de mémoire contre 32 pour le 4550.

Sur le même thème :

Discussions similaires

  1. USB Microchip.
    Par katmai dans le forum Électronique
    Réponses: 5
    Dernier message: 17/10/2010, 15h42
  2. GPS data logger
    Par jbf64 dans le forum Électronique
    Réponses: 0
    Dernier message: 08/12/2008, 13h23
  3. implantation de data logger
    Par Norkok dans le forum Électronique
    Réponses: 0
    Dernier message: 26/06/2008, 10h30
  4. cms sur usb data+ et data-
    Par loic29ducaillou dans le forum Électronique
    Réponses: 1
    Dernier message: 13/01/2008, 09h45
  5. Branchement data logger
    Par amicorr dans le forum Électronique
    Réponses: 1
    Dernier message: 26/10/2007, 17h59
Découvrez nos comparatifs produits sur l'informatique et les technologies.