initial commit

This commit is contained in:
shell committed 2026-10-11 21:48:59 +08:00
commit b44ce7bd77
2716 files changed
+559005

No files matched your search

@@ -0,0 +1,185 @@
/**
******************************************************************************
* @file stm32c542xc_flash.ld
* @brief Linker File
******************************************************************************
* @attention
*
* Copyright (c) 2026 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Entry Point */
ENTRY(Reset_Handler)
HEAP_SIZE = 0x200;
STACK_SIZE = 0x1000;
MEMORY
{
ROM (rx) : org = 0x8000000, len = 0x40000
RAM (xrw) : org = 0x20000000, len = 0x10000
}
SECTIONS
{
.vectors :
{
. = ALIGN(8);
KEEP(*(.vectors));
. = ALIGN(8);
} > ROM
.text :
{
. = ALIGN(8);
*(.text);
*(.text*);
*(.glue_7);
*(.glue_7t);
*(.eh_frame);
KEEP (*(.init));
KEEP (*(.fini));
. = ALIGN(8);
_etext = .;
} > ROM
.rodata :
{
. = ALIGN(8);
*(.rodata);
*(.rodata*);
. = ALIGN(8);
} > ROM
.ARM.extab : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} > ROM
.ARM : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*);
__exidx_end = .;
. = ALIGN(8);
} > ROM
.preinit_array : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array*));
PROVIDE_HIDDEN (__preinit_array_end = .);
. = ALIGN(8);
} > ROM
.init_array : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT(.init_array.*)));
KEEP (*(.init_array*));
PROVIDE_HIDDEN (__init_array_end = .);
. = ALIGN(8);
} > ROM
.fini_array : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(SORT(.fini_array.*)));
KEEP (*(.fini_array*));
PROVIDE_HIDDEN (__fini_array_end = .);
. = ALIGN(8);
} > ROM
.copy.table : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
__copy_table_start__ = .;
LONG(LOADADDR(.data));
LONG (ADDR(.data));
LONG (SIZEOF(.data) / 4);
__copy_table_end__ = .;
} > ROM
.zero.table : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
__zero_table_start__ = .;
LONG (ADDR(.bss));
LONG (SIZEOF(.bss) / 4);
__zero_table_end__ = .;
} > ROM
.data :
{
. = ALIGN(8);
_sidata = LOADADDR(.data);
__data_start__ = .;
_sdata = .;
*(.data);
*(.data*);
. = ALIGN(8);
_edata = .;
} > RAM AT> ROM
.bss :
{
. = ALIGN(8);
_sbss = .;
__bss_start__ = _sbss;
*(.bss);
*(.bss*);
*(COMMON);
. = ALIGN(8);
_ebss = .;
__bss_end__ = _ebss;
} > RAM
.heap (NOLOAD) :
{
. = ALIGN(8);
__end__ = .;
PROVIDE (end = .);
_heap_start = .;
. += HEAP_SIZE;
. = ALIGN(8);
_heap_end = .;
__HeapLimit = .;
} > RAM
.stack (NOLOAD) :
{
. = ALIGN(8);
__StackLimit = .;
. += STACK_SIZE;
. = ALIGN(8);
__StackTop = .;
_estack = .;
__stack = .;
} > RAM
/DISCARD/ :
{
libc.a ( * )
libm.a ( * )
libgcc.a ( * )
}
.ARM.attributes 0 :
{
*(.ARM.attributes)
}
}