-
Notifications
You must be signed in to change notification settings - Fork 0
/
link.ld
95 lines (81 loc) · 2.31 KB
/
link.ld
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/* esp32_technical_reference_manual_en.pdf 1.3.2 */
MEMORY {
drom (rw) : ORIGIN = 0X3ff90000, LENGTH = 64k
irom (rwx) : ORIGIN = 0x40000000, LENGTH = 384k
cache0 (rwx) : ORIGIN = 0x40070000, LENGTH = 32k
cache1 (rwx) : ORIGIN = 0x40078000, LENGTH = 32k
iram (rwx) : ORIGIN = 0x40080400, LENGTH = 127k /* First 1k is vectors */
dram (rw) : ORIGIN = 0x3ffb0000, LENGTH = 320k
dflash (rw) : ORIGIN = 0X3f400000, LENGTH = 1024k
psram (rw) : ORIGIN = 0X3f800000, LENGTH = 1024k
iflash (rwx) : ORIGIN = 0X400c2000, LENGTH = 11512k
}
_eram = ORIGIN(dram) + LENGTH(dram);
ENTRY(_reset)
SECTIONS {
/* .vectors : { KEEP(*(.vectors)) } > iram */
.text : { *(.text*) *(.text) } > iram
.data : {
. = ALIGN(4);
_sdata = .;
*(.data)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.r.*)
*(.rodata1)
. = ALIGN(4);
_edata = .;
} > dram
.bss : {
. = ALIGN(4);
_sbss = .;
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_ebss = .;
} > dram
. = ALIGN(4);
PROVIDE(end = .);
PROVIDE(_end = .);
/*
/DISCARD/ : { *(.debug) *(.debug*) *(.xtensa.*) *(.comment) }
*/
}
PROVIDE ( malloc = 0x4000bea0 );
/* See .ld files in $IDF_PATH/components/esp_rom */
PROVIDE(uart_rx_one_char = 0x400092d0);
PROVIDE(uart_tx_one_char = 0x40009200);
PROVIDE(memchr = 0x4000c244);
PROVIDE(memcmp = 0x4000c260);
PROVIDE(memcpy = 0x4000c2c8);
PROVIDE(memmove = 0x4000c3c0);
PROVIDE(memrchr = 0x4000c400);
PROVIDE(memset = 0x4000c44c);
PROVIDE(qsort = 0x40056424);
PROVIDE(rand = 0x40001058);
PROVIDE(srand = 0x40001004);
PROVIDE(strcasecmp = 0x400011cc);
PROVIDE(strcasestr = 0x40001210);
PROVIDE(strcat = 0x4000c518);
PROVIDE(strchr = 0x4000c53c);
PROVIDE(strcmp = 0x40001274);
PROVIDE(strcpy = 0x400013ac);
PROVIDE(strcspn = 0x4000c558);
PROVIDE(strdup = 0x4000143c);
PROVIDE(strlen = 0x400014c0);
PROVIDE(strncasecmp = 0x40001550);
PROVIDE(strncat = 0x4000c5c4);
PROVIDE(strncmp = 0x4000c5f4);
PROVIDE(strncpy = 0x400015d4);
PROVIDE(strndup = 0x400016b0);
PROVIDE(strnlen = 0x4000c628);
PROVIDE(strrchr = 0x40001708);
PROVIDE(strsep = 0x40001734);
PROVIDE(strspn = 0x4000c648);
PROVIDE(strstr = 0x4000c674);
PROVIDE(strtol = 0x4005681c);
PROVIDE ( printf = 0x40007d54 );
PROVIDE ( ets_isr_unmask = 0x40006808 );
PROVIDE ( xtos_set_interrupt_handler = 0x4000bf78 );