forked from OnTheWayJohn/ble_lt_sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
boot.link
62 lines (57 loc) · 1.74 KB
/
boot.link
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
/* to tell the linker the program begin from __start label in cstartup.s, thus do not treat it as a unused symbol */
ENTRY(__start)
SECTIONS
{
. = 0x0;
.vectors :
{
*(.vectors)
*(.vectors.*) /* MUST as follows, when compile with -ffunction-sections -fdata-sections, session name may changed */
}
.ram_code :
{
*(.ram_code)
*(.ram_code.*)
}
PROVIDE(_ramcode_size_ = . );
PROVIDE(_ramcode_size_div_16_ = (. + 15 ) / 16);
PROVIDE(_ramcode_size_div_256_ = (. + 255) / 256);
PROVIDE(_ramcode_size_div_16_align_256_ = ( (. + 255) / 256) * 16);
.text :
{
*(.text)
*(.text.*)
}
.rodata :
{
*(.rodata)
*(.rodata.*)
}
. = (((. + 3) / 4)*4);
PROVIDE(_dstored_ = .);
PROVIDE(_code_size_ = .);
. = 0x808900 + _ramcode_size_div_256_ * 0x100; /* 0x100 alighned, must greater than or equal to:0x808000 + ram_code_size + irq_vector(0x100) + IC_tag(0x100) + IC_cache(0x800) == 0x808a00 + ram_code_size */
.data :
AT ( _dstored_ )
{
. = (((. + 3) / 4)*4);
PROVIDE(_start_data_ = . );
*(.data);
*(.data.*);
. = (((. + 3) / 4)*4);
PROVIDE(_end_data_ = . );
}
.bss :
{
. = (((. + 3) / 4)*4);
PROVIDE(_start_bss_ = .);
*(.sbss)
*(.sbss.*)
*(.bss)
*(.bss.*)
}
PROVIDE(_end_bss_ = .);
PROVIDE(_bin_size_ = _code_size_ + _end_data_ - _start_data_);
PROVIDE(_ictag_start_ = 0x808000 + (_ramcode_size_div_256_) * 0x100);
PROVIDE(_ictag_end_ = 0x808000 + (_ramcode_size_div_256_ + 1) * 0x100);
}