Datasheet
The C and C++ Libraries
ARM DUI 0067D Copyright © 1999-2001 ARM Limited. All rights reserved. 4-7
Using ARMulator
The ARM instruction set simulator (ARMulator) supports the semihosting SWI and has
a memory map that enables using the library. The ARMulator uses memory in the host
machine and this is normally adequate for your application.
Using Angel
ARM boards running the Angel debug monitor support the semihosting SWI and have
memory maps that enable using the library. Your application might, however, require
more memory than is available on the development board and the memory map assumed
by the library might require tailoring to match the hardware being debugged.
You can change the definition of the Angel environment. See the ARM Firmware Suite
documentation for more information on the Angel environment.
Using Multi-ICE
The ARM debug agents support the semihosting SWI, but the memory map assumed by
the library might require tailoring to match the hardware being debugged. However, it
is easy to tailor the memory map assumed by the C library. See Tailoring the runtime
memory model on page 4-67.
Using re-implemented functions in a semihosted environment
You can also mix the semihosting functionality with new input/output functions. For
example, you can implement
fputc()
to output directly to hardware such as a UART, in
addition to the semihosted implementation. See Building an application for a
nonsemihosted environment on page 4-8 for information on how to re-implement
individual functions.
Converting a semihosted application to a standalone application
After an application has been developed in a semihosted debugging environment, you
can move the application to a nonhosted environment by one of the following methods:
• Removing all calls to semihosted functions. See Avoiding the semihosting SWI on
page 4-10.
• Re-implementing the semihosted functions. See Building an application for a
nonsemihosted environment on page 4-8. You do not have to re-implement all
semihosted functions. You must, however, re-implement the functions that you
are using in your application.
• Implementing a SWI handler that handles the semihosting SWIs.