. = ALIGN(8);
PROVIDE (_BSS_VMA_START = .);
.sbss (NOLOAD) : { *(.dynsbss ) *(.sbss .sbss.* .gnu.linkonce.sb.* ) *(.scommon .scommon.* ) } > DLM
.bss (NOLOAD) : { *(.dynbss ) *(.bss .bss.* .gnu.linkonce.b.* ) *(COMMON ) . = ALIGN(8); } > DLM
/* When using the S file _FILL_STK function (which clears all the values in the stack space to 0x55),
* if _BSS_VMA_END does not have four-byte alignment, there may be an out-of-bounds access beyond _STACK_TOP,
* resulting in a store access fault.
*/
PROVIDE (_BSS_VMA_END = ((. + 3) / 4)*4);
PROVIDE (BIN_SIZE = LOADADDR(.sdk_version) + SIZEOF(.sdk_version) - BIN_BEGIN);
. = ALIGN(8);
/* end is the starting address of the heap, the heap grows upward */
_end = .;
PROVIDE (end = .);
PROVIDE (_STACK_TOP = ORIGIN(DLM) + LENGTH(DLM));
PROVIDE (FLASH_SIZE = LENGTH(FLASH));
}