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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.