If you do not use a ROMS directive, the
utility defines a single default range that includes the entire address space. This is
equivalent to a ROMS directive with a single range without origin or length.
Use the ROMS directive when you want
to:
- Program large amounts of data into
fixed-size ROMs. When you specify memory ranges corresponding to the length of your
ROMs, the utility automatically breaks the output into blocks that fit into the ROMs.
- Restrict output to certain
segments. You can also use the ROMS directive to restrict the conversion to a
certain segment or segments of the target address space. The utility does not convert the
data that falls outside of the ranges defined by the ROMS directive. Sections can span
range boundaries; the utility splits them at the boundary into multiple ranges. If a
section falls completely outside any of the ranges you define, the utility does not
convert that section and issues no messages or warnings. Thus, you can exclude sections
without listing them by name with the SECTIONS directive. However, if a section falls
partially in a range and partially in unconfigured memory, the utility issues a warning
and converts only the part within the range.
- Use image mode. When you use the
--image option, you must use a ROMS directive. Each range is filled completely so that
each output file in a range contains data for the whole range. Holes before, between, or
after sections are filled with the fill value from the ROMS directive, with the value
specified with the --fill option, or with the default value of 0.