ich versuche den U-Radig stack für arm anzupassen. ide ist codeRed/eclipse. Änderungen sind wegen anderer Variablentypen erforderlich. Ich hänge zur Zeit an Structuren. Original:
1 | struct ARP_Header { |
2 | unsigned int ARP_HWType; //Hardware Typ enthält den Code für Ethernet oder andere Link Layer |
3 | unsigned int ARP_PRType; //Protokoll Typ enthält den Code für IP o. anderes Übertragungsprotokoll |
4 | unsigned char ARP_HWLen; //Länge der Hardwareadresse enthält 6 für 6 Byte lange MAC Adressen |
5 | unsigned char ARP_PRLen; //Länge der Protocolladresse enthält 4 für 4 Byte lange IP Adressen |
6 | unsigned int ARP_Op; //Enthält Code der signalisiert ob es sich um eine Anfrage o. Antwort handelt |
7 | unsigned char ARP_SHAddr[6]; //Enthält die MAC Adresse des Anfragenden |
8 | unsigned long ARP_SIPAddr; //Enthält die IP Adresse des Absenders |
9 | unsigned char ARP_THAddr[6]; //MAC Adresse Ziel, ist in diesem Fall 6 * 00,da die Adresse erst noch herausgefunden werden soll (ARP Request) |
10 | unsigned long ARP_TIPAddr; //IP Adresse enthält die IP Adresse zu der die Kommunikation aufgebaut werden soll |
11 | };
|
12 | |
13 | //----------------------------------------------------------------------------
|
14 | |
15 | }
|
Fälschung:
1 | struct ARP_Header { |
2 | uint16_t ARP_HWType; //Hardware Typ enth?lt den Code f?r Ethernet oder andere Link Layer |
3 | uint16_t ARP_PRType; //Protokoll Typ enth?lt den Code f?r IP o. anderes ?bertragungsprotokoll |
4 | unsigned char ARP_HWLen; //L?nge der Hardwareadresse enth?lt 6 f?r 6 Byte lange MAC Adressen |
5 | unsigned char ARP_PRLen; //L?nge der Protocolladresse enth?lt 4 f?r 4 Byte lange IP Adressen |
6 | uint16_t ARP_Op; //Enth?lt Code der signalisiert ob es sich um eine Anfrage o. Antwort handelt |
7 | unsigned char ARP_SHAddr[6]; //Enth?lt die MAC Adresse des Anfragenden |
8 | uint32_t ARP_SIPAddr; //Enth?lt die IP Adresse des Absenders |
9 | unsigned char ARP_THAddr[6]; //MAC Adresse Ziel, ist in diesem Fall 6 * 00,da die Adresse erst noch herausgefunden werden soll (ARP Request) |
10 | uint32_t ARP_TIPAddr; //IP Adresse enth?lt die IP Adresse zu der die Kommunikation aufgebaut werden soll |
11 | };
|
Beim Kopieren in diesen header mit arp = (struct ARP_Header *)ð_buffer[ARP_OFFSET]; kommt es ab ARP_SIPAddr zu Verschiebungen. Warum ist "uint32_t ARP_SIPAddr" ungleich "unsigned char ARP_SIPAddr[4]; " mit unsigned char ARP_SIPAddr[4] geht es weiter, hängt dann aber an anderer Stelle. Wie werden gcc-strukturen in eclipse umgesetzt? Gibt es ein Umsetzungsscript, das man einfach abarbeiten kann?