Geht primär um folgendes: Beitrag "AVR-Bootloader mit Verschlüsselung" Versionsnummer kommt an feste Adresse, beim Mega8 ist das 0xbfe, 0xbff. #define ver_adr 0x0bfe char flash *ptr_to_flash=ver_adr*2; //dummy version, handled by bootlader @ . . . printf (" TestV%d.", *ptr_to_flash++); printf ("%d.", *ptr_to_flash++); printf ("%d.", *ptr_to_flash++); printf ("%d", *ptr_to_flash++); . . . klappt so auch. Was mir nicht gelingen will: zur Laufzeit dem Pointer den Wert ver_adr zuzuweisen, meckert der Compiler (CodeVision) ptr_to_flash=0x0bfe*2; oder ptr_to_flash=ver_adr*2; Wo liegt mein Denkfehler??
Gast
#1116191
0x0bfe ist eine Zahl, ptr_to_flash aber ein Zeiger die Zuweisung erfordert also ein cast
> ptr_to_flash=ver_adr*2;
versuchs mal mit nem cast nach pointer. Du weist hier im Grunde einem
pointer einen int zu, das funzt net.
vllt so? Ich kenn das "flash" attribut nciht...
ptr_to_flash=(char flash *)ver_adr*2;
VG,
/th.
Edit: Da hat wohl einer schneller getippt g
:-) Das klappt wie gewollt, danke schön. Muss mich mal näher mit dem Kram befassen, aber im Moment keine Zeit für.