I met the same problem during TSP Rtems port in using BB Tsp. I use a Leon 
microprocessor based on Sparc, I think your are on the same architecture.
 The problem occur when you want to access unaligned variables. With a sparc 
architechture you need to have data aligned on 32 bits adresses understand 
terminating by 0,4,8 or C. But the variables greater than 32 bits coded on at 
least  64 bits (doubles int64 ...) need to be aligned on adresses aligned by 64 
bits ( terminating by 0 or 8 only).
 
The solution is to modify the BB to copy the data byte by byte to avoid this 
problem.
 
sa

        -----Message d'origine-----
        De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de Frédéric 
Martinsons
        Envoyé : jeudi 27 novembre 2008 15:11
        À : Transport Sample Protocol development list
        Objet : [Tsp-devel] Alignment error on VxWorks
        
        
         Hi TSP,
        
        I have a list of differents kind of symbols (char ,int8, int16, double 
....) to publish in the BB (under vxworks).Everything works fine until I want 
to access the pointers returned by bb_simple_publish and especially in a config 
like this (tab is an array of pointer on void):
        
        *(double*) tab[i] = a
        *(double*) tab[i+1]=b
        *(int16*)   tab[i+2]= c
        *(double*) tab[i+3]= d   <--- here is the line which throw "alignment 
error"
        
        No problem when there is an even number of int16 pointer .
        
        I remember (when I check the tsp-devel archive) , during the Rtems port 
, there was a memory alignment probem.
        Do you think this is the same problem ?
        
        I solved the issue in using only 32 or 64 bits symbols but this is not 
optimal.Any idea to make it better ?
        
        

_______________________________________________
Tsp-devel mailing list
Tsp-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/tsp-devel

Répondre à