Romimage.exe is a locator application that creates Windows CE binary image (.bin) files, usually limited to a single file called Nk.bin. This means that Romimage reads Ce.bib to determine which %_FLATRELEASEDIR% binaries and files to include in the run-time image, assigns physical memory addresses to these binaries and files, and then creates the run-time image Nk.bin. For more information about Ce.bib, see Make Binary Image Tool.
Romimage.exe supports multiple XIP regions; for example, multiple RAMIMAGE sections. To fill these sections, you need to include the names of the files and the address of the section into which the file should be place. To do this, add the section name as a suffix after the file path declaration. Each section specified will generate a separate .bin file. For example, NK will generate Nk.bin, XIP2 will create Xip2.bin, and so on. Each of the .bin files, when loaded into ROM, will be a separate XIP region, as shown in the following example.
NK 80200000 00E00000 RAMIMAGE XIP2 81010000 000E0000 RAMIMAGE RAM 81300000 00D00000 RAM player.exe $(_FLATRELEASEDIR)\player.exe XIP2 SH
The following sections detail the flags that can be set and their purpose for use with Romimage.exe.
FIXUPVAR is used to initialize a kernel global variable during the MAKEIMG process. You can also use this keyword for platform-specific physical memory initialization with multiple possible values controllable by MAKEIMG flags, as shown in the following example.
pdwXIPLoc 00000000 $(XIPLOC) FIXUPVAR
Note This must be done in the MEMORY section.
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. This flag needs to be set in order for all multi-XIP AUTOSIZE flags to work.
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.
Note If the RAM_AUTOSIZE flag is ON the ROM_AUTOSIZE flag must also be ON, otherwise the RAM_AUTOSIZE is ignored.
This flag automatically sizes 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.
Set DLLADDR_AUTOSIZE to ON to automatically size the DLL address space across multiple XIP regions, for slot 0 code and read/write data and slot 1 code and read-only data, as shown in the following example.
When sizing, this setting takes into account the following parameters: AUTOSIZE_DLLADDRGAP, AUTOSIZE_DLLDATAADDRGAP, and AUTOSIZE_DLLCODEADDRGAP.
XIPSCHAING enables the creation of Chain.bin and Chain.lst. Chain.bin is a small .bin file in a format understood by boot loaders that describes the location in ROM of all the XIP regions. Chain.lst is a text that lists all the XIP regions to load. In the file, the kernel is denoted by a plus sign (+). Chain.lst can be used to load all the XIP regions into ROM before jumping to the start address. The address following the equal sign (=) is the location of the chain in ROM. It should match the FIXUPVAR that points to the chain location like pdwXIPLoc.
Use DLLHIGHADDR to specify the start of the DLL address space in slot 0 for all the XIP regions or for a specific one, as shown in the following examples.
- or -
DLLHIGHADDR XIP2 00100000
Note You can specify a DLLHIGHADDR for each XIP region in a single Config.bib file.
Use DLLHIGHCODEADDR to specify the start of the DLL address space in slot 1, DLL code and read-only data, for all the XIP regions or for a specific one, as shown in the following examples.
- or -
DLLHIGHCODEADDR XIP2 00300000
This is equivalent to DLLHIGHADDR except that it is applied to slot 1.
Use DLLOWADDR to specify the low end of the DLL address space for slot 0 for all XIP regions or for a specific one, as shown in the following examples.
- or -
DLLLOWADDR XIP2 00080000
Use DLLOWCODEADDR to specify the low end of the DLL address space in slot 1 for all XIP regions or for a specific one, as shown in the following examples.
- or -
DLLLOWCODEADDR XIP2 00200000
This is equivalent to DLLLOWADDR except that it is applied to slot 1.
Use AUTOSIZE_ROMGAP to specify the size of the gap to leave after the specified XIP region or 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 already installed.
AUTOSIZE_ROMGAP NK 2000
- or -
AUTOSIZE_ROMGAP = 2000
Use AUTOSIZE_DLLADDRGAP to specify the size of the gap to leave in the DLL address space for old style fixups, slot 0, in the data space after the specified XIP region or all regions, as shown in the following example.
- or -
Use AUTOSIZE_DLLCODEADDRGAP to specify the size of the gap to leave in the DLL address space for the code section, slot 1, after the specified XIP region or all regions, as shown in the following example.
- or -
Use AUTOSIZE_DLLDATAADDRGAP to specify the size of the gap to leave in the DLL address space for the data section, slot 0, after the specified XIP region or all regions, as shown in the following example.
- or -
Last updated on Friday, October 08, 2004
© 1992-2003 Microsoft Corporation. All rights reserved.