Running bare-metal images
By default, Arm® Compiler produces bare-metal images. Bare-metal images can run without an operating system. The images can run on a hardware target or on a software application that simulates the target, such as Fast Models or Fixed Virtual Platforms.
See your Arm Integrated Development Environment (IDE) documentation for more information on configuring and running images:
- For Arm Development Studio, see the Arm® Development Studio User Guide.
- For Arm DS-5, see the Arm® DS-5 Debugger User Guide.
By default, the C library in Arm Compiler uses special functions to access the input and output interfaces on the host computer. These functions implement a feature called semihosting. Semihosting is useful when the input and output on the hardware is not available during the early stages of application development.
When you want your application to use the input and output interfaces on the hardware, you must retarget the required semihosting functions in the C library.
See your Arm IDE documentation for more information on configuring debugger settings:
- For Arm Debugger settings, see Configuring a connection to a bare-metal hardware target in the Arm® Development Studio User Guide.
- For Arm DS-5 Debugger settings, see Configuring a connection to a bare-metal hardware target in the Arm® DS-5 Debugger User Guide.
Outputting debug messages from your application
The semihosting feature enables your bare-metal application, running on an Arm processor, to use the input and output interface on a host computer. This feature requires the use of a debugger that supports semihosting, for example Arm Debugger or Arm DS-5 Debugger, on the host computer.
A bare-metal application that uses semihosting does not use the input and output interface of the development platform. When the input and output interfaces on the development platform are available, you must reimplement the necessary semihosting functions to use them.