comparison gcc/ld-script.src @ 84:32bcc299ef55

gcc/ld-script.src: additional polish
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 20 Jul 2018 19:36:25 +0000
parents 6afaa5cb7392
children 80e3a78126ac
comparison
equal deleted inserted replaced
83:92fde62400ef 84:32bcc299ef55
37 __romswitch_ram_addr = ADDR(bootrom.switch); 37 __romswitch_ram_addr = ADDR(bootrom.switch);
38 __romswitch_flash_addr = LOADADDR(bootrom.switch); 38 __romswitch_flash_addr = LOADADDR(bootrom.switch);
39 __romswitch_size = SIZEOF(bootrom.switch); 39 __romswitch_size = SIZEOF(bootrom.switch);
40 ')dnl 40 ')dnl
41 41
42 define(`INTTEXT_BASE_ADDR',
43 ifelse(Buildmem,FLASH,FLASHIMAGE_BASE_ADDR,`/* no fixed address */'))dnl
44
42 /* boot entry code, going into flash or XRAM emulating flash */ 45 /* boot entry code, going into flash or XRAM emulating flash */
43 .inttext : { 46 .inttext INTTEXT_BASE_ADDR : {
44 *(.inttext) 47 *(.inttext)
45 } > Buildmem 48 } > Buildmem
46 49
47 /* copy-to-IRAM code */ 50 /* copy-to-IRAM code */
48 iram.text 0x80001C : { 51 iram.text 0x80001C : {
116 . = ALIGN(4); 119 . = ALIGN(4);
117 } > XRAM 120 } > XRAM
118 __extbss_start = ADDR(ext.bss); 121 __extbss_start = ADDR(ext.bss);
119 __extbss_size = SIZEOF(ext.bss); 122 __extbss_size = SIZEOF(ext.bss);
120 123
121 .stack (NOLOAD) : { 124 int.stack (NOLOAD) : ALIGN(8) {
122 /* Leave 20 32bit words for register pushes. */ 125 /* Beginning of stacks and heap area - 2.75 kbytes (int.s) */
123 . = ALIGN(8); 126 _Stack_segment_start = .;
124 . += 20 * 4; 127 . += 0xB00;
128 _Stack_segment_end = .;
125 129
130 _iram_end = .;
131 } > IRAM
132
133 ext.stack (NOLOAD) : ALIGN(8) {
126 /* Stack for abort and/or undefined modes. */ 134 /* Stack for abort and/or undefined modes. */
135 . += 512;
127 _Except_Stack_SP = .; 136 _Except_Stack_SP = .;
128 137
129 /* Leave 38 32bit words for state saving on exceptions. */ 138 /* Leave 38 32bit words for state saving on exceptions. */
130 xdump_buffer = .; 139 xdump_buffer = .;
131 . += 38 * 4; 140 . += 38 * 4;
132 . = ALIGN(8);
133 141
134 /* Beginning of stacks and heap area - 2.75 kbytes (int.s) */ 142 _xram_end = .;
135 _Stack_segment_start = .;
136 . += 0xB00;
137 _Stack_segment_end = .;
138 } > XRAM 143 } > XRAM
139 } 144 }