zc706/experiments/link.x

70 lines
1.4 KiB
Plaintext
Raw Normal View History

2019-05-05 20:56:23 +08:00
ENTRY(_boot_cores);
2019-05-31 06:17:53 +08:00
/* Provide some defaults */
2019-05-31 02:30:19 +08:00
PROVIDE(Reset = _boot_cores);
PROVIDE(UndefinedInstruction = Reset);
PROVIDE(SoftwareInterrupt = Reset);
PROVIDE(PrefetchAbort = Reset);
PROVIDE(DataAbort = Reset);
PROVIDE(ReservedException = Reset);
PROVIDE(IRQ = Reset);
PROVIDE(FIQ = Reset);
2019-05-05 20:56:23 +08:00
2019-05-27 07:44:24 +08:00
MEMORY
{
2020-04-28 19:35:45 +08:00
/* 256 kB On-Chip Memory */
OCM : ORIGIN = 0, LENGTH = 0x30000
OCM3 : ORIGIN = 0xFFFF0000, LENGTH = 0x10000
2019-05-27 07:44:24 +08:00
}
2019-05-05 20:56:23 +08:00
SECTIONS
{
.text :
2019-05-31 02:30:19 +08:00
{
KEEP(*(.text.exceptions));
*(.text.boot);
*(.text .text.*);
2019-05-27 07:44:24 +08:00
} > OCM
2019-05-05 20:56:23 +08:00
.rodata : ALIGN(4)
2019-05-05 20:56:23 +08:00
{
*(.rodata .rodata.*);
2019-05-27 07:44:24 +08:00
} > OCM
2019-05-05 20:56:23 +08:00
.data : ALIGN(4)
2019-05-05 20:56:23 +08:00
{
*(.data .data.*);
2019-05-27 07:44:24 +08:00
} > OCM
2019-05-05 20:56:23 +08:00
.bss (NOLOAD) : ALIGN(4)
2019-05-05 20:56:23 +08:00
{
__bss_start = .;
2019-06-18 08:22:07 +08:00
/* Aligned to 16 kB */
KEEP(*(.bss.l1_table));
*(.bss .bss.*);
. = ALIGN(4);
__bss_end = .;
2019-05-27 07:44:24 +08:00
} > OCM
2020-04-28 19:31:49 +08:00
.stack1 (NOLOAD) : ALIGN(8) {
2020-04-28 19:35:45 +08:00
__stack1_end = .;
. += 0x200;
__stack1_start = .;
2020-04-28 19:31:49 +08:00
} > OCM
.stack0 (NOLOAD) : ALIGN(8) {
2020-04-28 19:35:45 +08:00
__stack0_end = .;
. = ORIGIN(OCM) + LENGTH(OCM) - 8;
__stack0_start = .;
2019-05-27 07:44:24 +08:00
} > OCM
2019-05-05 20:56:23 +08:00
2020-04-28 19:35:45 +08:00
/DISCARD/ : {
/* Unused exception related info that only wastes space */
*(.ARM.exidx);
*(.ARM.exidx.*);
*(.ARM.extab.*);
}
2019-05-05 20:56:23 +08:00
}
2020-04-28 19:31:49 +08:00
ASSERT(SIZEOF(.stack0) >= 0x8000, "less than 32 KB left for stack");