• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
2OUTPUT_ARCH(arm)
3ENTRY(Vector_Table)
4
5SVC_IRQ_STACK_SIZE  = 4K;
6FLASH_START         = 0x00000000;
7FLASH_SIZE          = 0x00400000;
8PS_RAM_START        = 0x21000000;
9PS_RAM_SIZE         = 0x00200000;
10
11MEMORY
12{
13   flash(rx) : ORIGIN = FLASH_START, LENGTH = FLASH_SIZE
14   ram(rwx) : ORIGIN = PS_RAM_START, LENGTH = PS_RAM_SIZE
15}
16
17SECTIONS
18{
19  _stext = .;
20  .vector : {
21      KEEP (*(SORT_NONE(.Vector_Table)))
22  } > flash
23
24  .got : {
25    *(.got.plt)
26    *(.igot.plt)
27    *(.got)
28    *(.igot)
29  } > flash
30
31  .text : {
32    . = ALIGN(0x4);
33    __text_start = .;
34    *(.text.*)
35    . = ALIGN(0x4);
36    _etext = .;
37    *(.rodata .rodata.* .gnu.linkonce.r.*)
38    *(.rodata1)
39  } > ram
40
41  .data : {
42    __data_start = . ;
43    *(.data .data.* .gnu.linkonce.d.*)
44  } > ram
45
46  .bss : ALIGN(0x4) {
47   __bss_start = .;
48   *(.dynbss)
49   *(.bss .bss.* .gnu.linkonce.b.*)
50   *(COMMON)
51   . = ALIGN(0x4);
52   __bss_end = .;
53  } > ram
54
55  _sstack = .;
56  .stack : ALIGN(0x8) {
57    _stack = .;
58    __irq_stack_bootom = .;
59    . += SVC_IRQ_STACK_SIZE;
60    __irq_stack_top = .;
61    _estack = .;
62  } > ram
63
64  .heap (NOLOAD): ALIGN(0x40) {
65    __heap_start = .;
66  } > ram
67
68  __heap_size = PS_RAM_SIZE - (__heap_start - __text_start);
69  end = .;
70  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
71}
72