# Copyright (C) 2014-2022 Free Software Foundation, Inc. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. # RODATA_PM_OFFSET # If empty, .rodata sections will be part of .data. This is for # devices where it is not possible to use LD* instructions to read # from flash. # # If non-empty, .rodata is not part of .data and the .rodata # objects are assigned addresses at an offest of RODATA_PM_OFFSET. # This is for devices that feature reading from flash by means of # LD* instructions, provided the addresses are offset by # __RODATA_PM_OFFSET__ (which defaults to RODATA_PM_OFFSET). cat < text} EOF # Devices like ATtiny816 allow to read from flash memory by means of LD* # instructions provided we add an offset of __RODATA_PM_OFFSET__ to the # flash addresses. if test -n "$RODATA_PM_OFFSET"; then cat < text} EOF fi cat < data ${RELOCATING+AT> text}} .bss ${RELOCATING+ ADDR(.data) + SIZEOF (.data)} ${RELOCATING-0} :${RELOCATING+ AT (ADDR (.bss))} { ${RELOCATING+ PROVIDE (__bss_start = .) ; } *(.bss) ${RELOCATING+ *(.bss*)} ${RELOCATING+ *(COMMON)} ${RELOCATING+ PROVIDE (__bss_end = .) ; } } ${RELOCATING+ > data} ${RELOCATING+ __data_load_start = LOADADDR(.data); } ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); } /* Global data not cleared after reset. */ .noinit ${RELOCATING+ ADDR(.bss) + SIZEOF (.bss)} ${RELOCATING-0}: ${RELOCATING+ AT (ADDR (.noinit))} { ${RELOCATING+ PROVIDE (__noinit_start = .) ; } *(.noinit${RELOCATING+ .noinit.* .gnu.linkonce.n.*}) ${RELOCATING+ PROVIDE (__noinit_end = .) ; } ${RELOCATING+ _end = . ; } ${RELOCATING+ PROVIDE (__heap_start = .) ; } } ${RELOCATING+ > data} EOF if test -n "${EEPROM_LENGTH}"; then cat < eeprom} EOF fi if test "$FUSE_NAME" = "fuse" ; then cat < fuse} EOF fi cat < lock} .signature ${RELOCATING-0}: { KEEP(*(.signature*)) } ${RELOCATING+ > signature} EOF if test "$FUSE_NAME" = "config" ; then cat < config} EOF fi cat <