[elektro] Nuvoton Cortex-M0 - endian
Ábrahám Gábor
abraham at plus7.hu
Sun Nov 20 18:59:13 CET 2011
Van rá gyári makro. Ha ezt használod írhatsz gépfüggetlen kódot.
<http://www.gnu.org/s/hello/manual/libc/Byte-Order.html>
Gábor
----- Eredeti üzenet -----
From: Bali Zoltan
Sent: Sunday, November 20, 2011 6:48 PM
To: elektro at tesla.hu
Subject: Re: [elektro] Nuvoton Cortex-M0 - endian
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
>
>
>
-----------------------------------------
elektro[-flame|-etc]
-----
A(z) üzenetben nem található vírus.
Ellenőrizte: AVG - www.avg.com
Verzió: 2012.0.1872 / Vírus adatbázis: 2092/4628 - Kiadás dátuma:
2011.11.20.
More information about the Elektro
mailing list