Hallo, ich hab hier grad ein kleines Problemchen. Der Code läuft, wenn er in einem "niedrigen" Speicherbereich steht (< 64k). Ist er allerdings im Bootloadersektor vom Atmega (0x1E000), setzt memcpy alle bits auf 1. memcpy_P(uip_ethaddr.addr, PSTR("ac:de:48:fd:0f:d0"), 6); Da kommt dann wenn es in der bootloader section steht nurnoch ff:ff:ff:ff:ff:ff raus... im unteren Programmspeicher klappts problemlos. memcpy(uip_ethaddr.addr, "ac:de:48:fd:0f:d0", 6); so tuts auch im oberen Bereich. ist irgendwie komisch, hab ich was übersehen? Grüße, Euer Tom
memcpy_P nimmt wie memcpy 16-Bit Adressen: http://cvs.savannah.gnu.org/viewvc/avr-libc/libc/pmstring/memcpy_P.S?revision=1.8&root=avr-libc&view=markup Ein void* in avr-gcc ist 16 Bit breit. Johann
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.