Portabilité de code Intel vers Power PC

Résolu
zanrek Messages postés 25 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 26 septembre 2009 - 12 févr. 2008 à 09:50
zanrek Messages postés 25 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 26 septembre 2009 - 13 févr. 2008 à 10:10
Bonjour,

Je suis actuellement en train de développer une application en C sur un processeur Intel (P4) via Visual studio. Cette application traite notamment des champs de bits.
Cependant, ce code est voué à être compilé et éxécuté plus tard aussi bien sur une machine Intel que Power PC. Or je sais que Power PC (étant basé sur une archi Motorola) ne dispose pas ses bits dans le même ordre que sur Intel (des histoires de MSB et LSB).

Y a t-il un moyen dans le code d'éxecuter telle partie du code si on est sur intel, et telle autre partie si on est sur Power PC?

J'avais pensé remplis un champ de bit témoin, et en le lisant ensuite, déterminer selon l'ordre dans lequel on récupère les bits, déterminer si on est Inter ou Motorola....

5 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
12 févr. 2008 à 10:01
Il faudrait deja savoir sur quel type de compilateur tu vas travailler sous Mac.
Si les performances ne sont pas obligatoire, le plus simple est d'utiliser un toolkit genre Qt, qui gère normalement ce genre de problème.

Shell
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
12 févr. 2008 à 11:07
A ce moment la je ne vois pas d'autre solution que de créer deux programme avec des décalages de bits en rapport avec le processeur utilisé.

Sinon essaye de voir s'il existe des compilateurs qui savent compiler pour processeur intel et pour processeur Mac en leur spécifiant des options. MinGW est de mémoire capable de faire cela mais c'est à confirmer.

Shell
3
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 févr. 2008 à 20:20
tes problemes de LSB et MSB s'appel l'endian de la machine
generalement les pc habituel ont une archi Little Endian mais certaine machine comme parfois les sun sont en BigEndian tu peux le verifier dans ton programme en regardant avec des test avec des int de ce genre : 0x00FF pour voir dans quel ordre sont place les bits et adapter si besoin

note c'est important dans l4imagerie pour le code des couleurs et je crois dans le son ^^

bonne chance (pas besoin de faire plusieur version)

pour plus de precision je t'encourage a faire des recherches sur l'endian

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
3
zanrek Messages postés 25 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 26 septembre 2009
12 févr. 2008 à 10:15
En fait ce n'est pas pour faire tourner à proprement parler sur un mac mais sur une archi Power PC en général (en gros du code C pas forcément fait pour mac OS).

Apres niveau performance, il faut surtout que le code soit tres stable plutôt que très rapide...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zanrek Messages postés 25 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 26 septembre 2009
13 févr. 2008 à 10:10
Merci pour cette réponse!

Je vais approfondir dans cette voie.
0
Rejoignez-nous