The file can be either executable or non-executable and is loaded at 0x8000 unless otherwise specified.[1] Executable files can relocate themselves if necessary and non-executable files are prepared for execution by an image loader. An extended AIF is a type of non-executable which includes information to enable the placement of code and data within specific areas of memory.[1]
The file includes a header and separate areas of read-only and read-write code/data. It can optionally include data for debugging and the code (with list) for self-relocation.[1]
AIF header
The header includes information about self-relocation, entry point, exit instruction, area sizes and locations, debug type, addressing mode and memory placement (in the case of the extended file).[1]
An allocation was later made in the header to mark executables as being "StrongARM-ready", to address some backward compatibility issues.[2]
Debugging
The files can be run for debugging under DOS and SunOS using the ARM Windowing Debugger.[3]
Other uses
Microsoft's MMLite modular system architecture supports the loading of various image formats,[4] including AIF files.[5][6] Porting of Wind River Systems' VxWorks operating system to the StrongARM EBSA-285 board involved using AIF files.[7]