Aide - Recherche - Membres - Calendrier
Version complète : Variables globales en PNO
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Fredouille.95
Voici mon problème du jour.

Je commence à piger le fonctionnement des projets en PNO.

Seulement, d'après ce que j'ai déjà vu dans différents sources, il semblerait que les routine PNO n'accèdent jamais à des variabes globales, mais uniquement à celles passé dans le paramètre "void* userData68KP".

Existe-t-il un moyen d'utiliser quand même des globales, et ce pour éviter d'utiliser un pointeur sur une structure qui doit tout contenir, et qu'il faut sans cesse adapter en little- et big-endian ??

J'espère avoir été suffisamment clair icon_cry.gif

Merci icon_biggrin.gif
Xav
Tu veux utiliser des variables globales à ta PNO ou celles du 68k?
Si tu veux utiliser celles du 68k, le plus simple est effectivement de passer par une structure et de la passer en parametre.
Sinon dans la PNO, si tu utilises prc-tools il y a des astuces pour pouvoir avoir des globales (il me semble qu'avec CodeWarior il n'y a pas de probleme...), mais comme il n'est pas toujours util de réinventer la roue, je te conseille de jeter un coup d'oeil à "peal" qui fait ca très bien: http://www.sealiesoftware.com/peal/
Fredouille.95
CITATION(Xav @ 11/05/2006 à 16:38 ) *
Tu veux utiliser des variables globales à ta PNO ou celles du 68k?
Si tu veux utiliser celles du 68k, le plus simple est effectivement de passer par une structure et de la passer en parametre.
Sinon dans la PNO, si tu utilises prc-tools il y a des astuces pour pouvoir avoir des globales (il me semble qu'avec CodeWarior il n'y a pas de probleme...), mais comme il n'est pas toujours util de réinventer la roue, je te conseille de jeter un coup d'oeil à "peal" qui fait ca très bien: http://www.sealiesoftware.com/peal/


Merci, cela me confirme que l'utilisation de variables globales à partir d'un code natif pose des problèmes.
Je vais regarder cette alternative.
Ou faire comme tout le monde, tout passer par structure icon_cry.gif
Xav
Avec Peal il y a des fonctions pour acceder aux variables globales ARM depuis le 68k... M'enfin bon l'interet reste limité...
Après c'est fonction de l'utilisation de ta PNO.. Si c'est sur quelques fonctions pour accelerer un peu, ca doit pas être trop génant de passer quelques informations suplémentaire en parametres...
Sinon, faut voir si tu as réellement un gros interet à utiliser à avoir tes globales à la fois dans le 68k et l'ARM... Est ce que tu ne peux pas tout mettre dans l'ARM?
Fredouille.95
Oui, j'aurais bien aimé tout mettre en ARM.

A ce moment, je code une routine ARM pour allouer et initialiser toutes les variables qui seront utilisées par la routine principale d'émulation ARM. Je code également le pendant pour désallouer. Comme ça, même si la structure est 68K, les variables sont correctement alignés dès le départ.

Cependant, j'ai l'impression d'avoir quand même un problème : Je me demande comment le compilateur aligne les variables 32 bits. Apparemment, pour le ARM, ces variables doivent se trouver à des adresses multiples de 4. Mais pas pour le compilo 68K !!

D'ailleurs, j'ai des écrasements de données... Mais je vais trouver !!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.