5 gnU17 iDE
/* load address symbols */
__START_data_lma = LOADADDR( .data );
__END_data_lma = __START_data_lma + SIZEOF( .data );
}
Shown below are section locations and file configurations.
library – .rodata
main.o – .rodata
0x080000
main.o – .data
boot.o – .data
(__START_data_lma)
library – .text
main.o – .text
boot.o – .text
(__START_text)
boot.o – .rodata
0x008000
0x000000
Example 3. Sharing the raM area with multiple variables
Shown below is an example of how to assign the same RAM area to multiple variables in a system with the
memory configuration shown in Example 1.
Multiple sections are allocated to the same address as in Figure 5.7.6.6, where the same data is shared by mul-
tiple variables and the data for one section is exchanged for another when used. This permits efficient use of
memory. However, only sections having the .bss attribute can share data areas. The area set aside for variables
with initial values (.data section) cannot be shared.
0x008000
0x000fbf
0x000000
Example of a source file configuration
(vector table and stack initialization, etc.)
boot.s
(main and other functions)
main.c
(global variable definition file 1)
bss1.c
(global variable definition file 2)
bss2.c
bss1.c and bss2.c are assumed to consist only of a definition of global variables without initial values that
share an area. If these files contain functions, variables with initial values, or constants, the files in the example
here will be located in the .text, .data, or .rodata sections.
Editing sections (content set in the [Add/Edit Section] dialog box)
5-146
LMA
.rodata
section
No sections/files
located here
.data
section
.text
section
.vector
section
No sections/files
located here
Figure 5.7.6.5 Example of section location 2
ROM
Unused area
Variables
with initial values
Constants
and other static data
Program
Vector table
RAM
Stack area
Shared area for variables
without initial values
Variables
with initial values
Fixed area for variables
without initial values
Figure 5.7.6.6 Example for shared data area
(__START_data)
0x000000
.data section (LMA)
.rodata section (LMA=VMA)
.text section (LMA=VMA)
.vector section (LMA=VMA)
.bss1 and.bss2 sections (VMA)
located in the same area
.data section (VMA)
.bss section (VMA)
EPSOn
(C COMPilEr PaCkagE fOr S1C17 faMily) (Ver. 1.5.0)
VMA
main.o – .data
.data
section
boot.o – .data
library – .bss
main.o – .bss
.bss
section
boot.o – .bss
S5U1C17001C ManUal
Need help?
Do you have a question about the S5U1C17001C and is the answer not in the manual?