| |||
| Home > Using the ARM Compiler > About the ARM compiler > Semihosting | |||
Development hardware often does not have all the input and output facilities of the final system. Therefore, a software mechanism is required to service input/output (I/O) requests from application code. This mechanism is implemented using software interrupt (SWI) operations, and is called semihosting.
Semihosting enables ARM targets to communicate I/O requests from application code to a host computer that is running a debugger. Therefore, you can use the I/O facilities of the debugger on your host computer instead of providing the facilities on your target system.
C and C++ code uses semihosting facilities by default. The semihosting SWI is usually invoked by code within library functions. However, the application can also invoke the semihosting SWI directly.
To access semihosting facilities from assembly code, use semihosting SWIs. Any of the following can intercept semihosting SWIs and request services from the host computer:
RealView ARMulator® ISS
RealView ICE
Multi-ICE®
RealMonitor
a debug monitor.
For more details about semihosting, see Chapter 7 Semihosting.