Everything

-RAM_INIT_TABLE_SECTION [V1.12 or later]


This option generates an information table for RAM initialization.

[Specification format]

-RAM_INIT_TABLE_SECTION[= section-name]

 

-

Interpretation when omitted

An information table for RAM initialization will not be generated.

[Detailed description]

-

This option generates an information table for RAM initialization.

-

The information table is generated for the specified section name.

-

If a section name is not specified, the table is generated with section name ".ram_init_table".

-

Generally, the contents of the .data section are transferred from ROM to RAM at startup of a program. In addition, the RAM to which the .bss section is allocated is cleared to 0. This option generates a table containing the address and size information required for such operations.

-

The information table contains a series of records that have the following fields.

 

Size

Description

Field 1

4 bytes

ROM start address: For data transfer from ROM to RAM

RAM start address: For clearing the RAM

0: End of the record

Field 2

2 bytes

Transfer size: For data transfer from ROM to RAM or for clearing the RAM

0: End of the record

Field 3

2 bytes

RAM start address: For data transfer from ROM to RAM or for clearing the RAM

0: End of the record

-

Fields 1 to 3 are set to 0 at the end of the table.

-

During startup processing, perform the following processing up to the end of the table:

-

If field 1 and field 3 are different, copy the memory data for the size of field 2 from field 1 to field 3.

-

If field 1 and field 3 are the same, clear the memory data for the size of field 2 from field 1 or field 3.

-

The sections to be initialized are used for CPU program operations. Sections for the FLEXIBLE APPLICATION ACCELERATOR (FAA) are not contained in the table.

[Example of use]

-

To generate an information table for RAM initialization, code as:

> rlink a.obj b.obj -start=.data/1000,.dataR/f1000,.bss/f2000 -rom=.data=.dataR
-ram_init_table_section=.ram_init_table

-

If the size of the .data section is 0x100 bytes and the size of the .bss section is 0x200 bytes, the following table is generated for the .ram_init_table section.

Field 1

Field 2

Field 3

0x01000

0x100

0x1000

0xf2000

0x200

0x2000

0

0

0

[Remark]

-

If the -form={object|relocate|library} option or -strip option is specified, this option will be invalid.