]> git.donarmstrong.com Git - kiibohd-controller.git/blob - Lib/mk20dx128.ld
e3af35414eba33e98c3db5bcc87d6a1b015f2cff
[kiibohd-controller.git] / Lib / mk20dx128.ld
1 MEMORY
2 {
3         FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K
4         RAM  (rwx) : ORIGIN = 0x1FFFE000, LENGTH = 16K
5 }
6
7
8 SECTIONS
9 {
10         .text : {
11                 . = 0;
12                 KEEP(*(.vectors))
13                 *(.startup*)
14                 /* TODO: does linker detect startup overflow onto flashconfig? */
15                 . = 0x400;
16                 KEEP(*(.flashconfig*))
17                 *(.text*)
18                 *(.rodata*)
19                 . = ALIGN(4);
20                 KEEP(*(.init))
21                 . = ALIGN(4);
22                 __preinit_array_start = .;
23                 KEEP (*(.preinit_array))
24                 __preinit_array_end = .;
25                 __init_array_start = .;
26                 KEEP (*(SORT(.init_array.*)))
27                 KEEP (*(.init_array))
28                 __init_array_end = .;
29         } > FLASH = 0xFF
30
31         .ARM.exidx : {
32                 __exidx_start = .;
33                 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
34                 __exidx_end = .;
35         } > FLASH
36         _etext = .;
37
38         .usbdescriptortable (NOLOAD) : {
39                 /* . = ORIGIN(RAM); */
40                 . = ALIGN(512);
41                 *(.usbdescriptortable*)
42         } > RAM
43
44         .usbbuffers (NOLOAD) : {
45                 . = ALIGN(4);
46                 *(.usbbuffers*)
47         } > RAM
48
49         .data : AT (_etext) {
50                 . = ALIGN(4);
51                 _sdata = .; 
52                 *(.data*)
53                 . = ALIGN(4);
54                 _edata = .; 
55         } > RAM
56
57         .noinit (NOLOAD) : {
58                 *(.noinit*)
59         } > RAM
60
61         .bss : {
62                 . = ALIGN(4);
63                 _sbss = .; 
64                 *(.bss*)
65                 *(COMMON)
66                 . = ALIGN(4);
67                 _ebss = .;   
68         } > RAM
69
70         _estack = ORIGIN(RAM) + LENGTH(RAM);
71 }
72
73