testpico: more on timer reload
[megadrive.git] / megaed-stop / ed_app.ld
CommitLineData
d2bfad8a 1OUTPUT_ARCH(m68k)\r
2SEARCH_DIR(.)\r
3/*GROUP(-lbcc -lc -lgcc)*/\r
4__DYNAMIC = 0;\r
5\r
6/*\r
7 * Setup the memory map of the SEGA Genesis.\r
8 * stack grows down from high memory.\r
9 *\r
10 * The memory map look like this:\r
11 * +--------------------+ <- low memory\r
12 * | .text |\r
13 * | _etext |\r
14 * | ctor list | the ctor and dtor lists are for\r
15 * | dtor list | C++ support\r
16 * +--------------------+\r
17 * | .data | initialized data goes here\r
18 * | _edata |\r
19 * +--------------------+\r
20 * | .bss |\r
21 * | __bss_start | start of bss, cleared by crt0\r
22 * | _end | start of heap, used by sbrk()\r
23 * +--------------------+\r
24 * . .\r
25 * . .\r
26 * . .\r
27 * | __stack | top of stack\r
28 * +--------------------+\r
29 */\r
30MEMORY\r
31{\r
32 rom : ORIGIN = 0x00100000, LENGTH = 0x00300000\r
33 ram : ORIGIN = 0x00ff0100, LENGTH = 0x0000FF00\r
34}\r
35\r
36/*\r
37 * allocate the stack to be at the top of memory, since the stack\r
38 * grows down\r
39 */\r
40\r
41PROVIDE (__stack = 0x00fffff0);\r
42\r
43/*\r
44 * Initalize some symbols to be zero so we can reference them in the\r
45 * crt0 without core dumping. These functions are all optional, but\r
46 * we do this so we can have our crt0 always use them if they exist. \r
47 * This is so BSPs work better when using the crt0 installed with gcc.\r
48 * We have to initalize them twice, so we cover a.out (which prepends\r
49 * an underscore) and coff object file formats.\r
50 */\r
51PROVIDE (hardware_init_hook = 0);\r
52PROVIDE (_hardware_init_hook = 0);\r
53PROVIDE (software_init_hook = 0);\r
54PROVIDE (_software_init_hook = 0);\r
55\r
56SECTIONS\r
57{\r
58 .text 0x00100000:\r
59 {\r
60 *(.text)\r
61 . = ALIGN(0x4);\r
62 __CTOR_LIST__ = .;\r
63 LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)\r
64 *(.ctors)\r
65 LONG(0)\r
66 __CTOR_END__ = .;\r
67 __DTOR_LIST__ = .;\r
68 LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)\r
69 *(.dtors)\r
70 LONG(0)\r
71 __DTOR_END__ = .;\r
72 *(.rodata*)\r
73 *(.gcc_except_table)\r
74\r
75 __INIT_SECTION__ = . ;\r
76 *(.init)\r
77 SHORT (0x4e75) /* rts */\r
78\r
79 __FINI_SECTION__ = . ;\r
80 *(.fini)\r
81 SHORT (0x4e75) /* rts */\r
82\r
83 _etext = .;\r
84 *(.lit)\r
85 } > rom\r
86\r
87 .data 0xff0100 :\r
88 {\r
89 *(.shdata)\r
90 *(.data)\r
91 _edata = .;\r
92 } > ram\r
93\r
94 /* .bss 0xff0100 : */\r
95 .bss BLOCK (0x4) :\r
96 {\r
97 __bss_start = . ;\r
98 *(.shbss)\r
99 *(.bss)\r
100 *(COMMON)\r
101 *(.eh_fram)\r
102 *(.eh_frame)\r
103 _end = ALIGN (0x8);\r
104 __end = _end;\r
105 } > ram\r
106\r
107 .stab 0 (NOLOAD) :\r
108 {\r
109 *(.stab)\r
110 }\r
111\r
112 .stabstr 0 (NOLOAD) :\r
113 {\r
114 *(.stabstr)\r
115 }\r
116}\r