summaryrefslogtreecommitdiff
path: root/firmware/app.lds
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/app.lds')
-rw-r--r--firmware/app.lds77
1 files changed, 77 insertions, 0 deletions
diff --git a/firmware/app.lds b/firmware/app.lds
index cc2939238d..48ef36cbf1 100644
--- a/firmware/app.lds
+++ b/firmware/app.lds
@@ -10,6 +10,81 @@ OUTPUT_FORMAT(elf32-sh)
10#endif 10#endif
11INPUT(crt0.o) 11INPUT(crt0.o)
12 12
13#if CONFIG_CPU == TCC730
14MEMORY
15{
16 FIRMWARE : ORIGIN = LOADADDRESS, LENGTH = 256K
17 FLASH (RX) : ORIGIN = 0x000000, LENGTH = 1024K
18 ICMEM (RX) : ORIGIN = 0x3FC000, LENGTH = 32K
19 IMEM1 : ORIGIN = 0x200000, LENGTH = 32K
20 IMEM2 : ORIGIN = 0x210000, LENGTH = 32K
21 IMEM3 : ORIGIN = 0x220000, LENGTH = 16K
22 IMEM4 : ORIGIN = 0x230000, LENGTH = 16K
23
24 DRAM : ORIGIN = 0x000000, LENGTH = 0x3F0000
25}
26
27SECTIONS
28{
29.text LOADADDRESS : {
30 *(.init.text)
31 *(.text)
32 *(.icode) /* We don't put it in ICMEM coz crt1 uses LCD (now)*/
33 }> FLASH AT> FIRMWARE
34
35.icode 0x3FC040: {
36 *(.vectors)
37 }> ICMEM AT> FIRMWARE
38
39
40.data 0x2000: {
41 *(.data)
42 . = ALIGN(2);
43 *(.rodata)
44 . = ALIGN(2);
45 *(.rodata.str1.2)
46 . = ALIGN(2);
47 }> DRAM AT> FIRMWARE
48
49.bss ALIGN(2) : {
50 *(.bss)
51 . = ALIGN(2);
52 }> DRAM
53
54.stack ALIGN(2) : {
55 . = . + 0x2000;
56}> DRAM
57
58.idata 0x200000: {
59 *(.idata)
60}> DRAM
61
62
63_codesize = SIZEOF(.text);
64
65_icodecopy = LOADADDR(.icode);
66_icodestart = ADDR(.icode);
67_icodesize = SIZEOF(.icode);
68
69_datacopy = LOADADDR(.data);
70_datastart = ADDR(.data);
71_datasize = SIZEOF(.data);
72
73
74_bssstart = ADDR(.bss);
75_bsssize = (SIZEOF(.bss) + 1) & ~ 1;
76
77_stackbegin = ADDR(.stack);
78_stackend = ADDR(.stack) + SIZEOF(.stack);
79
80_idatastart = ADDR(.idata);
81
82}
83
84#else
85
86
87
13#define PLUGINSIZE 0x8000 88#define PLUGINSIZE 0x8000
14 89
15#ifdef DEBUG 90#ifdef DEBUG
@@ -123,3 +198,5 @@ SECTIONS
123 pluginbuf = .; 198 pluginbuf = .;
124 } 199 }
125} 200}
201
202#endif