zynq-rs/experiments/link.x

77 lines
1.4 KiB
Plaintext
Raw Normal View History

2020-07-06 21:02:46 +08:00
ENTRY(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 = .;
*(.bss .bss.*);
. = ALIGN(4);
__bss_end = .;
} > OCM3
2019-05-27 07:44:24 +08:00
.irq_stack1 (NOLOAD) : ALIGN(8)
{
__irq_stack1_end = .;
. += 0x100;
__irq_stack1_start = .;
} > OCM3
.irq_stack0 (NOLOAD) : ALIGN(8)
{
__irq_stack0_end = .;
. += 0x100;
__irq_stack0_start = .;
} > OCM3
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 = .;
} > OCM3
2020-04-28 19:31:49 +08:00
.stack0 (NOLOAD) : ALIGN(8) {
2020-04-28 19:35:45 +08:00
__stack0_end = .;
. = ORIGIN(OCM3) + LENGTH(OCM3) - 8;
2020-04-28 19:35:45 +08:00
__stack0_start = .;
2020-08-03 14:42:34 +08:00
/* unused heap0 to prevent the linker from complaining*/
__heap0_start = .;
__heap0_end = .;
} > OCM3
2019-05-05 20:56:23 +08:00
2020-04-28 19:39:35 +08:00
/DISCARD/ :
{
2020-04-28 19:35:45 +08:00
/* Unused exception related info that only wastes space */
*(.ARM.exidx);
*(.ARM.exidx.*);
*(.ARM.extab.*);
}
2019-05-05 20:56:23 +08:00
}
ASSERT(SIZEOF(.stack0) >= 0x1000, "less than 4 KB left for stack");