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.
-----