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
|
;/**************************************************************************
; * *
; * Copyright (c) 2019 Nuvoton Technology. All rights reserved. *
; * *
; **************************************************************************/
ENTRY(__vector)
MEMORY
{
LVGL_HEAP (rwx) : ORIGIN = 0x000000, LENGTH = 0x02000000 /* 32MB for LVGL dynamic memory */
FREERTOS_HEAP (rwx) : ORIGIN = 0x02000000, LENGTH = 0x01000000 /* 16MB for FreeRTOS memory */
CMALLOC_HEAP (rwx) : ORIGIN = 0x03000000, LENGTH = 0x01000000 /* 16MB for C malloc dynamic memory */
}
SECTIONS
{
.text :
{
PROVIDE(__image_start = .);
PROVIDE(__text_start = .);
PROVIDE(__vectors_start = .);
*(.vectors);
. = ALIGN(4);
PROVIDE(__vectors_end = .);
*(.init);
. = ALIGN(4);
*(.text);
. = ALIGN(4);
*(.rodata);
. = ALIGN(4);
*(.rodata*);
. = ALIGN(4);
etext = .;
PROVIDE(__text_end = .);
} > LVGL_HEAP
. = ALIGN(4);
_etext = . ;
PROVIDE (etext = .);
.data : AT (_etext)
{
PROVIDE(__data_start__ = .);
_data = . ;
*(.data)
. = ALIGN(4);
PROVIDE(__data_end__ = .);
} > LVGL_HEAP
. = ALIGN(4);
_edata = . ;
PROVIDE (edata = .);
sbss = .;
.bss :
{
PROVIDE (__bss_start__ = .);
*(.bss)
*(.bss.**)
*(COMMON)
. = ALIGN(4);
PROVIDE (__bss_end__ = .);
}>LVGL_HEAP
ebss = .;
bss_size = ebss - sbss;
.heap :
{
. = ALIGN(8);
end = .;
} > LVGL_HEAP
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
PROVIDE_HIDDEN (__exidx_end = .);
/* FreeRTOS memory section */
.freertos_heap :
{
/* ... Additional sections for FreeRTOS memory go here ... */
} > FREERTOS_HEAP
/* C malloc memory section */
.cmalloc_heap :
{
/* ... Additional sections for C malloc memory go here ... */
} > CMALLOC_HEAP
}
|