[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