ID de l'article: 000081636 Type de contenu: Dépannage Dernière révision: 11/09/2012

Pourquoi mon script de linker n’inclut-il pas mon sous-fichier dans la section mémoire cible alors que je n’ai pas de __attribute__ ((section (« .rwdata »)) dans le code ?

Environnement

  • Processeur Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descriptif

    Le linker de l’IDE Nios® II ne met pas automatiquement un sous-fichier dans une mémoire qui n’est pas désignée comme .text.

    Afin d’inclure le sous-fichier dans une section de mémoire spécifique autre que .text (dans cet exemple, .rwdata), procédez comme suit :

    1. Définissez une section personnalisée pour cette routine spécifique, par exemple : my_subroutine non valide __attribute__ ((section (« .usersection »)) ;
    2. Ouvrez le fichier generated.x qui se trouve dans votre dossier _syslib/Débogage/system_description et recherchez le __ram_rwdata_end
    3. Ajoutez les lignes suivantes au fichier.x généré :


    .usersection : AT (LOADADDR (.rwdata) SIZEOF (.rwdata) )

    {
    PROVIDE (_alt_partition_usersection_start = ABSOLUTE (.)) ;
    *(.usersection .usersection.*)
    . = ALIGN (4) ;
    PROVIDE (_alt_partition_usersection_end = ABSOLUTE (.)) ;

    } >onchip_ram

    PROVIDE (__flash_alt_partition_usersection_start = LOADADDR (.usersection)) ;

    1. Modifiez alt_load.c pour effectuer les opérations de copie de section personnalisée. Voir ci-dessous pour référence :

    __flash_alt_partition_usersection_start vide ;
    _alt_partition_usersection_end vide ;
    _alt_partition_usersection_start vide ;

    /*

    * Copiez la section .usersection.

    */
          
    alt_load_section (&__flash_alt_partition_usersection_start,
    &_alt_partition_usersection_start
    &_alt_partition_usersection_end) ;

    Produits associés

    Cet article concerne 1 produits

    Circuits programmables Intel®

    Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.