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
|
|
|
|
{
|
2020-02-01 03:48:01 +08:00
|
|
|
.text :
|
2019-05-31 02:30:19 +08:00
|
|
|
{
|
|
|
|
KEEP(*(.text.exceptions));
|
2019-08-07 01:47:45 +08:00
|
|
|
*(.text.boot);
|
|
|
|
*(.text .text.*);
|
2019-05-27 07:44:24 +08:00
|
|
|
} > OCM
|
2019-05-05 20:56:23 +08:00
|
|
|
|
2019-08-07 01:47:45 +08:00
|
|
|
.rodata : ALIGN(4)
|
2019-05-05 20:56:23 +08:00
|
|
|
{
|
2019-08-07 01:47:45 +08:00
|
|
|
*(.rodata .rodata.*);
|
2019-05-27 07:44:24 +08:00
|
|
|
} > OCM
|
2019-05-05 20:56:23 +08:00
|
|
|
|
2019-08-07 01:47:45 +08:00
|
|
|
.data : ALIGN(4)
|
2019-05-05 20:56:23 +08:00
|
|
|
{
|
2019-08-07 01:47:45 +08:00
|
|
|
*(.data .data.*);
|
2019-05-27 07:44:24 +08:00
|
|
|
} > OCM
|
2019-05-05 20:56:23 +08:00
|
|
|
|
2020-04-28 08:48:31 +08:00
|
|
|
.bss (NOLOAD) : ALIGN(4)
|
2019-05-05 20:56:23 +08:00
|
|
|
{
|
2020-04-28 08:48:31 +08:00
|
|
|
__bss_start = .;
|
2019-08-07 01:47:45 +08:00
|
|
|
*(.bss .bss.*);
|
|
|
|
. = ALIGN(4);
|
2020-04-28 08:48:31 +08:00
|
|
|
__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: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
|
|
|
}
|
2020-04-28 08:48:31 +08:00
|
|
|
|
2020-04-28 19:31:49 +08:00
|
|
|
ASSERT(SIZEOF(.stack0) >= 0x8000, "less than 32 KB left for stack");
|