1OUTPUT_ARCH(mips) 2 3/**** Start point ****/ 4 5ENTRY(_start) /* Entry point of application */ 6 7SECTIONS 8{ 9 /**** Code and read-only data ****/ 10 11 .vector_0x000 0x80000000 : 12 { 13 } 14 15 .vector_0x100 0x80000100 : 16 { 17 } 18 19 .vector_0x180 0x80000180 : 20 { 21 } 22 23 .vector_0x200 0x80000200 : 24 { 25 } 26 27 .vector_0x280 0x80000280 : 28 { 29 } 30 31 .vector_0x300 0x80000300 : 32 { 33 } 34 35 .text 0x80100000 : 36 { 37 _ftext = ABSOLUTE(.) ; /* Start of code and read-only data */ 38 start.o(.text) /* Reset entry point */ 39 *(.text*) 40 _ecode = ABSOLUTE(.) ; /* End of code */ 41 42 *(.rodata*) 43 44 . = ALIGN(8); 45 _etext = ABSOLUTE(.) ; /* End of code and read-only data */ 46 } = 0 47 48 /**** Initialised data ****/ 49 50 .data : 51 { 52 _fdata = ABSOLUTE(.); /* Start of initialised data */ 53 *(.data*) 54 55 . = ALIGN(8); 56 57 _gp = ABSOLUTE(. + 0x7ff0); /* Base of small data */ 58 LC8 = ABSOLUTE(. + 0x7ff0); /* Base of small data */ 59 60 *(.lit8) 61 *(.lit4) 62 *(.sdata*) 63 64 . = ALIGN(8); 65 66 _edata = ABSOLUTE(.) ; /* End of initialised data */ 67 } 68 69 /**** Uninitialised data ****/ 70 71 .sbss : 72 { 73 _start_sbss = .; 74 *(.sbss*) 75 *(.scommon) 76 _end_sbss = .; 77 } 78 .bss : 79 { 80 _start_bss = .; 81 *(.bss*) 82 *(COMMON) 83 _ebss = ABSOLUTE(.) ; 84 _end_bss = .; 85 } 86 87 .stack _ebss : 88 { 89 /* Allocate room for stack */ 90 . = ALIGN(8) ; 91 . += 4096 ; 92 _sp = . - 16 ; 93 _stack_top = ABSOLUTE(.) ; 94 } 95 96 _free_memory = _stack_top + 4 ; 97 98 .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } 99 .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } 100 101 /DISCARD/ : 102 { 103 *(.reginfo) 104 } 105 106 PROVIDE(etext = _etext); 107 PROVIDE (end = _stack_top); 108} 109 110