big et litle endian - C - Programmation
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...
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 .
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 : |
Qui est bien sûr exécuté sur le MPC.
Citation : |
OK. On est toujours sur le serveur MPC ...
Citation : |
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).
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