diff --git a/BaS_GNU/bas.lk.in b/BaS_GNU/bas.lk.in index 0ad968e..67d0114 100644 --- a/BaS_GNU/bas.lk.in +++ b/BaS_GNU/bas.lk.in @@ -75,6 +75,8 @@ SECTIONS { #endif } > flash +#define BAS_LABEL_LMA(x) ((x) + (ABSOLUTE(__BAS_LMA) - ABSOLUTE(__BAS_VMA))) + .bas _Bas_base : AT (ADDR(.text) + SIZEOF(.text)) { objs/BaS.o(.text) @@ -82,10 +84,10 @@ SECTIONS { objs/sd_card_asm.o(.text) objs/bas_printf.o(.text) objs/printf_helper.o(.text) - _xprintf_before_copy = _xprintf - (_BaS - LOADADDR(.bas)); - _display_progress_before_copy = _display_progress - (_BaS - LOADADDR(.bas)); + _xprintf_before_copy = BAS_LABEL_LMA(_xprintf); + _display_progress_before_copy = BAS_LABEL_LMA(_display_progress); objs/cache.o(.text) - _flush_and_invalidate_caches_before_copy = _flush_and_invalidate_caches - (_BaS - LOADADDR(.bas)); + _flush_and_invalidate_caches_before_copy = BAS_LABEL_LMA(_flush_and_invalidate_caches); objs/sd_card.o(.text) objs/mmu.o(.text) objs/exceptions.o(.text)