-cpu


< Optimizing Linkage Editor (rlink) Options / Verify Options >

[Format]

-cpu={ <memory type> = <address range> [,...] | STRIDE}
       <memory type>:  { ROm | RAm | FIX }
       <address range>:  <start address> - <end address>

[Description]

-

When cpu=stride is not specified, a section larger than the specified range of addresses leads to an error.

-

When cpu=stride is specified, a section larger than the specified range of addresses is allocated to the next area of the same memory type or the section is divided.

[Examples]

-

When the stride suboption is not specified:

start=D1,D2/100
cpu=ROM=100-1FF,RAM=200-2FF

-

The result is normal when D1 and D2 are respectively allocated within the ranges from 100 to 1FF and from 200 to 2FF. If they are not allocated within the ranges, an error will be output.

 

-

When the stride suboption is specified:

start=D1,D2/100
cpu=ROM=100-1FF,RAM=200-2FF,ROM=300-3FF
cpu=stride

-

The result is normal when D1 and D2 are allocated within the ROM area (regardless of whether the section is divided). A linkage error occurs when they are not allocated within the ROM area even though the section is divided.

-

Specify an address range in which a section can be allocated in hexadecimal notation. The memory type attribute is used for the inter-module optimization.

-

FIX for <memory type> is used to specify a memory area where the addresses are fixed (e.g. I/O area).

-

If the address range of <start>-<end> specified for FIX overlaps with that specified for another memory type, the setting for FIX is valid.

-

When <memory type> is ROM or RAM and the section size is larger than the specified memory range, sub-option STRIDE can be used to divide a section and allocate them to another area of the same memory type. Sections are divided in module units.

 

cpu=ROM=0-FFFF,RAM=10000-1FFFF

-

Checks that section addresses are allocated within the range from 0 to FFFF or from 10000 to 1FFFF.

-

Object movement is not provided between different attributes with the inter-module optimization.

cpu=ROM=100-1FF,ROM=400-4FF,RAM=500-5FF
cpu=stride

-

When section addresses are not allocated within the range from 100 to 1FF, the linkage editor divides the sections in module units and allocates them to the range from 400 to 4FF.

[Remarks]

-

When form={object | relocate | library} or strip is specified, this option is unavailable.

-

When cpu=stride and memory=low are specified, this option is unavailable.

-

When section B is divided by cpu=stride, the size of section C$BSEC increases by 8 bytes × number of divisions because this amount of information is required for initialization.