Arm Image Format

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found.

Arm Image Format
Developed by Acorn Computers
Type of format Binary, executable

In computer programming, the Arm Image Format (AIF) is an object file format used primarily for software intended to run on ARM microprocessors. It was introduced by Acorn Computers for use with their Archimedes computer.[citation needed] It can optionally facilitate debugging, including under operating systems running on other processor architectures.

Format

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]

References

  1. 1.0 1.1 1.2 1.3 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.