[Programmation] compilateur XC32 small data section
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

compilateur XC32 small data section



  1. #1
    fignon

    Question compilateur XC32 small data section


    ------

    Bonjour à tous,
    J'utilise le compilateur XC32 en version gratuite et ma cible est un PIC32MX130F256D.
    J'essaye de compiler mon projet avec un custom linker script pour que je puisse charger le binaire avec mon bootloader.

    Quand je compile, j'obtiens l'erreur suivante :
    c:\program files (x86)\microchip\xc32\v1.40\bin \bin\gcc\pic32mx\4.8.3\..\..\. .\..\bin/xc32-ld.exe: small-data section exceeds 64KB; lower small-data size limit (see option -G)

    Je ne comprend pas vraiment, je n'utilise que 2 variables globales d'un octet chacune et 2 tableaux dont les dimensions sont 8 octets et 2x15 octets.

    Voici mon linker script

    Code:
    /*************************************************************************
     * Processor-specific object file.  Contains SFR definitions.
     *************************************************************************/
    INPUT("processor.o")
    
    /*************************************************************************
     * Processor-specific peripheral libraries are optional
     *************************************************************************/
    OPTIONAL("libmchp_peripheral.a")
    OPTIONAL("libmchp_peripheral_32MX130F256D.a")
    
    /*************************************************************************
     * For interrupt vector handling
     *************************************************************************/
    PROVIDE(_vector_spacing = 0x00000001);
    _ebase_address = 0x9D005000;
    
    /*************************************************************************
     * Memory Address Equates
     * _RESET_ADDR                    -- Reset Vector
     * _BEV_EXCPT_ADDR                -- Boot exception Vector
     * _DBG_EXCPT_ADDR                -- In-circuit Debugging Exception Vector
     * _DBG_CODE_ADDR                 -- In-circuit Debug Executive address
     * _DBG_CODE_SIZE                 -- In-circuit Debug Executive size
     * _GEN_EXCPT_ADDR                -- General Exception Vector
     *************************************************************************/
    _RESET_ADDR                    = 0x9D006000;
    _BEV_EXCPT_ADDR                = 0x9D006380;
    _DBG_EXCPT_ADDR                = 0x9D006400;
    _DBG_CODE_ADDR                 = 0xBFC00490;
    _DBG_CODE_SIZE                 = 0x760;
    _GEN_EXCPT_ADDR                = _ebase_address + 0x180;
    
    /*************************************************************************
     * Memory Regions
     *
     * Memory regions without attributes cannot be used for orphaned sections.
     * Only sections specifically assigned to these regions can be allocated
     * into these regions.
     *
     * The Debug exception vector is located at 0x9FC00480.
     *
     * The config_<address> sections are used to locate the config words at
     * their absolute addresses.
     *************************************************************************/
    MEMORY
    {
      kseg0_program_mem     (rx)  : ORIGIN = 0x9D006000, LENGTH = 0x3F000 - 0x6000
      exception_mem               : ORIGIN = 0x9D005000, LENGTH = 0x1000
      debug_exec_mem              : ORIGIN = 0xBFC00490, LENGTH = 0x760
      kseg0_boot_mem              : ORIGIN = 0x9FC00490, LENGTH = 0x0
      kseg1_boot_mem              : ORIGIN = 0x9FC05000, LENGTH = 0x490
      config3                     : ORIGIN = 0xBFC00BF0, LENGTH = 0x4
      config2                     : ORIGIN = 0xBFC00BF4, LENGTH = 0x4
      config1                     : ORIGIN = 0xBFC00BF8, LENGTH = 0x4
      config0                     : ORIGIN = 0xBFC00BFC, LENGTH = 0x4
      kseg1_data_mem       (w!x)  : ORIGIN = 0xA0000000, LENGTH = 0x4000
      sfrs                        : ORIGIN = 0xBF800000, LENGTH = 0x100000
      configsfrs                  : ORIGIN = 0xBFC00BF0, LENGTH = 0x10
    }
    
    /*************************************************************************
     * Configuration-word sections. Map the config-pragma input sections to
     * absolute-address output sections.
     *************************************************************************/
    SECTIONS
    {
      .config_BFC00BF0 : {
        KEEP(*(.config_BFC00BF0))
      } > config3
      .config_BFC00BF4 : {
        KEEP(*(.config_BFC00BF4))
      } > config2
      .config_BFC00BF8 : {
        KEEP(*(.config_BFC00BF8))
      } > config1
      .config_BFC00BFC : {
        KEEP(*(.config_BFC00BFC))
      } > config0
    }
    J'ai essayé de compiler avec l'option -G4 et -G2 mais cela ne semble pas avoir d'effet.
    Lorsque mon script de link n'est pas utilisé, il n'y a aucune erreur de compile
    Auriez vous une idée ?

    -----

  2. #2
    RISC

    Re : compilateur XC32 small data section

    Salut,
    Regarde la note d'application AN1388 qui concerne un bootloader pour les PIC32.
    Egalement ce lien.
    Cela devrait pouvoir t'aider
    a+
    Dernière modification par RISC ; 22/02/2016 à 11h48.

  3. #3
    fignon

    Re : compilateur XC32 small data section

    J'ai trouvé la solution!!!!
    J'incluais dans mon projet uniquement le script de link custom.
    J'avais oublié d'inclure le script de link par defaut qui appelle le script custom.

Discussions similaires

  1. bon compilateur graphi et bon compilateur pour aplications
    Par Queudal dans le forum Programmation et langages, Algorithmique
    Réponses: 15
    Dernier message: 17/02/2013, 21h47
  2. Réponses: 6
    Dernier message: 12/01/2013, 01h30
  3. [Génétique] Small RNA
    Par invite889948b5 dans le forum Biologie
    Réponses: 0
    Dernier message: 18/11/2011, 10h18
  4. Réponses: 6
    Dernier message: 05/12/2010, 07h11
  5. Réponses: 0
    Dernier message: 04/06/2009, 21h47
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...