geronet
22-12-2008, 19:31
Hi Jungs!
Schon lang nicht mehr hier gewesen, aber jetzt bräucht ich mal nen Tipp:
C-Programm mit AVR-GCC auf Atmega, folgende Struktur und Funktion:
struct IP_header{
uint16_t IP_checksum;
uint8_t IP_sourceIp[4];
uint8_t IP_destIp[4];
};
void ip(uint8_t *buff)
{
struct IP_header *ip;
ip = (struct IP_Header *)&buff[24];
ip->IP_checksum = 0x00; // checksum auf null setzen
..usw
Aufruf der Funktion ip mit Zeiger auf Speicherbereichs-feld vom typ unsigned char, die Zeile mit dem cast bringt die Warnung "assignment from incompatible pointer type", das ganze funktioniert aber. Würde gern die Warnung wegbekommen, mit dem Prinzip des Struktur-Zeigers auf den Speicher ist das recht praktisch..
Irgendwelche Vorschläge?
Grüsse, Stefan
Schon lang nicht mehr hier gewesen, aber jetzt bräucht ich mal nen Tipp:
C-Programm mit AVR-GCC auf Atmega, folgende Struktur und Funktion:
struct IP_header{
uint16_t IP_checksum;
uint8_t IP_sourceIp[4];
uint8_t IP_destIp[4];
};
void ip(uint8_t *buff)
{
struct IP_header *ip;
ip = (struct IP_Header *)&buff[24];
ip->IP_checksum = 0x00; // checksum auf null setzen
..usw
Aufruf der Funktion ip mit Zeiger auf Speicherbereichs-feld vom typ unsigned char, die Zeile mit dem cast bringt die Warnung "assignment from incompatible pointer type", das ganze funktioniert aber. Würde gern die Warnung wegbekommen, mit dem Prinzip des Struktur-Zeigers auf den Speicher ist das recht praktisch..
Irgendwelche Vorschläge?
Grüsse, Stefan