big et litle endian

big et litle endian - C - Programmation

Marsh Posté le 13-07-2006 à 17:09:15    

Bonjour
Je travaille en compilation croisé,j'envoie des données depuis l'espace utilisateur vers des modules noyaux mais à l'arrivée je ne trouve pas les mêmes données.En fait j'ai un problème de big/litle-endian car je compile mon programme avec un x86 et ma cible est un powerpc.   Si quelqu'un peut m'aider.  
merci

Reply

Marsh Posté le 13-07-2006 à 17:09:15   

Reply

Marsh Posté le 13-07-2006 à 17:31:54    

cross compile

Reply

Marsh Posté le 13-07-2006 à 17:41:57    

ham222 a écrit :

Je travaille en compilation croisé,j'envoie des données depuis l'espace utilisateur vers des modules noyaux mais à l'arrivée je ne trouve pas les mêmes données.En fait j'ai un problème de big/litle-endian car je compile mon programme avec un x86 et ma cible est un powerpc.  


Le format des données transférées doit être indépendant du format interne des machines. Tu passes par des sockets ? Si c'est le cas, le format 'ligne' (ou réseau) est MSB en tête.
 
Explique plus en détails ce que tu veux faire, parce que je sens comme un gros mic-mac...


Message édité par Emmanuel Delahaye le 13-07-2006 à 17:42:14

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 13-07-2006 à 17:55:04    

En réalité mon projet est composé d'un client (sur un x86) et d'un serveur(sur un powerQuicc3). Le serveur est compilé sur un x86 pour powerpc, dans un premier temps j'essaie de travailler que sur le serveur.  je dispose des modules noyaux qui sont capables d'enreigistrer des règles de routage (@Ip et port rtp, rtcp etc) donc ma règle est constitue une structure. j'ai une fonction qui prend la structure en parametre et qui permet d'ecrire à travers un char device dans mes modules noyaux  mais à l'arrivé les données sont lisibles mais c'est différentes de celles que j'ai passé à la structure.
je peux encore expliciter si je ne suis pas clair .

Reply

Marsh Posté le 13-07-2006 à 18:06:02    

ham222 a écrit :

En réalité mon projet est composé d'un client (sur un x86) et d'un serveur(sur un powerQuicc3).  


Du classique. Pas de difficultés particulières ... si on écrit du code portable.

Citation :


Le serveur est compilé sur un x86 pour powerpc, dans un premier temps j'essaie de travailler que sur le serveur.  


Qui est bien sûr exécuté sur le MPC.

Citation :


je dispose des modules noyaux qui sont capables d'enreigistrer des règles de routage (@Ip et port rtp, rtcp etc) donc ma règle est constitue une structure.  


OK. On est toujours sur le serveur MPC ...

Citation :


j'ai une fonction qui prend la structure en parametre et qui permet d'ecrire à travers un char device dans mes modules noyaux  mais à l'arrivé les données sont lisibles mais c'est différentes de celles que j'ai passé à la structure.

Difficile à dire. Problème de codage, de paramètres passés aux fonctions du noyau ?  
De quelle arrivée s'agit-il ? Pour moi, on a pas quitté le serveur...
 
Maintenant, si tu demandes à ton client x86 de transmettre une structure directement par socket à un serveur MPC, c'est sûr que ça ne fonctionne pas. Alors explique exactement qui fait quoi, parce que jusque là, c'est pas clair...
 
Et si c'est ça, tu as déjà eu la réponse. Utilise soit un format binaire indépendant (MSB en tête), soit un format texte (ASCII).
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed