Default compilation tool behavior
It is useful to be aware of the default behavior of the compilation tools if you do not yet know the full technical specifications of the target hardware.
For example, when you start work on software for an embedded application, you might not know the details of target peripheral devices, the memory map, or even the processor itself.
To enable you to proceed with software development before such details are known, the compilation tools have a default behavior that enables you to start building and debugging application code immediately.
In the Arm®
C library, support for some ISO C functionality, for example program I/O, can be provided by
the host debugging environment. The mechanism that provides this functionality is known as
semihosting. When semihosting is
executed, the debug agent suspends program execution. The debug agent then uses the debug
capabilities of the host (for example
printf output to the debugger
console) to service the semihosting operation before code execution is resumed on the
target. The task performed by the host is transparent to the program running on the