Sections And Linkage - Epson S5U1C17001C Manual

Cmos 16-bit single chip microcomputer, c compiler package for s1c17 family
Hide thumbs Also See for S5U1C17001C:
Table of Contents

Advertisement

3.8 Sections and linkage

Here, the concept of section management that is required when you create and link source files is explained.
The source file contains data with various attributes, such as program code, constants, and variables. In an embed-
ded system, data management must assume that data will be mapped to different memory devices such as ROM and
RAM. For this reason, logical areas called "sections" are provided to enable management of data with their attri-
butes.
For example, if a program is created on the assumption that program code present in multiple source files will be
located in one section, program code can easily be combined from these source files when linked, and will con-
sequently be located in the same ROM. And since addresses can be specified separately for each file, they can be
located on separate devices, such as internal ROM and external ROM.
Four broad categories (attributes) of sections are set in the xgcc C compiler, and data is located in the appropriate
sections according to the contents of the source files.
(1).text section
Program code is located here. All code is eventually written to ROM.
(2).data section
Read/writable data with initial values are located here. The data is written to ROM, from which it is transferred
to RAM before use.
(3).rodata section
Variables defined with const are located here. They are eventually written to ROM.
(4).bss section
Variables without initial values are located here. Memory is allocated without a specific value.
(5).vector section
The IDE has another section with .rodata attribute, the .vector section, available for use for vector tables.
For C sources, create a vector table with a const declaration and locate its object in the .vector section.
For the assembler sources, a vector table may be written in .rodata or the .text section. However, if a vec-
tor table is located in the .text section, you must change the .vector section attribute to .text.
For more information, refer to Section 5.7.8, "Editing a Linker Script".
S5U1C17001C ManUal
(C COMPilEr PaCkagE fOr S1C17 faMily) (Ver. 1.5.0)
3 SOfTWarE DEVElOPMEnT PrOCEDUrES
EPSOn
3
SoftDev
3-67

Advertisement

Table of Contents
loading

Table of Contents