/
forth.lds
73 lines (58 loc) · 1.41 KB
/
forth.lds
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
69
70
71
72
73
OUTPUT_FORMAT("elf32-c33", "elf32-c33",
"elf32-c33")
OUTPUT_ARCH(c33)
MEMORY
{
a0ram (rwx): ORIGIN = 0x00000000, LENGTH = 8k
ivram (rwx): ORIGIN = 0x00080000, LENGTH = 12k
dstram (rwx): ORIGIN = 0x00084000, LENGTH = 2k
sdram (rwx): ORIGIN = 0x10000000, LENGTH = 32M
}
SECTIONS
{
.dst_ram : {
__START_VectorTable = . ;
} > dstram
.a0ram : {
*(.suspend_text)
*(.suspend_rodata)
*(.suspend_data)
*(.suspend_bss)
} > a0ram
__dp = 0x10000000 ;
.idma : {
. = . + 2048 ;
} > sdram
.text : {
__START_text = . ;
forth.o(*.text)
*(.text)
} > sdram
__END_text = . ;
. = ALIGN(1024);
.rodata : {
__START_rodata = . ;
*(.rodata)
} > sdram
__END_rodata = . ;
.bss : {
__START_bss = . ;
*(.bss)
} > sdram
__END_bss = . ;
.data : {
__START_data = . ;
*(.data)
} > sdram
__END_data = . ;
. = ALIGN(1024);
.forth_dict : {
__START_forth_dict = . ;
forth.o(*.forth_dict)
} > sdram
__END_forth_dict = . ;
__START_idma = ADDR(.idma);
__END_idma = __START_idma + SIZEOF(.idma);
__START_data_lma = LOADADDR( .data );
__END_data_lma = __START_data_lma + SIZEOF( .data );
}