PASTE-IT!

Holding 564M in 37705 pastes. Meet us at #paste-it.net, OFTC!
Try our Mozilla Jetpack clipboard paster and our Chrome extension!
 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
/* identify the Entry Point  */

ENTRY(_startup)

	flash     			: ORIGIN = 0,          LENGTH = 248K	/* FLASH ROM               	*/
	ram   				: ORIGIN = 0x40000000, LENGTH = 16K	/* free RAM area				*/
}



/* define a global symbol _stack_end  */

_stack_end = 0x40000000 + 16384 - 4;



/* now define the output sections  */

SECTIONS
{
	. = 0;								/* set location counter to address zero  */

	startup : { *(.startup)} >flash		/* the startup code goes into FLASH */

	.text :								/* collect all sections that should go into FLASH after startup  */
	{
		*(.text)						/* all .text sections (code)  */
		*(.rodata)						/* all .rodata sections (constants, strings, etc.)  */
		*(.rodata*)						/* all .rodata* sections (constants, strings, etc.)  */
		*(.glue_7)						/* all .glue_7 sections  (no idea what these are) */
		*(.glue_7t)						/* all .glue_7t sections (no idea what these are) */
		_etext = .;						/* define a global symbol _etext just after the last code byte */
	} >flash							/* put all the above into FLASH */

	.ctors :
	{
		PROVIDE(__ctors_start__ = .);
		KEEP(*(SORT(.ctors.*)))
		KEEP(*(.ctors))
		PROVIDE(__ctors_end__ = .);
	} >FLASH

	.dtors :
	{
		PROVIDE(__dtors_start__ = .);
		KEEP(*(SORT(.dtors.*)))
		KEEP(*(.dtors))
		PROVIDE(__dtors_end__ = .);
	} >FLASH
	.data :								/* collect all initialized .data sections that go into RAM  */
	{
		_data = .;						/* create a global symbol marking the start of the .data section  */
		*(.data)						/* all .data sections  */
		_edata = .;						/* define a global symbol marking the end of the .data section  */
	} >ram AT >flash					/* put all the above into RAM (but load the LMA copy into FLASH) */

	.bss :								/* collect all uninitialized .bss sections that go into RAM  */
	{
		_bss_start = .;					/* define a global symbol marking the start of the .bss section */
		*(.bss)							/* all .bss sections  */
	} >ram								/* put all the above in RAM (it will be cleared in the startup code */
	. = ALIGN(4);						/* advance location counter to the next 32-bit boundary */
}
	. = ALIGN(4);

	_end = .;
	_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
	PROVIDE (end = .);
2106_linker
by
jsalomon1
pasted
778 day(s) ago
06:33 25-01-2008
in syntax