Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Byte Order Intel/PowerPc
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Byte Order Intel/PowerPc
 
Autor Nachricht
_Jules_
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.11.2007
Beiträge: 2

BeitragVerfasst am: 09 Nov 2007 - 08:23:07    Titel: Byte Order Intel/PowerPc

Hallo,

habe fogende Ausgangslage:
Versenden von Nachrichten über UDP zwischen PC (Intel) und PowerPC.
Programmiersprache ist ADA (bis auf die Socket Funktionen welche in C
implementiert sind). Der Code im PowerPC ist fest und kann nicht
verändert werden.

Hierbe ergibt sich folgendes Problem:
Da Intel und PowerPC ja verschiedene Byte Order haben, kommen die Daten welche vom PC an den PowerPC gesendet werden, dort in der falschen Reihenfolge an.
Der record meiner Struktur/en sieht zum Beispiel so aus:

for x use
record
A at 0 range 0 .. 15;
B at 2 range 8 .. 15;
C at 4 range 0 .. 15;
D at 6 range 0 .. 47;
...
E at 58 range 0 .. 1
F at 58 range 2 .. 3;
G at 58 range 4 .. 4;
...
end record


Mit den Funktionen htonl() und htons() kann man die Byteorder ja in C
ändern. Jedoch funktioniert dies ja nur richtig wenn es sich um 16 bzw.
32 Bit Datentypen handelt. Da ich aber selbst definierte Strukturen
versenden möchte klappt das so nicht.
Hat jemand einen Rat für mich?

Vielen Dank.

mfg. Julian
isi1
Moderator
Benutzer-Profile anzeigen
Moderator


Anmeldungsdatum: 10.08.2006
Beiträge: 6796
Wohnort: München

BeitragVerfasst am: 09 Nov 2007 - 10:08:53    Titel:

Beim Versenden, Julian,
füllt man ja ohnehin in den Sendepuffer um - und dabei bringe ich die Bytes der Variablen in die richtige Anordnung. Aufpassen muss man auch auf die Kompilerschalter, die die Minimallänge einer Variablen festlegen, sonst stimmt die Blocklänge nicht und man bekommt Füllbytes.
_________________
Grüße aus München, isi •≡≈ ¹₁₂½√∠∞±∫αβγδεηκλπρσφω ΔΣΦΩ
_Jules_
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.11.2007
Beiträge: 2

BeitragVerfasst am: 09 Nov 2007 - 12:57:34    Titel:

Danke isi1.
Naja, mit umfüllen is da nicht viel, es wird halt die Adresse übergeben wo der Puffer anfängt und wie groß der Puffer ist....
Das mit der Blocklänge passt alles, da gibts keine Probleme...
Dachte nur dass es eventuell ein Kommando/Funktion oder soetwas in der Art gibt, zum umstellen der Byteorder!?
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Byte Order Intel/PowerPc
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum