pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip



  1. #1
    luc_1049

    pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip


    ------

    Bonjour

    Je parcourais le document du compilateur XC8 et celle de l'assembleur, linker et j'ai vu ces qualificateurs.

    Mais google ne m'a pas donné davantage concernant XDATA et YDATA dans la famille microchip.

    Les utilisez vous des fois , même si je comprends bien que c'est une subtilité du compilateiur XC8, avec la notion de compatibilité CCI similaire dans le principe à la compatibilité C ANSI.

    FAR d'après ce que j'ai vu permet d'atteindre de la mémoire lointaine sans doute avec une mémoire externe comme le permet le 18f4550 en boîtier dil .

    NEAR serait implicite par contre lui.
    PERSISTENT permettrait d'éviter l'initialisation d'une variable par le startup comme le ferait la déclaration de la variable dans la section correspondante dans le linker.

    BANK je ne vois pas l'utilité au niveau du C à moins que ce soit pour forcer des données dans une même bank pour optimiser le code généré évitant les changements de bank ?

    J'ai bien vu une option dans XC8 qui permet d'ignorer ces qualificateurs et je sais qu'il faut faire du code portable mais par curiosité quand utilisez vous ces qualificateurs en langage C.

    Concernant le makefile je ne vois pas trop l'utilité puique l'on peut mettre les options du linker sous MPLAB X IDE 2.0 .
    Est ce pour transférer les options vers un autre projet linké via une commande en ligne ?

    Est ce pour dire à XC8 comment il doit effectuer la compilation de tous les sources du projet afin de tenir compte de la dépendance des sources et de ceux qui sont à jour ou ne doivent pas être re-compilés ? Autrement dit utile que pour de très gros projets pour limiter le temps de compilation ?
    Est ce pour faire de la gestion de configuration ?

    cdlt

    -----

  2. #2
    luc_1049

    Re : pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip

    Bonjour

    up

    D'avance merci

    cdlt

  3. #3
    RISC

    Re : pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip

    Salut,
    Citation Envoyé par luc_1049 Voir le message
    Les utilisez vous des fois , même si je comprends bien que c'est une subtilité du compilateiur XC8, avec la notion de compatibilité CCI similaire dans le principe à la compatibilité C ANSI.
    L'idée de CCI est de faciliter leportage des projets d'une architecture à l'autre PIC 8bits <==> PIC 16bits <==>PIC 32bits en augmentant la compatiblité des commandes spécifiques comme #pragma....
    Par exemple tous les compilateurs XC accepte maintenant : #include <xc.h>
    Ce fichier header multi-niveaux gère plus de 1000 PICs. C'est le seul à connaitre quelque soit le compilateur (XC8/16/32)
    Les définitions des bits de configuration ont été harmonisées. Tous les compilateurs utilisent #pragma config XXX=yyy,
    Les champs de bits sont tous déclarés de la même manière,...

    FAR d'après ce que j'ai vu permet d'atteindre de la mémoire lointaine sans doute avec une mémoire externe comme le permet le 18f4550 en boîtier dil .NEAR serait implicite par contre lui.
    La notion de FAR et NEAR est lié aux banques en RAM et permet de forcer les variables dans la zone commune qui ne nécessite pas de changement de banque. NEAR est souhaitable pour les variables globales (c'est par défaut ce que fait le compilateur).

    PERSISTENT permettrait d'éviter l'initialisation d'une variable par le startup comme le ferait la déclaration de la variable dans la section correspondante dans le linker.
    exact. La variable "survivra" au reset et permettra par exemple une analyse post-mortem du système

    BANK je ne vois pas l'utilité au niveau du C à moins que ce soit pour forcer des données dans une même bank pour optimiser le code généré évitant les changements de bank ?
    Oui, cela est spécifique à l'architecture des PICs 8 bits et permet de minimiser les changements de banques quand plusieurs variables interdépendent les unes des autres. Cela réduit donc la taille du code et accélère le traitement.

    J'ai bien vu une option dans XC8 qui permet d'ignorer ces qualificateurs et je sais qu'il faut faire du code portable mais par curiosité quand utilisez vous ces qualificateurs en langage C.
    Ces qualificateurs sont utiles pour optimiser la mémoire Flash et réduire le temps de traitement (si c'est nécessaire).

    Concernant le makefile je ne vois pas trop l'utilité puique l'on peut mettre les options du linker sous MPLAB X IDE 2.0 .
    Est ce pour transférer les options vers un autre projet linké via une commande en ligne ?
    On ne peut pas tout faire avec les options en ligne. Le fichier make peut être très complexe dans le cas ou on compile de multiples configurations

    Est ce pour dire à XC8 comment il doit effectuer la compilation de tous les sources du projet afin de tenir compte de la dépendance des sources et de ceux qui sont à jour ou ne doivent pas être re-compilés ? Autrement dit utile que pour de très gros projets pour limiter le temps de compilation ?
    Est ce pour faire de la gestion de configuration ?
    Le make a d'autre avantages : par exemple si tu veux invoquer une moulinette avant et/ou après la compilation

    a+

  4. #4
    luc_1049

    Re : pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip

    Bonsoir

    Merci pour ces réponses , mais je me permets de revenir sur quelques points :

    Pour XDATA et YDATA qu'en est il vous ne vous êtes pas prononcé ?

    Concernant le makefile pouvez donc donner quelques principes des moulinettes, j'ai les idées suivantes mais vous en avez sans doute d'autres ?
    - génération de logiciel différent minimaliste n'intégrant pas toutes les fonctionnalités pour une version d'évaluation bridée,
    - nettoyage des répertoires en supprimant des fichiers intermédiaires générés par MPLAB X ,
    - intégration de numéro de version automatique dans le fichier exécutable,
    - intégration de copyright si ce n'est pas mis dans le logiciel en constante,
    - calcul de checksum et intégration dans l'executable,
    - chiffrement d'une partie de l'exécutable pour de la confidentialité,
    - gestion du mapping de l'executable s'il y a un bootloader, ou dans d'autres cas plus complexes,
    - archivage des executables dans des répertoires dédiés aux logiciel livrés et mis en versionnage.

    cdlt
    Dernière modification par luc_1049 ; 14/03/2014 à 01h18.

  5. A voir en vidéo sur Futura
  6. #5
    RISC

    Re : pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip

    Salut,

    XDATA / YDATA
    La documentation du compilateur XC8 est claire :
    "Exactly what constitutes X and Y memory is dependent on the target device, but it is typically memory that can be accessed independently on separate buses."
    "Such memory is often required for some DSP instructions."
    "The 16-bit compilers have used the xmemory and ymemory space attribute with variables."

    Ces notions n'existent pas pour les 8 bits.

    "Moulinettes"
    C'est un terme générique utilisé par les programmeurs pour désigner des petits utilitaires que l'on développe pour manipuler . convertir des données de façon automatisée.
    A la base la make peut tout simplement invoquer des programmes externes qui peuvent faire ce que l'on souhaite.
    Je ne suis pas un specialiste des make mais tu pourras trouver facilement sur internet des sites / forums qui parlent des possibilités des make.

    a+

  7. #6
    luc_1049

    Re : pic 18f4550 xdata, ydata, far, near, persistent, bank, link, makefile sur xc8 microchip

    Bonjour

    Ok merci, tous les points sont quasi claires

    cdlt

Discussions similaires

  1. makefile et fichier .lcf
    Par invitefa15af9f dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 16/02/2013, 00h23
  2. Renault, R-link et son "R-link store"
    Par yoda1234 dans le forum Actualités
    Réponses: 3
    Dernier message: 25/12/2011, 11h29
  3. Réponses: 24
    Dernier message: 03/05/2011, 11h14
  4. Bank 0 1 2 PIC 16f76 langage C
    Par invite648510a5 dans le forum Électronique
    Réponses: 16
    Dernier message: 13/12/2009, 00h42
  5. Dogger Bank
    Par invitec6c3cd09 dans le forum Géologie et Catastrophes naturelles
    Réponses: 3
    Dernier message: 05/12/2006, 22h04
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...