2008/4/29, Arquer Stephane <[EMAIL PROTECTED]>:
> Voici les traces côté client:

Belles traces :=)

[...]

Cette trace là ne nous donnes pas les renseignements qu'on aimerait
car elle affiche l'adresse de data_val :=)

Debug||/home/arquers/TSP/tsp-0.8.3-Source-Rtems2/src/core/driver/tsp_consumer.c##TSP_consumer_request_async_sample_read##1348:
async_read_result->data.data_val = 0x98B9668

alors qu'on aimerait voir le contenu des 8 octets qui commencent
à cette adresse (8 car async_read_result->value_size=8).

peux-tu patcher le code de
   tsp_consumer.c
de façon à afficher le contenu de ces adresses en hexa et pas
seulement l'adresse.

Sinon tu peux aussi y aller au debugger.
Le contenu te donnera la "valeur" je m'attends à ce que cette valeur
aient les indiens d'inversé.

Je te joins un petit prog de test qui peux te permettre de vérifier.
gcc -Wall -o double_endian double_endian.c
./double_endian

qui sur un linux intel (little endian) donne:
sizeof(double)   = 8
sizeof(uint8_t)  = 1
   sizeof(myu)   = 8
         myu.a   = 0.006323
   myu.ui8[0]    = 0xA5
   myu.ui8[1]    = 0xD7
   myu.ui8[2]    = 0x66
   myu.ui8[3]    = 0x63
   myu.ui8[4]    = 0x25
   myu.ui8[5]    = 0xE6
   myu.ui8[6]    = 0x79
   myu.ui8[7]    = 0x3F
Reverse endian...
   myu.ui8[0]    = 0x3F
   myu.ui8[1]    = 0x79
   myu.ui8[2]    = 0xE6
   myu.ui8[3]    = 0x25
   myu.ui8[4]    = 0x63
   myu.ui8[5]    = 0x66
   myu.ui8[6]    = 0xD7
   myu.ui8[7]    = 0xA5
         myu.a   = -0.000000



-- 
Erk
#include <stdio.h>
#include <stdint.h>
int main()
{
 union {
    double a;
    uint8_t ui8[8];
 } myu;

 int i;
 uint8_t temp;
   
 myu.a = 0.006323;
 printf("sizeof(double)   = %d\n",sizeof(double));
 printf("sizeof(uint8_t)  = %d\n",sizeof(uint8_t));
 printf("   sizeof(myu)   = %d\n",sizeof(myu));
 printf("         myu.a   = %f\n",myu.a); 
 for (i=0;i<8;++i) {
   printf("   myu.ui8[%01d]    = 0x%02X\n",i,myu.ui8[i]);
 }

 printf("Reverse endian...\n");
 for (i=0;i<4;++i) {
   temp = myu.ui8[i];
   myu.ui8[i] = myu.ui8[8-(i+1)];
   myu.ui8[8-(i+1)] = temp;
 }
 for (i=0;i<8;++i) {
   printf("   myu.ui8[%01d]    = 0x%02X\n",i,myu.ui8[i]);
 }
 printf("         myu.a   = %f\n",myu.a);
 return 0;
} 
_______________________________________________
Tsp-devel mailing list
Tsp-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/tsp-devel

Répondre à