forked from LedgerHQ/ledger-device-rust-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlink.ld
67 lines (57 loc) · 1.04 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
SECTIONS
{
.text :
{
_text = .;
_nvram_start = .;
*(.boot*)
*(.text*)
*(.rodata*)
. = ALIGN(PAGE_SIZE);
_etext = .;
} > FLASH
.nvm_data : ALIGN(PAGE_SIZE)
{
_nvram_data = .;
*(.nvm_data*)
. = ALIGN(PAGE_SIZE);
_envram_data = .;
_install_parameters = .;
_nvram_end = .;
} > FLASH
.data : ALIGN(4)
{
_data = .;
*(vtable)
*(.data*)
_edata = .;
} > SRAM
ASSERT( (_edata - _data) <= 0, ".data section must be empty" )
.bss :
{
_bss = .;
*(.bss*)
_ebss = .;
. = ALIGN(4);
app_stack_canary = .;
. += 4;
_stack_validation = .;
. = _stack_validation + STACK_SIZE;
_stack = ABSOLUTE(END_STACK) - STACK_SIZE;
_estack = ABSOLUTE(END_STACK);
} > SRAM
.stack_sizes (INFO):
{
KEEP(*(.stack_sizes));
}
/DISCARD/ :
{
libc.a ( * )
libm.a ( * )
libgcc.a ( * )
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
*(.debug_info)
}
}
PROVIDE(_nvram = ABSOLUTE(_nvram_start));
PROVIDE(_envram = ABSOLUTE(_nvram_end));