AUTOSIZE (Compact 2013)

3/26/2014

When run-time images are located entirely in RAM, this configuration statement allows all RAM not occupied by the run-time image itself to be used as system RAM and Object Store RAM without modifying the memory parameters set in the BIB files.

Syntax

AUTOSIZE = OFF | ON 

Parameters

  • OFF
    By default, Romimage.exe does not combine unused RAM.
  • ON
    Romimage.exe combines the system RAM and run-time image memory regions into one region, with the run-time image filling this region from the lowest address to the highest. The RAM parameters in the table of contents are modified to allow the system to use all remaining RAM.

Remarks

For example, if AUTOSIZE is not set and a 5 MB run-time image is installed on a target device with 20 MB of RAM, this could result in an assignment of 10 MB for the run-time image itself and 10 MB for system RAM. However, this means that 5 MB of RAM on the device remains unused.

In this situation, AUTOSIZE can be set to take advantage of the unused RAM. When it is set, Romimage treats all available sources of RAM on the device as though they are a single source of RAM. So after the run-time image in the example occupies 5 MB of the available RAM on the device, the remaining 15 MB can be pooled and used as system RAM and Object Store RAM.

This configuration option can also be used to take extra memory from system RAM and reassign it to run-time image RAM.

When building single region XIP images, use AUTOSIZE to control whether or not to move the RAM start address. This is typically only used when loading a run-time image entirely into RAM.

When building multi-region XIP images, use AUTOSIZE to globally enable or disable all xxx_autosize options.

To enable all multi-XIP AUTOSIZE flags, this configuration option must be set.

Use AUTOSIZE_DLLADDRGAP to specify the size of the gap to leave in the DLL address space for old style fixups, which is slot 0, in the data space after the specified XIP region or after all regions, as shown in the following example.

Use AUTOSIZE_DLLCODEADDRGAP to specify the size of the gap to leave in the DLL address space for the code section, which is slot 1, after the specified XIP region or after all regions, as shown in the following example.

Use AUTOSIZE_DLLDATAADDRGAP to specify the size of the gap to leave in the DLL address space for the data section, which is slot 0, after the specified XIP region or after all regions, as shown in the following example.

Use AUTOSIZE_ROMGAP to specify the size of the gap to leave after the specified XIP region, or after all regions, as shown in the following example.

This gap is added to the size of the XIP region prior to alignment. The gap allows an XIP region to expand without affecting other XIP regions that are installed.

Use the RAM_AUTOSIZE flag to adjust the start address of RAM to the end of the last XIP region.

This has the same effect as using the AUTOSIZE flag under nonmultiple XIP builds.

The following example shows how to set this flag to ON.

RAM_AUTOSIZE=ON

Note

If the RAM_AUTOSIZE flag is ON, the ROM_AUTOSIZE flag must also be ON; otherwise, RAM_AUTOSIZE is ignored.

Use the ROM_AUTOSIZE flag to size each separate XIP region, taking into account the AUTOSIZE_ROMGAP setting.

You can also use this flag to determine the initial sizes of the XIP regions.

To determine the size of ROM, look for the "Total ROM size" data generated when building the XIP region. Without this set, the size of ROM is constrained to exactly what is specified by the RAMIMAGE setting in Config.bib file.

ROM_AUTOSIZE=ON

See Also

Reference

CONFIG Section
Binary Image Builder (.bib) File