[elektro] Nuvoton Cortex-M0 - endian

Bali Zoltan eltexto at freemail.hu
Sun Nov 20 18:48:56 CET 2011


Levelek megint összevissza jönnek...

Varázsszót már találtam rá, __big_endian , csak struktúra definícióban 
nem működik
a tagokra (Error). A struktúrára meg értelmetlennek tartja (warning).

Viszont, ha a tag elé a párját teszem, a __little_endian, akkor nincs hiba.

Azért belenéztem a proci utasításkészletébe, hát nem tartana semmiből a 
fordítónak
beszúrni egy REV, vagy REV16 -ot a kódba, ha odabiggyesztem a 
__big_endian kulcsszót.
Persze megoldottam a __REV, __REV16 makrókkal.
Mondjuk a nyolc utasítás meg a 8 órajel nem zavar, csak randa.

   NETWORK_RECEIVE_INITIALIZE(frame->buf_index);
   ENCGetArray( (uint8_t*) &received_tcp_packet,20);
   received_tcp_packet.sport        = __REV16(received_tcp_packet.sport);
   received_tcp_packet.dport        = __REV16(received_tcp_packet.dport);
   received_tcp_packet.seqno        = __REV(received_tcp_packet.seqno);
   received_tcp_packet.ackno        = __REV(received_tcp_packet.ackno);
   received_tcp_packet.hlen_flags   = 
__REV16(received_tcp_packet.hlen_flags);
   received_tcp_packet.window       = __REV16(received_tcp_packet.window);
   received_tcp_packet.checksum     = 
__REV16(received_tcp_packet.checksum);
   received_tcp_packet.urgent       = __REV16(received_tcp_packet.urgent);


Köszi

Üdv.  Zoli



2011. 11. 20. 18:22 keltezéssel, Info írta:
> itt is említik pl
> http://www.codeproject.com/KB/cpp/endianness.aspx
>
>
>    



More information about the Elektro mailing list