Gast
#919821
Hallo Ich programmiere gerade einen Bootloader für den Mega2560. Um Statusmeldungen auf dem LCD auszugeben, habe ich die auszugebenden Strings im FLash liegen. Über eine Funktion soll der String dann zum LCD geschrieben werden. Das HEX-File wird über "-Wl,--section-start=.text=3E000" in den Bootloaderbereich des Prozessors geladen. Das Problem ist, das der Copmpiler denkt, der FLASH-String steht in den ersten 64K des Flashes und versucht diesen über LPM zu laden. Da ich aber über den Linkereintrag das Programm in den Bootloadebereich, also irgendwo zwischen 0x1F000 & 0x1FFFF, verlegt habe geht der Zugiff über LPM nicht. Kann ich dem Compiler sagen, das er das Programm für den Bootloader compilieren soll, oder muss ich mit der pgm_read_byte_far- Funktion arbeiten und den Offset für den Bootloader mit übergeben? Danke & Gruß Steffen