Microchip C18 : Position LONG en RAM, Comment le compilateur décide ?
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Microchip C18 : Position LONG en RAM, Comment le compilateur décide ?



  1. #1
    Reyrey

    Exclamation Microchip C18 : Position LONG en RAM, Comment le compilateur décide ?


    ------

    Bonjour à tous,
    J'ai un petit souci à vous soumettre si vous le permettez .
    Mon soft, sous C18, possède plusieurs structures et variables en tout genre (char, int et long).
    Suite à certains bug, j'ai découvert que lorsque des unsigned long seul ou sous structure ce trouvaient placés par le compilateur en fin de ligne RAM, cad en adresse 0x1fe par exemple pour un long, et bien le long en question était mal géré au point de voir que dans mon programme (unsigned long)VAR>240 était faux alors que VAR= 386 ?!

    Le point commun à tous mes problèmes semble être le placement des long, par le compilateur, entre deux lignes d'adresses RAM, par exemple VAR stocké en 0x01fe:1ff:200:201, pose problème.

    Si je fait en sorte de déplacer ma variable dans l'ensemble de mes déclarations et que celle-ci ce retrouve stockée sur une ligne RAM unique, tout fonctionne à merveille.
    Toutefois, vu le nombre de déclaration de variables que j'ai, je me vois mal bidouiller l'ordre des déclarations de mes variables, surtout qu'à la moindre modification dans quelques mois/années de mon soft j'aurai probablement oublié ce défaut et rebelote pour les bugs de fonctionnement.
    Je n'ose pas croire que je suis le seul dans cette situation et j'espère que certains d'entre vous aurons une solution à ce problème....
    J'espère avoir été assez clair ?
    Merci de votre aide.
    Bonne soirée.

    -----

  2. #2
    luc_1049

    Re : Microchip C18 : Position LONG en RAM, Comment le compilateur décide ?

    Bonsoir

    Cherchez du coté des directives d'alignement ou des structures packed...
    A voir le lien suivant voire d'autres
    http://www.microchip.com/forums/m608185.aspx
    cdlt

  3. #3
    RISC

    Re : Microchip C18 : Position LONG en RAM, Comment le compilateur décide ?

    Salut,

    Je ne pense pas du tout que le problème vienne du C18 qui est un vieux compilateur que j'utilise régulièrement sans problèmes particuliers ;=)
    Quelle version utlises-tu ?
    La dernière version est la version v3.45 dont tu peux charger la version gratuite ici.

    Poste un tout petit morceau de code qui montre ce que tu veux faire

    a+

Discussions similaires

  1. Problème d'interruption compilateur C18
    Par petitnul12 dans le forum Électronique
    Réponses: 12
    Dernier message: 29/05/2012, 07h21
  2. [C / Compilateur C30 Microchip] - Utilisation des données de types "unsigned long"
    Par jorg1n dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 28/11/2011, 14h18
  3. Compilateur C18 sprintf
    Par invitef4b539ee dans le forum Électronique
    Réponses: 6
    Dernier message: 11/06/2011, 14h02
  4. Programmation de microchip 18f452 par compilateur C18
    Par invitec396942c dans le forum Électronique
    Réponses: 0
    Dernier message: 03/11/2010, 19h56
  5. Compilateur C18 et lib LCD !!
    Par kronanberg dans le forum Électronique
    Réponses: 24
    Dernier message: 22/05/2010, 15h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.