summaryrefslogtreecommitdiff
path: root/ports_smp/mips32_interaptiv_smp/gnu/example_build/demo_threadx.ld
blob: c09b2a6cc95a29a7dc0e726fd1eddefb5c5410fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
OUTPUT_ARCH(mips)

/**** Start point ****/

ENTRY(_start)			/* Entry point of application		*/

SECTIONS
{
  /**** Code and read-only data ****/

  .vector_0x000 0x80000000 :
  {
  }

  .vector_0x100 0x80000100 :
  {
  }

  .vector_0x180 0x80000180 :
  {
  }

  .vector_0x200 0x80000200 :
  {
  }

  .vector_0x280 0x80000280 :
  {
  }

  .vector_0x300 0x80000300 :
  {
  }

  .text 0x80100000 :
  {
    _ftext = ABSOLUTE(.) ;	/* Start of code and read-only data	*/
    start.o(.text)		    /* Reset entry point		    */
    *(.text*)
    _ecode = ABSOLUTE(.) ;	/* End of code				*/

    *(.rodata*)

    . = ALIGN(8);
    _etext = ABSOLUTE(.) ;	/* End of code and read-only data	*/
  } = 0

  /**** Initialised data ****/

  .data :
  {
    _fdata = ABSOLUTE(.);	/* Start of initialised data		*/
    *(.data*)

    . = ALIGN(8);

    _gp = ABSOLUTE(. + 0x7ff0); /* Base of small data			*/
    LC8 = ABSOLUTE(. + 0x7ff0); /* Base of small data			*/

    *(.lit8)
    *(.lit4)
    *(.sdata*)

    . = ALIGN(8);

    _edata  = ABSOLUTE(.) ;	/* End of initialised data		*/
  }

  /**** Uninitialised data ****/

  .sbss :
  {
    _start_sbss = .;
    *(.sbss*)
    *(.scommon)
    _end_sbss = .;
  }
  .bss :
  {
    _start_bss = .;
    *(.bss*)
    *(COMMON)
    _ebss = ABSOLUTE(.) ;
    _end_bss =  .;
  }

  .stack _ebss :
  {
    /* Allocate room for stack */
    .   =  ALIGN(8) ;
    .   += 4096 ;
    _sp =  . - 16 ;
    _stack_top = ABSOLUTE(.) ;
  }

  _free_memory =  _stack_top + 4 ;

  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }

  /DISCARD/ :
  {
    *(.reginfo)
  }

  PROVIDE(etext = _etext);
  PROVIDE (end = _stack_top);
}